Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Macro pour création de lignes automatiquement

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

sr94

XLDnaute Occasionnel
Bonjour,

J'ai besoin d'un coup de main pour créer une macro. N'étant pas experte en VBA, je sèche complètement mais ce n'est sûrement pas difficile.

J'ai donc un fichier qui permet de créer un planning perpétuel de menu, j'ai besoin que 10 nouvelles lignes soient créées, identiques au 10 dernières lignes, avec le même format, la formule, que ces lignes soient la nouvelle zone d'impression, et de masquer les autres lignes, je vous joins le fichier test, tout est dedans.

Merci beaucoup !
 

Pièces jointes

Re : Macro pour création de lignes automatiquement

Merci

Il faudrait aussi que la hauteur des lignes soient respectées, et que la formule fasse partie de la macro car dans la pratique la formule peut être effacée pour certaines cellules, mais doit être générée correctement pour les nouvelles lignes
 
Re : Macro pour création de lignes automatiquement

avec ce code.?

Code:
Sub Macro3()
'
' Macro3 Macro
'
    'récupère l'indice de la dernière ligne
    last = Range("A65536").End(xlUp).Row

    'sélectionne les 10 lignes à copier
    Rows(last - 9 & ":" & last).Copy
    
    'se place à la fin du tableau pour coller
    Rows(last + 1 & ":" & last + 11).Insert Shift:=xlDown
    Application.CutCopyMode = False
   
    'sélection des nouvelles lignes créées pour en faire la zone d'impression
    ActiveSheet.PageSetup.PrintArea = "$C$" & last + 1 & ":$I$" & last + 10
    
    'recopie de la formule
    Range("C" & last + 1).FormulaArray = _
        "=IF(R[-5]C=""Soir"",""Soir"",IF(R[-5]C=""Midi"",""Midi"",IF(N(R[-5]C),R[-5]C+7,INDEX(table_menus,MATCH(RC2,'Menu récurrent'!R4C1:R8C1,0),MATCH(TEXT(R2C,""JJJJ"")&R[-1]C,'Menu récurrent'!R2C2:R2C15&'Menu récurrent'!R3C2:R3C15,0)))))"
    
    'formule tirée vers la droite
    Range("C" & last + 1).AutoFill Destination:=Range("C" & last + 1 & ":I" & last + 1), Type:=xlFillDefault
    
    'formule tirée vers le bas
    Range("C" & last + 1 & ":I" & last + 1).AutoFill Destination:=Range("C" & last + 1 & ":I" & last + 10), Type:=xlFillDefault
    
    'sélection des autres lignes précédentes pour les masquer
    Rows("1:" & last).EntireRow.Hidden = True
    
End Sub

pour la hauteur des lignes, normalement ca les conserve. en tout cas. chez moi.
 
- 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

D
Réponses
4
Affichages
342
DidPouAxi
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…