luke3300
XLDnaute Impliqué
Bonjour le forum,
il y a quelques temps, vous m'aviez précieusement aidé à créer un fichier avec lequel je pouvais opérer une synthèse de données reprises dans 4 feuilles différents. Aujourd'hui, il me faut ajouter 2 lignes à prendre en compte pour la synthèse et je cale sur la modification à apporter au code pour y arriver.
Voici le code:
*************
Sub totaux()
Dim tablo As Variant
Dim i As Long, j As Byte, k As Long, s As Byte
Dim PremLig As Long, DerLig As Long, DerLig2 As Long
For s = 1 To 4
With Sheets(s)
PremLig = .Columns("A:A").Find(What:="Sce", LookAt:=xlWhole).Row + 1
DerLig = .Columns("A:F").Find(What:="Remplaçants", LookAt:=xlWhole).Row - 1
DerLig2 = .Columns("A:A").Find(What:="Total", LookAt:=xlWhole).Row - 2
tablo = .Range(.Cells(PremLig, 1), .Cells(DerLig, 66))
For i = DerLig + 2 To DerLig2 Step 2
For j = 5 To 63
If .Cells(i, j) <> "" Then
For k = 1 To UBound(tablo)
If tablo(k, 1) = .Cells(i, j) Then
tablo(k, UBound(tablo, 2)) = tablo(k, UBound(tablo, 2)) + .Cells(i + 1, j)
End If
Next k
End If
Next j
Next i
For i = 1 To UBound(tablo)
Sheets("Totaux").Cells(i + 2, s + 10) = tablo(i, UBound(tablo, 2))
Next i
Erase tablo
End With
Next s
End Sub
********
Hors après avoir ajouté mes lignes dans les différentes feuilles et dans le tableau regroupant la synthèse, le débogueur se manifeste et me mets la ligne suivante en surbrillance: Erase tablo
Je ne comprends pas vraiment pour quoi car je n'ai fais qu'ajouter 2 simple ligne à toutes mes feuilles qui doivent être prises en compte ainsi que sur le tableau qui affiche la synthèse.
J'ai essayé plusieurs manipulations mais au mieux, le code ne prend pas en compte les 2 lignes ajoutées.
Quelqu'un aurait-il une idée sur la modification a effectué au code afin qu'il me fasse la synthèse de toutes les lignes? Et autres question ... est-il possible de faire en sorte que l'on puisse ajouter plus de ligne sans devoir à chaque fois modifier le code?
Un tout grand merci d'avance et encore merci pour l'aide précieuse que vous m'avez déjà si agréblement porté.
Bon après-midi à toutes et tous.
il y a quelques temps, vous m'aviez précieusement aidé à créer un fichier avec lequel je pouvais opérer une synthèse de données reprises dans 4 feuilles différents. Aujourd'hui, il me faut ajouter 2 lignes à prendre en compte pour la synthèse et je cale sur la modification à apporter au code pour y arriver.
Voici le code:
*************
Sub totaux()
Dim tablo As Variant
Dim i As Long, j As Byte, k As Long, s As Byte
Dim PremLig As Long, DerLig As Long, DerLig2 As Long
For s = 1 To 4
With Sheets(s)
PremLig = .Columns("A:A").Find(What:="Sce", LookAt:=xlWhole).Row + 1
DerLig = .Columns("A:F").Find(What:="Remplaçants", LookAt:=xlWhole).Row - 1
DerLig2 = .Columns("A:A").Find(What:="Total", LookAt:=xlWhole).Row - 2
tablo = .Range(.Cells(PremLig, 1), .Cells(DerLig, 66))
For i = DerLig + 2 To DerLig2 Step 2
For j = 5 To 63
If .Cells(i, j) <> "" Then
For k = 1 To UBound(tablo)
If tablo(k, 1) = .Cells(i, j) Then
tablo(k, UBound(tablo, 2)) = tablo(k, UBound(tablo, 2)) + .Cells(i + 1, j)
End If
Next k
End If
Next j
Next i
For i = 1 To UBound(tablo)
Sheets("Totaux").Cells(i + 2, s + 10) = tablo(i, UBound(tablo, 2))
Next i
Erase tablo
End With
Next s
End Sub
********
Hors après avoir ajouté mes lignes dans les différentes feuilles et dans le tableau regroupant la synthèse, le débogueur se manifeste et me mets la ligne suivante en surbrillance: Erase tablo
Je ne comprends pas vraiment pour quoi car je n'ai fais qu'ajouter 2 simple ligne à toutes mes feuilles qui doivent être prises en compte ainsi que sur le tableau qui affiche la synthèse.
J'ai essayé plusieurs manipulations mais au mieux, le code ne prend pas en compte les 2 lignes ajoutées.
Quelqu'un aurait-il une idée sur la modification a effectué au code afin qu'il me fasse la synthèse de toutes les lignes? Et autres question ... est-il possible de faire en sorte que l'on puisse ajouter plus de ligne sans devoir à chaque fois modifier le code?
Un tout grand merci d'avance et encore merci pour l'aide précieuse que vous m'avez déjà si agréblement porté.
Bon après-midi à toutes et tous.