VBA - Simplification code

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 !

rounil09

XLDnaute Occasionnel
Bonjour la liste,

Je cherche à simplifier la macro ci-dessous qui fonctionne mais qui est un peu "lourde".
J'espère un petit gain de temps.

En fait il s'agit de faire une recopie inrcrémentée d'une BD (à partir de la ligne 3) toutes les 3 colonnes de H à AL, jusqu'à leurs dernières cellules pleines.

Facile à dire, bien moins évident à faire pour moi. Je n'arrive pas à m'en sortir.




'Remonter depuis ligne 10000, se caler sur dernière cellule pleine et autofil jusqu'a cellule 3 de la ligne
'2009 = Colonne H, 2010 = Colonne K, ..etc...
DerLig = [H10000].End(xlUp).Row
[H3].AutoFill Destination:=Range("H3:H" & DerLig), Type:=xlFillDefault
DerLig = [K10000].End(xlUp).Row
[K3].AutoFill Destination:=Range("K3:K" & DerLig), Type:=xlFillDefault
DerLig = [N10000].End(xlUp).Row
[N3].AutoFill Destination:=Range("N3:N" & DerLig), Type:=xlFillDefault
DerLig = [Q10000].End(xlUp).Row
[Q3].AutoFill Destination:=Range("Q3:Q" & DerLig), Type:=xlFillDefault
DerLig = [T10000].End(xlUp).Row
[T3].AutoFill Destination:=Range("T3:T" & DerLig), Type:=xlFillDefault
DerLig = [W10000].End(xlUp).Row
[W3].AutoFill Destination:=Range("W3:W" & DerLig), Type:=xlFillDefault
DerLig = [Z10000].End(xlUp).Row
[Z3].AutoFill Destination:=Range("Z3:Z" & DerLig), Type:=xlFillDefault
DerLig = [AC10000].End(xlUp).Row
[AC3].AutoFill Destination:=Range("AC3:AC" & DerLig), Type:=xlFillDefault
DerLig = [AF10000].End(xlUp).Row
[AF3].AutoFill Destination:=Range("AF3:AF" & DerLig), Type:=xlFillDefault
DerLig = [AI10000].End(xlUp).Row
[AI3].AutoFill Destination:=Range("AI3:AI" & DerLig), Type:=xlFillDefault
DerLig = [AL10000].End(xlUp).Row
[AL3].AutoFill Destination:=Range("AL3:AL" & DerLig), Type:=xlFillDefault

Bien cordialement
 
Re : VBA - Simplification code

Bonsoir Rounil09

Tu peux essayer ce code 😉
VB:
Sub Test()
  Dim Col As Long, DerLig As Long
  ' Si les cellules contiennent des formules, bloquer le calcul auto
  Application.Calculation = xlCalculationManual
  ' Empècher le rafraichissement d'écran
  Application.ScreenUpdating = False
  'Remonter depuis ligne 10000, se caler sur dernière cellule pleine et autofil jusqu'a cellule 3 de la ligne
  '2009 = Colonne H, 2010 = Colonne K, ..etc...
  For Col = 8 To 38 Step 3  'de H à AL toutes les 3 colonnes
    DerLig = Cells(Rows.Count, Col).End(xlUp).Row
    DerLig = 300
    Cells(3, Col).AutoFill Destination:=Range(Cells(3, Col), Cells(DerLig, Col)), Type:=xlFillDefault
  Next Col
  ' Remettre le calcul en auto
  Application.Calculation = xlCalculationAutomatic
  ' réactiver le rafraichissement d'écran
  Application.ScreenUpdating = True
End Sub

A+
 
- 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

Discussions similaires

Réponses
7
Affichages
829
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
613
Retour