Ajout de ligne avec copie de style

  • Initiateur de la discussion Initiateur de la discussion Paulo
  • 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 !

Paulo

XLDnaute Nouveau
Bonjour,

J'ai besoin de souvent modifier des fichiers excel en ajoutant des lignes et créant des formules de moyenne et totaux et je ne sais pas comment m'y prendre pour automatiser ça. Je joint un fichier car ca me parait plus clair avec ce support.

Sur l'onglet "Origine", un exemple (très allégé) d'un tableau de base
Sur l'onglet "Resultat", ce qu'il me faudrait au final, c’est à dire :

  • Lorsque je sélectionne une ligne (dans mon exemple la ligne 2 ou 4), à l'aide d'un bouton macro il faudrait que ça me rajoute sous cette ligne sélectionnée 7 autres lignes
  • Ces 7 lignes doivent avoir le même style que celle du dessus (même encadrement et même fusion de cellules)
  • Sur la ligne du bas il faudrait qu'il y ait un calcul de moyenne des chiffres que j’entrerai sur ces nouvelles lignes
  • Dans la colonne "AC" la somme de la ligne des moyennes

Ceci est totalement en dehors de mes compétences, je ne sais pas par où commencer, c'est pour cette raison que je me tourne vers vous.

Merci d'avance si vous pouvez m'aider.
 

Pièces jointes

Re : Ajout de ligne avec copie de style

Re


Comme j'y suis retourné voir comme promis, je poste quand même
Code:
Sub MacrOhMonDieuQuelBean()
Dim i As Long
Dim adr, j As Byte
Application.ScreenUpdating = False
Rows("3:9").Insert Shift:=xlDown
Range("A2:AA2").Copy
For i = 3 To 9
Range("A3:AA" & i).PasteSpecial Paste:=xlPasteFormats
Next i
adr = Split("A C E G O X Z")
For j = 0 To UBound(adr)
Cells(9, adr(j)).FormulaR1C1 = "=AVERAGE(R[-6]C:R[-1]C[1])"
Next j
Cells(9, "I").FormulaR1C1 = "=AVERAGE(R[-7]C:R[-1]C[5])"
Cells(9, "Q").FormulaR1C1 = "=AVERAGE(R[-7]C:R[-1]C[3])"
Cells(9, "U").FormulaR1C1 = "=AVERAGE(R[-7]C:R[-1]C[2])"
Application.ScreenUpdating = True
End Sub
Mais comme faut pas s'attarder, j'irai pas plus loin 😉

Paulo: Merci d'avoir publié ta réponse pour les autres membres du forum que cela aurait pu intéressé 😛🙄

Tu remercieras aussi ton jumeau Paulox sur l'autre forum et Yvouille pour sa réponse.
 
Dernière édition:
Re : Ajout de ligne avec copie de style

Re,

Merci pour ta réponse et voici donc la macro de Yvouille sur l'autre forum (merci une nouvelle fois à lui si il traine par ici) :

Code:
Sub aa()
Dim i As Integer, j As Integer, k As Integer

Application.ScreenUpdating = False

j = Selection.Row
    For i = 1 To 7
        Range("A" & j & ":AA" & j).Copy
        Rows(j + i & ":" & j + i).Insert Shift:=xlDown
        Application.CutCopyMode = False
    Next i
Range("A" & j + 1 & ":AA" & j + 7).ClearContents

For k = 1 To 27
    Cells(j + 7, k).FormulaR1C1 = "=AVERAGE(R[-6]C:R[-1]C)"
Next k

Range("AC" & j + 7).FormulaR1C1 = "=SUM(RC[-28]:RC[-2])"

End Sub

Cordialement
 
Re : Ajout de ligne avec copie de style

Re


Effectivement, merci à Yvouille
La lecture de mon code m'aura permis de simplifier le mien 😉
Code:
Sub bb()
Dim i As Long
Application.ScreenUpdating = False
Rows("3:9").Insert Shift:=xlDown
Range("A2:AA2").Copy
For i = 3 To 9
Range("A3:AA" & i).PasteSpecial Paste:=xlPasteFormats
Next i
Range("A9:Z9").FormulaR1C1 = "=AVERAGE(R[-6]C:R[-1]C)"
Application.ScreenUpdating = True
End Sub
PS: Paulo: A prochaine fois, indiques le quand tu poses ta question sur plusieurs forums.
 
Re : Ajout de ligne avec copie de style

Re


La variante avec Selection
(ici testé comme la cellule active est en ligne 3 -> test ok sur mon pc)
Code:
Sub cc()
Dim ar&, i&
Application.ScreenUpdating = False
ar = ActiveCell.Row
Rows(ar).Resize(7).Insert Shift:=xlDown
Range("A" & ar - 1 & ":AA" & ar - 1).Copy
For i = 3 To 9
Range("A" & ar + 1 & ":AA" & i).PasteSpecial Paste:=xlPasteFormats
Next i
Range("A" & ar + 6).Resize(, 26).FormulaR1C1 = "=AVERAGE(R[-6]C:R[-1]C)"
Application.ScreenUpdating = True
End Sub
 
Re : Ajout de ligne avec copie de style

Re

J'avais pas osé, quelques fois les concurrences entre forums ne sont pas bien vues 😉
Mais promis je le dirais la prochaine fois.

Ce qui n'est pas bien vu c'est le multipostage 😉
Voir ici pour les détails
Multipostage - Wikipédia

PS1: Tu as testé le dernier code que je t'ai soumis ?

PS2: Plus on est de fous à s'amuser avec Excel, plus on s'enrichit (Microsoft le premier 😉)
Donc plus nombreux sont les forums dédiés à Excel, mieux c'est.
Et je parlerai plutôt de complémentarité que de concurrence.
(Manquerait plus que la concurrence s'instaure entre forums peuplés de gens bénévoles 😉)
 
Dernière édition:
Re : Ajout de ligne avec copie de style

Bonsoir,

Désolé j'étais absent toute la journée. Le dernier code fonctionne super également, merci beaucoup pour ton aide 😉 Au moins ca me permet de voir plusieurs méthodes et d'essayer d'en tirer des enseignements.

Merci
 
- 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
13
Affichages
492
Réponses
32
Affichages
976
Réponses
10
Affichages
938
Retour