Bonjour à tous,
Je lutte désespérément pour savoir pourquoi j'ai une erreur lors de
l'appel de la procédure "FormateLigneTotal".
Voilà, j'ai écrit une procédure qui copie les valeurs d'une feuille vers une autre feuille selon la racine d'un nombre.
Voici cette procédure (en partie):
Sub ConstruitB600()
Worksheets("B600").Activate
Dim x As Integer ' declaration de variables
Dim y As Integer ' ligne dans feuille "Balance
Dim y_debut_salaires, y_fin_salaires As Integer ' Ligne dans feuille "B600"
Dim y_debut_charges, y_fin_charges As Integer ' Ligne dans feuille "B600"
Dim y2 As Integer ' Ligne dans feuille "B600"
Dim y3 As Integer ' ligne pour date dans Feuille "B600"
Dim Date_exercice1 As Date
Dim Date_exercice2 As Date
Dim Variat As String
Dim En_pourcentage As String
Dim total_annee_1, total_annee_2 As Long
Dim total_charges_1, total_charges_2 As Long
Dim taux_moyen_charges_1, taux_moyen_charges_2 As Double
total_charges_1 = 0 ' Initialisation des variables
total_charges_2 = 0
total_annee_1 = 0
total_annee_2 = 0
Date_exercice1 = Sheets("Accueil").Cells(32, 5).Value
Date_exercice2 = Sheets("Accueil").Cells(36, 5).Value
Variat = ""
En_pourcentage = ""
'---------------------------------------
' L'entête du tableau
y2 = 8
' Ici on met en place les dates des exercices ainsi que leur format
Sheets("B600").Cells(y2, 3).Value = Date_exercice1 'Affectation de la date d'exercice
Sheets("B600").Cells(y2, 4).Value = Date_exercice2
Sheets("B600").Range("C" & y2 & ":D" & y2).Select ' travail sur le format
With Selection.Interior
.Color = RGB(255, 255, 153)
End With
With Selection.Font
.Bold = True
.Size = 12
End With
With Selection
.HorizontalAlignment = xlCenter
End With
With Selection.Borders
.LineStyle = xlContinuous
End With
' Ici on met en place les intitulés variations ainsi que en% + le format
Sheets("B600").Cells(y2, 6).Value = "Variation" 'Affectation du nom à la cellule
Sheets("B600").Cells(y2, 7).Value = "En %"
Sheets("B600").Range("F" & y2 & ":G" & y2).Select ' travail sur le format
With Selection.Interior
.Color = RGB(255, 255, 153)
End With
With Selection.Font
.Bold = True
.Size = 12
End With
With Selection
.HorizontalAlignment = xlCenter
End With
With Selection.Borders
.LineStyle = xlContinuous
End With
y = 11
y2 = y2 + 2
'---------------------------------------
' Les salaires
y_debut_salaires = y2
y_fin_salaires = y_debut_salaires
Do While Sheets("Balance").Cells(y, 1).Value <> "" ' la boucle s'arrete quand la cellule est vide
If Left(Sheets("Balance").Cells(y, 1).Value, 3) = "641" Then
Call CopieLigne("Balance", y, "B600", y_fin_salaires)
total_annee_1 = total_annee_1 + Sheets("B600").Cells(y_fin_salaires, 4).Value
total_annee_2 = total_annee_2 + Sheets("B600").Cells(y_fin_salaires, 3).Value
y_fin_salaires = y_fin_salaires + 1
End If ' Fin de test
y = y + 1 ' Compteur de la boucle, on incremente de 1
Loop ' fin de la boucle
' Code qui trace les cases Total + somme des cellules et variation
y_fin_salaires = y_fin_salaires + 1
Sheets("B600").Cells(y_fin_salaires, 2).Value = "TOTAL SALAIRES" ' affectation de valeur à une cellule
Sheets("B600").Cells(y_fin_salaires, 3).Value = total_annee_2
Sheets("B600").Cells(y_fin_salaires, 3).NumberFormat = "# ##0.00" ' definition du format de la cellule
Sheets("B600").Cells(y_fin_salaires, 4).Value = total_annee_1
Sheets("B600").Cells(y_fin_salaires, 4).NumberFormat = "# ##0.00"
Sheets("B600").Cells(y_fin_salaires, 6).Value = total_annee_2 - total_annee_1
Sheets("B600").Cells(y_fin_salaires, 6).NumberFormat = "# ##0.00"
If total_annee_1 > 0 Then ' test
Sheets("B600").Cells(y_fin_salaires, 7).Value = (total_annee_2 - total_annee_1) / total_annee_1
End If
Sheets("B600").Cells(y_fin_salaires, 7).Style = "Percent"
Call FormateLigneTotal("B600", y_fin_salaires)
Call FormatGrille("B600", "A" & y_debut_salaires & ":D" & y_fin_salaires)
Call FormatGrille("B600", "F" & y_debut_salaires & ":G" & y_fin_salaires)
Le problème réside lors de l'appel de la 1er procédure et je ne comprends pourquoi.
Voici la procédure FormateLigneTotal :
Sub FormateLigneTotal(feuille As String, ligne As Integer)
Sheets("feuille").Range("B" & ligne & ":D" & ligne).Select
With Selection.Interior ' Motif dans les cellules Total
.Color = RGB(255, 255, 153)
End With
With Selection.Font ' Police dans les cellules Total
.Bold = True
.Size = 12
End With
With Selection.Borders ' Bordure dans les cellules Total
.LineStyle = xlContinuous
End With
Sheets("feuille").Range("F" & ligne & ":G" & ligne).Select
With Selection.Interior ' Motif dans les cellules %
.Color = RGB(255, 255, 153)
End With
With Selection.Font ' Police dans les cellules %
.Bold = True
.Size = 12
End With
'With Selection.Borders ' Bordure dans les cellules %
'.LineStyle = xlContinuous
'End With
End Sub
L'erreur indiquée est que " l'indice n'appartient pas à la selection "
???
Si quelqu'un peut m'indiquer l'origine de mon erreur je l'en remercie vivement car je ne suis qu'un débutant