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
Retour