P
Patricia
Guest
Bonjour,
J'ai une macro avec des conditions et notamment une boucle mais au bout de 21 fois la boucle arrête alors qu'il y a encore des données à prendre.
je pense qu'il faut mettre un compteur mais je ne sais pas à quel niveau - j'ai fais des essais mais ca me fonctionne pas ...
quelqu'un peut-il m'aider !!! je vous joins la macro
Merci d'avance
Patricia
Sub Tri_Travel() 'attention il y a un problème de compteur à voir
Dim DernLigne As Long
Dim LigneCible As Long
Dim LigneTotal As Long
Dim Counter As Long
'enlève les anciennes données de la feuille
Sheets("Travel").Select
Range("A2:G59999").Select
Selection.ClearContents
Range("A2").Select
Sheets("BD WP3").Select
Selection.AutoFilter Field:=2, Criteria1:="WP3*"
Range("A:A,C:C,D ,E:E,J:J,K:K,O:O").Select
Selection.Copy
Sheets("Travel").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("A:G").Select
Range("G1").Activate
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("a2").Select
Windows("Bd WP3.xls").Activate
Sheets("Form2").Select
Range("A22").Select
Sheets("Form2").Copy Before:=Sheets(4)
Sheets("Form2 (2)").Select
Sheets("Form2 (2)").Name = "2"
DernLigne = Sheets("Form2").Range("a65536").End(xlUp).Row ' numéro dernière ligne de la feuille 1 de BDactivite1
LigneCible = 22
For Each cell In Range("h2:h" & DernLigne)
If cell.Value = Range("j1").Value Then
Workbooks("Bd WP3.xls").Sheets("2").Range("A" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("B" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("B" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("C" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("C" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("D" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("D" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("A" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("E" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("E" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("F" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("F" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("G" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("G" & cell.Row).Value)
LigneCible = LigneCible + 1
If LigneCible >= 26 Then
Workbooks("Bd WP3.xls").Sheets("2").Rows(LigneCible).Insert
Counter = 100
End If
End If
Next
LigneTotal = Workbooks("Bd WP3.xls").Sheets("Pers1A").Range("b65536").End(xlUp).Row
FormuleTotal = "=sum(e22:e" & LigneTotal - 1 & ")"
Workbooks("Bd WP3.xls").Sheets("2").Range("e" & LigneTotal).Value = FormuleTotal
Sheets("2").Select
Sheets("2").Move After:=Workbooks("WP3.xls").Sheets(1)
ActiveWorkbook.Save
Windows("Bd WP3.xls").Activate
Sheets("BD WP3").Select
Selection.AutoFilter Field:=2
ActiveWorkbook.Save
End Sub
J'ai une macro avec des conditions et notamment une boucle mais au bout de 21 fois la boucle arrête alors qu'il y a encore des données à prendre.
je pense qu'il faut mettre un compteur mais je ne sais pas à quel niveau - j'ai fais des essais mais ca me fonctionne pas ...
quelqu'un peut-il m'aider !!! je vous joins la macro
Merci d'avance
Patricia
Sub Tri_Travel() 'attention il y a un problème de compteur à voir
Dim DernLigne As Long
Dim LigneCible As Long
Dim LigneTotal As Long
Dim Counter As Long
'enlève les anciennes données de la feuille
Sheets("Travel").Select
Range("A2:G59999").Select
Selection.ClearContents
Range("A2").Select
Sheets("BD WP3").Select
Selection.AutoFilter Field:=2, Criteria1:="WP3*"
Range("A:A,C:C,D
Selection.Copy
Sheets("Travel").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("A:G").Select
Range("G1").Activate
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("a2").Select
Windows("Bd WP3.xls").Activate
Sheets("Form2").Select
Range("A22").Select
Sheets("Form2").Copy Before:=Sheets(4)
Sheets("Form2 (2)").Select
Sheets("Form2 (2)").Name = "2"
DernLigne = Sheets("Form2").Range("a65536").End(xlUp).Row ' numéro dernière ligne de la feuille 1 de BDactivite1
LigneCible = 22
For Each cell In Range("h2:h" & DernLigne)
If cell.Value = Range("j1").Value Then
Workbooks("Bd WP3.xls").Sheets("2").Range("A" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("B" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("B" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("C" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("C" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("D" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("D" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("A" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("E" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("E" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("F" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("F" & cell.Row).Value)
Workbooks("Bd WP3.xls").Sheets("2").Range("G" & LigneCible).Value = (Workbooks("BD WP3.xls").Sheets("Travel").Range("G" & cell.Row).Value)
LigneCible = LigneCible + 1
If LigneCible >= 26 Then
Workbooks("Bd WP3.xls").Sheets("2").Rows(LigneCible).Insert
Counter = 100
End If
End If
Next
LigneTotal = Workbooks("Bd WP3.xls").Sheets("Pers1A").Range("b65536").End(xlUp).Row
FormuleTotal = "=sum(e22:e" & LigneTotal - 1 & ")"
Workbooks("Bd WP3.xls").Sheets("2").Range("e" & LigneTotal).Value = FormuleTotal
Sheets("2").Select
Sheets("2").Move After:=Workbooks("WP3.xls").Sheets(1)
ActiveWorkbook.Save
Windows("Bd WP3.xls").Activate
Sheets("BD WP3").Select
Selection.AutoFilter Field:=2
ActiveWorkbook.Save
End Sub