Macro dans excel
AAA1
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
AAA1 -
AAA1 -
Bonjour,
j'ai fait une macro toutes simple copier cellule 1A dans l'onglet feuil1 et coller dans l'onglet feuil 2 dans la cellule 10C.
j'aimerais répéter cette formule avec la cellule 2A dans l'onglet feuil1 et coller dans l'onglet feuil 2 dans la cellule 10C.
etc... jusqu'à la cellule 100A
y a t'il la possibilité de copier et coller la macro avec le changement de cellule dans la feuille 1 ?
je vous joint la macro que j'ai faite
j'aimerais remplacer "D7", "E7",ect par "D8", "E8",ect...
Sub Macro1()
'
' Macro1 Macro
'
'
Range("D7").Select
Selection.Copy
Sheets("Ordre de réparation").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("E7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("H8:S8").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("F7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("AA4:AH4").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("G7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("H7:S7").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("H7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N21:P21").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("I7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("Q21:AH21").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("J7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N11:AH11").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("K7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
ActiveWindow.SmallScroll Down:=3
Range("N28:AA28").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("L7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N13:AH13").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("M7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N14:AH14").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("P7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N15:AH15").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("R7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N19:AH20").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("S7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N12:AH12").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("T7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N17:AH17").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("U7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N16:AH16").Select
ActiveSheet.Paste
Range("B33:P33").Select
Sheets("Voiture VN-VS-VO").Select
Range("V7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N18:AH18").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-6
Range("A1:K4").Select
End Sub
D'avance merci
AAA1
j'ai fait une macro toutes simple copier cellule 1A dans l'onglet feuil1 et coller dans l'onglet feuil 2 dans la cellule 10C.
j'aimerais répéter cette formule avec la cellule 2A dans l'onglet feuil1 et coller dans l'onglet feuil 2 dans la cellule 10C.
etc... jusqu'à la cellule 100A
y a t'il la possibilité de copier et coller la macro avec le changement de cellule dans la feuille 1 ?
je vous joint la macro que j'ai faite
j'aimerais remplacer "D7", "E7",ect par "D8", "E8",ect...
Sub Macro1()
'
' Macro1 Macro
'
'
Range("D7").Select
Selection.Copy
Sheets("Ordre de réparation").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("E7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("H8:S8").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("F7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("AA4:AH4").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("G7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("H7:S7").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("H7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N21:P21").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("I7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("Q21:AH21").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("J7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N11:AH11").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("K7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
ActiveWindow.SmallScroll Down:=3
Range("N28:AA28").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("L7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N13:AH13").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("M7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N14:AH14").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("P7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N15:AH15").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("R7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N19:AH20").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("S7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N12:AH12").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("T7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N17:AH17").Select
ActiveSheet.Paste
Sheets("Voiture VN-VS-VO").Select
Range("U7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N16:AH16").Select
ActiveSheet.Paste
Range("B33:P33").Select
Sheets("Voiture VN-VS-VO").Select
Range("V7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("N18:AH18").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-6
Range("A1:K4").Select
End Sub
D'avance merci
AAA1
A voir également:
- Macro dans excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
Bonjour,
Les macros de l'enregistreur vous font des tas de lignes superflues, difficiles à adapter et lentes à l'exécution avec de nombreux Select, Copy, Paste, CutCopyMode =False ou encore des ActiveWindow.SmallScroll parfaitement inutiles.
Par exemple les lignes :
peuvent être remplacée par une seule ligne :
Pour faire toute la macro, on peut aussi utiliser un With pour éviter de répéter le nom de la feuille de destination à chaque ligne, ainsi le code complet peut être remplacé par :
Ensuite pour la question de passer à D8, E8, etc..., pas bien compris dans quelle destination (plusieurs lignes différentes...)
Il suffit de remplacer le 7 par une variable qu'on index dans une boucle, ainsi la procédure se répète en commençant par 7 et en allant jusqu'à 8 ou plus :
Exemple avec une variable I (déclarer en début de procédure par
Ensuite pour le code (pour faire des lignes 7 à 10 par exemple) :
Les macros de l'enregistreur vous font des tas de lignes superflues, difficiles à adapter et lentes à l'exécution avec de nombreux Select, Copy, Paste, CutCopyMode =False ou encore des ActiveWindow.SmallScroll parfaitement inutiles.
Par exemple les lignes :
Sheets("Voiture VN-VS-VO").Select
Range("E7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ordre de réparation").Select
Range("H8:S8").Select
ActiveSheet.Paste
peuvent être remplacée par une seule ligne :
Sheets("Ordre de réparation").Range("H8:S8").Value = Sheets("Voiture VN-VS-VO").Range("E7").Value
Pour faire toute la macro, on peut aussi utiliser un With pour éviter de répéter le nom de la feuille de destination à chaque ligne, ainsi le code complet peut être remplacé par :
With Sheets("Ordre de réparation")
.Range("E7").Value = Sheets("Voiture VN-VS-VO").Range("D7").Value
.Range("H8:S8").Value = Sheets("Voiture VN-VS-VO").Range("E7").Value
.Range("AA4:AH4").Value = Sheets("Voiture VN-VS-VO").Range("F7").Value
.Range("H7:S7").Value = Sheets("Voiture VN-VS-VO").Range("G7").Value
.Range("N21:P21").Value = Sheets("Voiture VN-VS-VO").Range("H7").Value
.Range("Q21:AH21").Value = Sheets("Voiture VN-VS-VO").Range("I7").Value
.Range("N11:AH11").Value = Sheets("Voiture VN-VS-VO").Range("J7").Value
.Range("N28:AA28").Value = Sheets("Voiture VN-VS-VO").Range("K7").Value
.Range("N13:AH13").Value = Sheets("Voiture VN-VS-VO").Range("L7").Value
.Range("N14:AH14").Value = Sheets("Voiture VN-VS-VO").Range("M7").Value
.Range("N15:AH15").Value = Sheets("Voiture VN-VS-VO").Range("P7").Value
.Range("N19:AH20").Value = Sheets("Voiture VN-VS-VO").Range("R7").Value
.Range("N12:AH12").Value = Sheets("Voiture VN-VS-VO").Range("S7").Value
.Range("N17:AH17").Value = Sheets("Voiture VN-VS-VO").Range("T7").Value
.Range("N16:AH16").Value = Sheets("Voiture VN-VS-VO").Range("U7").Value
.Range("N18:AH18").Value = Sheets("Voiture VN-VS-VO").Range("V7").Value
End With
Ensuite pour la question de passer à D8, E8, etc..., pas bien compris dans quelle destination (plusieurs lignes différentes...)
Il suffit de remplacer le 7 par une variable qu'on index dans une boucle, ainsi la procédure se répète en commençant par 7 et en allant jusqu'à 8 ou plus :
Exemple avec une variable I (déclarer en début de procédure par
Dim I as Integer)
Ensuite pour le code (pour faire des lignes 7 à 10 par exemple) :
For I = 7 to 10
.Range("H8:S8").Value = Sheets("Voiture VN-VS-VO").Range("E" & I).Value
'etc..
Next I