Bonjour à tous.
Je sèche sur un morceau de code qui plante, et je ne comprend pas pourquoi.
Voici le code qui pose problème. La ligne en gras est celle qui génère l'erreur (1004, erreur définit par l'application ou par l'objet)
J'ai vérifié, la valeur de DebutTable est égale à 0, ce qui implique que ma variable FinLigne aussi.
Pourtant, ce code s'éxécute trois fois avant sans poser de problème, mais à la 4eme il plante.
Si je check les valeurs avec une msgbox, ça donne respectivement: 67, 123, 180, 0.
Je ne vois pas du tout où peut-être l'erreur de mon code, si quelqu'un a une idée ...
Merci d'avance,
Thomas
Je sèche sur un morceau de code qui plante, et je ne comprend pas pourquoi.
Code:
Private Sub AffecterCommandes(IndexFeuille As Integer)
Select Case IndexFeuille
Case 1
Sheets("Commandes Magasin").Select
Case 3
Sheets("Commandes Begles").Select
End Select
Dim IndexLigneRecup As Integer
Dim ValeurTest As String
ValeurTest = Sheets("RecupDonneesCommandes").Range("A65536").End(xlUp).Value
With Sheets("RecupDonneesCommandes")
For IndexLigneRecup = 2 To .Range("A65536").End(xlUp).Row
Dim FinLigne As Integer
If ActiveSheet.Range("A65536").End(xlUp).Row >= ActiveSheet.Range("D65536").End(xlUp).Row Then
FinLigne = ActiveSheet.Range("A65536").End(xlUp).Row
Else
FinLigne = ActiveSheet.Range("D65536").End(xlUp).Row
End If
If .Cells(IndexLigneRecup, 2).Value <> .Cells(IndexLigneRecup - 1, 2).Value Then
ActiveSheet.Range("C" & FinLigne + 1).Value = .Cells(IndexLigneRecup, 2).Value
End If
FinLigne = ActiveSheet.Range("C65536").End(xlUp).Row
ActiveSheet.Cells(FinLigne, 2).Value = .Cells(IndexLigneRecup, 1).Value
Select Case .Cells(IndexLigneRecup, 3).Value
Case 0
ActiveSheet.Cells(FinLigne, 4).Value = ActiveSheet.Cells(FinLigne, 4).Value + .Cells(IndexLigneRecup, 4).Value
ActiveSheet.Cells(FinLigne, 5).Value = ActiveSheet.Cells(FinLigne, 5).Value + .Cells(IndexLigneRecup, 5).Value
Case 1
ActiveSheet.Cells(FinLigne, 6).Value = ActiveSheet.Cells(FinLigne, 6).Value + .Cells(IndexLigneRecup, 4).Value
ActiveSheet.Cells(FinLigne, 7).Value = ActiveSheet.Cells(FinLigne, 7).Value + .Cells(IndexLigneRecup, 5).Value
Case 2 Or 3
ActiveSheet.Cells(FinLigne, 8).Value = ActiveSheet.Cells(FinLigne, 8).Value + .Cells(IndexLigneRecup, 4).Value
ActiveSheet.Cells(FinLigne, 9).Value = ActiveSheet.Cells(FinLigne, 9).Value + .Cells(IndexLigneRecup, 5).Value
Case 4
ActiveSheet.Cells(FinLigne, 10).Value = ActiveSheet.Cells(FinLigne, 10).Value + .Cells(IndexLigneRecup, 4).Value
ActiveSheet.Cells(FinLigne, 11).Value = ActiveSheet.Cells(FinLigne, 11).Value + .Cells(IndexLigneRecup, 5).Value
End Select
ActiveSheet.Cells(FinLigne, 1).Value = Format(dtpRecupCommandes.Value, "m/d/yyyy")
Next IndexLigneRecup
Dim DebutTable As Integer
DebutTable = FinLigne
MsgBox DebutTable
[B]Do While Cells(DebutTable, 4).Value <> "Nombre Ref"[/B]
If DebutTable > 1 Then
DebutTable = DebutTable - 1
End If
Loop
ExitIf:
DebutTable = DebutTable + 1
Cells(FinLigne + 1, 1).Value = "Total"
Dim ParcoursTable As Integer
Dim IndexColonne As Integer
For IndexColonne = 4 To 11
For ParcoursTable = DebutTable To FinLigne + 1
Cells(FinLigne + 1, IndexColonne).Value = Cells(FinLigne + 1, IndexColonne).Value + Cells(ParcoursTable, IndexColonne).Value
Next ParcoursTable
Next IndexColonne
End With
End Sub
Voici le code qui pose problème. La ligne en gras est celle qui génère l'erreur (1004, erreur définit par l'application ou par l'objet)
J'ai vérifié, la valeur de DebutTable est égale à 0, ce qui implique que ma variable FinLigne aussi.
Pourtant, ce code s'éxécute trois fois avant sans poser de problème, mais à la 4eme il plante.
Si je check les valeurs avec une msgbox, ça donne respectivement: 67, 123, 180, 0.
Je ne vois pas du tout où peut-être l'erreur de mon code, si quelqu'un a une idée ...
Merci d'avance,
Thomas