erreur de compilation : procédure trop longue

  • Initiateur de la discussion Initiateur de la discussion nberte
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nberte

Guest
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
905
Réponses
15
Affichages
775
Réponses
4
Affichages
729
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
448
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
919
Retour