Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
macro d'insertion de ligne sans recopier le format?
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 !
Bonjour à tous en cette matinée ensoleillée qui sent le printemps, je vous serai reconnaissant de m'aider si vous le pouvez,
J'ai une macro qui insere une ligne dans une feuille excel hélas elle recopie le format de la ligne de dessus, malgré mes tentatives maladroites de modifier le code et de lui demander de recopier celle de dessous FromUnder
ce qui ne marche pas...
Sheets("base de données").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromUnder:
Merci de votre aide si mon message n'est pas trop confus
Re : macro d'insertion de ligne sans recopier le format?
Bonjour et bienvenu sur le forum Lecontemat,
Bonjour le fil,
J'arrive un peu tard, mais voici quand même ce que j'ai préparé...
Ton code d'origine :
Code:
[COLOR="Red"][B]Sheets("base de données")[/B][/COLOR].[COLOR="Blue"][B]Select[/B][/COLOR]
[COLOR="DarkSlateGray"][B]Rows("2:2")[/B][/COLOR].[COLOR="Sienna"][B]Select[/B][/COLOR]
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromUnder:
Là, tu as fait comme pour les GPS, tu indique le code postal, une fois ce dernier trouvé(sélectionné), tu indique le nom de la rue où tu veux aller. C'est long est fastidieux pour l'utilisateur.
Pour Excel, tu n'as pas besoin de procéder ainsi : indiquer la feuille, la sélectionner, puis indiquer la ligne concerné et la sélectionner.
Tu dis le nom de la feuille ET la ligne que tu veux sélectionner et seulement à ce moment tu sélectionne le tout. Ainsi tu sélectionne qu'une fois 😉
Ce qui te donne :
Code:
Sheets("base de données").Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromUnder:
Mais en faite... pour faire cela, tu peux même aller encore plus vite, car cette fonction ne nécessite pas obligatoirement une sélection !!!
Tu peux l'écrire ainsi :
Code:
Sheets("base de données").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromUnder:
Ou plus simplement encore :
Code:
Sheets("base de données").Rows([B][U]"2"[/U][/B]).Insert
Tu noteras que j'ai effacé : ->Shift:=xlDown qui ne sert à rien dans ton cas. -> Ainsi que CopyOrigin:=xlFormatFromUnder: qui n'est pas approprié à ton cas de figure comme tu le dis si bien car ce code prend le format qui se trouve Under et l'applique sur la ligne nouvellement créé. -> et que j'ai simplifié Rows("2:2") de la façon suivante : Rows("2"). Ton code voulais dire : de la ligne 2 à 2. Mon code signifie : la ligne 2. Ce qui revient au même mais en plus rapide, plus court 😉
Mais sinon, pour répondre à ta question en s'inspirant de tout ce que j'ai dit :
Code:
Sheets("base de données").Rows("2").Insert
Sheets("base de données").Rows("2").ClearFormats
La seconde ligne signifie : effacer toute la mise en forme de la ligne indiqué (celle nouvellement inséré) : gras/italique/... bordures, cellules fusionnées, ...
Mais comme tu l'as remarqué, dans mon code, il y a une répétition! Voici comment l'enlever :
Code:
With Sheets("base de données").Rows("2")
.Insert
.ClearFormats
End With
Bon Dimanche
PS. : pour information, si dans ton code, tu as indiqué plus haut que tu travaillais sur la feuille "base de données", tu n'as pas besoin de le redire ici! Ce qui te donnera :
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.