Bonjour à tous,
Je débute totalement en VBA et j'ai fait une macro simple qui permet de tester une condition sur 1 case d'une feuille mère lignes par lignes (ici Actions UP liquides) et de copier la ligne entière sur d'autres feuilles filles en fonction de la condition (ici AT USINE, 4 en tout). Elle fonctionnait bien jusqu'à ce que je veuille démultiplier la même macro pour d'autres feuilles mère (5 en tout).
Voilà un bout de la macro, je pense que le pb vient de la redondance du copier/coller sachant que ce sont exactement les même colonnes.
Y a til une boucle plus rapide?
Merci d'avance,
Nberte
PS : j'efface mes feuilles filles avant le copier/coller pour être sure d'avoir les dernières infos.
'AT liquides
'Effacer la feuille AT
For i = 1 To 22
For j = 4 To 200
Sheets("AT USINE").Cells(j, i) = ""
Next
Next
'Test pour determiner la ligne où coller les infos dans le tableau AT'
Sheets("AT USINE").Select
j = 4
While (Not (Range("A" & j) = ""))
j = j + 1
Wend
Range("A" & j).Select
'Copie les données des AT
Sheets("Actions UP Liquides").Select
For i = 4 To 200
If Sheets("Actions UP Liquides").Cells(i, 1).Value = "" Then
i = i + 1
End If
If Sheets("Actions UP Liquides").Cells(i, 1).Value = "ATA" Then
Sheets("AT USINE").Cells(j, 1).Value = Sheets("Actions UP Liquides").Cells(i, 1).Value
Sheets("AT USINE").Cells(j, 2).Value = Sheets("Actions UP Liquides").Cells(i, 2).Value
Sheets("AT USINE").Cells(j, 3).Value = Sheets("Actions UP Liquides").Cells(i, 3).Value
Sheets("AT USINE").Cells(j, 4).Value = Sheets("Actions UP Liquides").Cells(i, 4).Value
Sheets("AT USINE").Cells(j, 5).Value = Sheets("Actions UP Liquides").Cells(i, 5).Value
Sheets("AT USINE").Cells(j, 6).Value = Sheets("Actions UP Liquides").Cells(i, 6).Value
Sheets("AT USINE").Cells(j, 7).Value = Sheets("Actions UP Liquides").Cells(i, 7).Value
Sheets("AT USINE").Cells(j, 8).Value = Sheets("Actions UP Liquides").Cells(i, 8).Value
Sheets("AT USINE").Cells(j, 9).Value = Sheets("Actions UP Liquides").Cells(i, 9).Value
Sheets("AT USINE").Cells(j, 10).Value = Sheets("Actions UP Liquides").Cells(i, 10).Value
Sheets("AT USINE").Cells(j, 11).Value = Sheets("Actions UP Liquides").Cells(i, 11).Value
Sheets("AT USINE").Cells(j, 12).Value = Sheets("Actions UP Liquides").Cells(i, 12).Value
Sheets("AT USINE").Cells(j, 13).Value = Sheets("Actions UP Liquides").Cells(i, 13).Value
Sheets("AT USINE").Cells(j, 14).Value = Sheets("Actions UP Liquides").Cells(i, 14).Value
Sheets("AT USINE").Cells(j, 15).Value = Sheets("Actions UP Liquides").Cells(i, 15).Value
Sheets("AT USINE").Cells(j, 16).Value = Sheets("Actions UP Liquides").Cells(i, 16).Value
Sheets("AT USINE").Cells(j, 17).Value = Sheets("Actions UP Liquides").Cells(i, 17).Value
Sheets("AT USINE").Cells(j, 18).Value = Sheets("Actions UP Liquides").Cells(i, 18).Value
Sheets("AT USINE").Cells(j, 19).Value = Sheets("Actions UP Liquides").Cells(i, 19).Value
Sheets("AT USINE").Cells(j, 20).Value = Sheets("Actions UP Liquides").Cells(i, 20).Value
Sheets("AT USINE").Cells(j, 21).Value = Sheets("Actions UP Liquides").Cells(i, 21).Value
Sheets("AT USINE").Cells(j, 22).Value = Sheets("Actions UP Liquides").Cells(i, 22).Value
j = j + 1
End If
Je débute totalement en VBA et j'ai fait une macro simple qui permet de tester une condition sur 1 case d'une feuille mère lignes par lignes (ici Actions UP liquides) et de copier la ligne entière sur d'autres feuilles filles en fonction de la condition (ici AT USINE, 4 en tout). Elle fonctionnait bien jusqu'à ce que je veuille démultiplier la même macro pour d'autres feuilles mère (5 en tout).
Voilà un bout de la macro, je pense que le pb vient de la redondance du copier/coller sachant que ce sont exactement les même colonnes.
Y a til une boucle plus rapide?
Merci d'avance,
Nberte
PS : j'efface mes feuilles filles avant le copier/coller pour être sure d'avoir les dernières infos.
'AT liquides
'Effacer la feuille AT
For i = 1 To 22
For j = 4 To 200
Sheets("AT USINE").Cells(j, i) = ""
Next
Next
'Test pour determiner la ligne où coller les infos dans le tableau AT'
Sheets("AT USINE").Select
j = 4
While (Not (Range("A" & j) = ""))
j = j + 1
Wend
Range("A" & j).Select
'Copie les données des AT
Sheets("Actions UP Liquides").Select
For i = 4 To 200
If Sheets("Actions UP Liquides").Cells(i, 1).Value = "" Then
i = i + 1
End If
If Sheets("Actions UP Liquides").Cells(i, 1).Value = "ATA" Then
Sheets("AT USINE").Cells(j, 1).Value = Sheets("Actions UP Liquides").Cells(i, 1).Value
Sheets("AT USINE").Cells(j, 2).Value = Sheets("Actions UP Liquides").Cells(i, 2).Value
Sheets("AT USINE").Cells(j, 3).Value = Sheets("Actions UP Liquides").Cells(i, 3).Value
Sheets("AT USINE").Cells(j, 4).Value = Sheets("Actions UP Liquides").Cells(i, 4).Value
Sheets("AT USINE").Cells(j, 5).Value = Sheets("Actions UP Liquides").Cells(i, 5).Value
Sheets("AT USINE").Cells(j, 6).Value = Sheets("Actions UP Liquides").Cells(i, 6).Value
Sheets("AT USINE").Cells(j, 7).Value = Sheets("Actions UP Liquides").Cells(i, 7).Value
Sheets("AT USINE").Cells(j, 8).Value = Sheets("Actions UP Liquides").Cells(i, 8).Value
Sheets("AT USINE").Cells(j, 9).Value = Sheets("Actions UP Liquides").Cells(i, 9).Value
Sheets("AT USINE").Cells(j, 10).Value = Sheets("Actions UP Liquides").Cells(i, 10).Value
Sheets("AT USINE").Cells(j, 11).Value = Sheets("Actions UP Liquides").Cells(i, 11).Value
Sheets("AT USINE").Cells(j, 12).Value = Sheets("Actions UP Liquides").Cells(i, 12).Value
Sheets("AT USINE").Cells(j, 13).Value = Sheets("Actions UP Liquides").Cells(i, 13).Value
Sheets("AT USINE").Cells(j, 14).Value = Sheets("Actions UP Liquides").Cells(i, 14).Value
Sheets("AT USINE").Cells(j, 15).Value = Sheets("Actions UP Liquides").Cells(i, 15).Value
Sheets("AT USINE").Cells(j, 16).Value = Sheets("Actions UP Liquides").Cells(i, 16).Value
Sheets("AT USINE").Cells(j, 17).Value = Sheets("Actions UP Liquides").Cells(i, 17).Value
Sheets("AT USINE").Cells(j, 18).Value = Sheets("Actions UP Liquides").Cells(i, 18).Value
Sheets("AT USINE").Cells(j, 19).Value = Sheets("Actions UP Liquides").Cells(i, 19).Value
Sheets("AT USINE").Cells(j, 20).Value = Sheets("Actions UP Liquides").Cells(i, 20).Value
Sheets("AT USINE").Cells(j, 21).Value = Sheets("Actions UP Liquides").Cells(i, 21).Value
Sheets("AT USINE").Cells(j, 22).Value = Sheets("Actions UP Liquides").Cells(i, 22).Value
j = j + 1
End If