erreur de compilation : procédure trop longue

nberte

XLDnaute Nouveau
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
 

wilfried_42

XLDnaute Barbatruc
Re : erreur de compilation : procédure trop longue

bonjour

ta macro remaniée, à la main levée, pas testée

Code:
'AT liquides
'Effacer la feuille AT
dim i as long, j as long
with Sheets("AT USINE")
      .range("A4:V200").clear
      j=.range("A65536").end(xlup).row + 1 ' Prochaine ligne vierge
      Sheets("Actions UP Liquides").Select
      For i = 4 To 200
     If Cells(i, 1).Value = "" Then i = i + 1
     if Cells(i, 1).Value = "ATA" Then
         for k = 1 to 22
             .cells(j,k) = cells(i,k)
         next k
         j = j + 1
     End If
end with
 

Discussions similaires

Réponses
11
Affichages
306
Réponses
0
Affichages
159

Statistiques des forums

Discussions
312 362
Messages
2 087 637
Membres
103 621
dernier inscrit
breizhyoda