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

copier la mise en forme de la ligne précédente

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 !

zephir94

XLDnaute Impliqué
Bonsoir à tous,

Je crée une nouvelle ligne dans une feuille en récupérant des valeurs dans un userform.
je voudrais en même temps copier la mise en forme de la ligne précédente .



Pour la copie de l'aspect d'une ligne j'ai trouvé pour conserver son format il faut que j'utilise :
Code:
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
mais comment l'articuler avec la création de ma nouvelle ligne :
Code:
NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
 .Range("A" & NewLig).Value = Val(.Range("A" & NewLig - 1).Value) + 1]

Comme il y a un sélection je penses qu'il faut sélectionner la nouvelle ligne mais comment ?

Merci par avance
 
Re : copier la mise en forme de la ligne précédente

Bonsoir ,

Peut être comme cela

Code:
'Calcul de la ligne
 NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
 'Copie la mise en forme
 .Range("A" & NewLig - 1 & ":H" & NewLig - 1).Copy Destination:=Range("A" & NewLig)
 'stock les valeurs
 .Range("A" & NewLig).Value = Val(.Range("A" & NewLig - 1).Value) + 1
 
Re : copier la mise en forme de la ligne précédente

Je te remercie,

Je viens de tester ton exemple et je m'en suis inspiré et j'ai comme erreur
en arrivant à la ligne
Code:
 .Range("A" & NewLig - 1 & ":A" & NewLig - 1).Copy Destination:=Range("A" & NewLig)
erreur d'exécution 1004
la méthode 'range' de l'objet '_global' a échoué
Je vais me coucher, ce sera le challenge de demain !
Merci à ta toi, si tu as une autre idée je suis preneur 🙄
 
Re : copier la mise en forme de la ligne précédente

C'est en effet possible , les cellules fusionnées sont à proscrire dans les tableau de données, sous peine de galérer lors des traitements

Attention , .Range("A" & NewLig - 1 & ":A" & NewLig - 1).Copy Destination:=Range("A" & NewLig)
le range juste aprés le = n'a pas de point devant donc , c'est la feuille active au moment de l'exécution de la macro qui sera impactée
 
- 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
18
Affichages
424
Réponses
2
Affichages
345
Réponses
10
Affichages
655
Réponses
5
Affichages
703
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…