macro d'insertion de ligne sans recopier le format?

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

L

Lecontemat

Guest
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

Mathieu
 
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 :

Code:
With Rows("2")
   .Insert 
   .ClearFormats
End With
 
Dernière édition:
- 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.

Discussions similaires

M
  • Question Question
Réponses
3
Affichages
815
Mr.Adrien
M
L
Réponses
9
Affichages
1 K
S
Réponses
3
Affichages
874
sanae_J
S
K
Réponses
6
Affichages
1 K
Korasgar
K
L
Réponses
2
Affichages
1 K
L
C
  • Question Question
LibreOffice Calc Macro sous LibreOffice
Réponses
0
Affichages
1 K
Coline6789
C
N
Réponses
5
Affichages
3 K
Nicocotte125
N
L
Réponses
1
Affichages
999
lilidxb
L
V
Réponses
2
Affichages
2 K
vynmarius
V
K
Réponses
2
Affichages
2 K
Compte Supprimé 979
C
M
Réponses
15
Affichages
2 K
MELSINA2000
M
P
  • Question Question
Réponses
5
Affichages
914
Retour