Inséré lignes + mise en forme entre les lignes sélectionnées
Olibxl
Messages postés
14
Statut
Membre
-
Olibxl Messages postés 14 Statut Membre -
Olibxl Messages postés 14 Statut Membre -
Bonjour,
Suite à ma recherche sur la toile, j'ai trouvé le code suivant qui me permet en sélectionnant une série de ligne d'y insérer entre chaque 4 lignes. Parfait, cela fonctionne bien.
Code:
Dim x As Integer
For x = Range("A65536").End(xlUp).Row To 1 Step -1
If Not Intersect(Range("A" & x), Selection) Is Nothing Then
Rows(x).Insert Shift:=xlDown
Rows(x).Insert Shift:=xlDown
Rows(x).Insert Shift:=xlDown
Rows(x).Insert Shift:=xlDown '
End If
Next
Serait-il possible que les lignes qui s'insèrent automatiquement en exécutant la macro soient de fond vert et que la lettre "x" s'insère dans la première cellule de chaque ligne insérée automatiquement?
Merci pour vos réponses
Olivier
Suite à ma recherche sur la toile, j'ai trouvé le code suivant qui me permet en sélectionnant une série de ligne d'y insérer entre chaque 4 lignes. Parfait, cela fonctionne bien.
Code:
Dim x As Integer
For x = Range("A65536").End(xlUp).Row To 1 Step -1
If Not Intersect(Range("A" & x), Selection) Is Nothing Then
Rows(x).Insert Shift:=xlDown
Rows(x).Insert Shift:=xlDown
Rows(x).Insert Shift:=xlDown
Rows(x).Insert Shift:=xlDown '
End If
Next
Serait-il possible que les lignes qui s'insèrent automatiquement en exécutant la macro soient de fond vert et que la lettre "x" s'insère dans la première cellule de chaque ligne insérée automatiquement?
Merci pour vos réponses
Olivier
A voir également:
- Inséré lignes + mise en forme entre les lignes sélectionnées
- Mise en forme conditionnelle excel - Guide
- Mise en forme tableau word - Guide
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
4 réponses
Il est très probable que mon code soit inélégant voir même grossier mais si j'ai bien compris, il répond à tes attentes:
Dim x As Integer
For x = Range("A65536").End(xlUp).Row To 1 Step -1
If Not Intersect(Range("A" & x), Selection) Is Nothing Then
Rows(x).Insert Shift:=xlDown
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(x, 1) = "X"
Rows(x).Insert Shift:=xlDown
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
End With
Cells(x, 1) = "X"
Rows(x).Insert Shift:=xlDown
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(x, 1) = "X"
Rows(x).Insert Shift:=xlDown '
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(x, 1) = "X"
End If
Next
Dim x As Integer
For x = Range("A65536").End(xlUp).Row To 1 Step -1
If Not Intersect(Range("A" & x), Selection) Is Nothing Then
Rows(x).Insert Shift:=xlDown
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(x, 1) = "X"
Rows(x).Insert Shift:=xlDown
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
End With
Cells(x, 1) = "X"
Rows(x).Insert Shift:=xlDown
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(x, 1) = "X"
Rows(x).Insert Shift:=xlDown '
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Cells(x, 1) = "X"
End If
Next
Pour la question 1, c'est facile.
je t'explique les données dans "cells(x, 1)="X""
cells(ligne,colonne)="texte à y mettre"
Donc si tu veux "Bonne année" dans la colonne D, ton code sera:
cells(x, 4)="Bonne année"
Pour la question 3, le plus simple est d'aller dans Outil/macro/nouvelle macro
tu sélectionne une cellule, tu lui mets la couleur que tu veux puis tu ferme l'enregistrement de ta macro. Puis tu vas consulter le code VBA que tu viens d'enregistrer. Il doit se trouver dans le module le plus récent. Là bas, tu copies le numéro de couleur et tu l'introduis dans le code que je t'ai donné.
Pour la question 2, tu devrais pouvoir opérer de la même manière pour savoir comment le programmer.
je t'explique les données dans "cells(x, 1)="X""
cells(ligne,colonne)="texte à y mettre"
Donc si tu veux "Bonne année" dans la colonne D, ton code sera:
cells(x, 4)="Bonne année"
Pour la question 3, le plus simple est d'aller dans Outil/macro/nouvelle macro
tu sélectionne une cellule, tu lui mets la couleur que tu veux puis tu ferme l'enregistrement de ta macro. Puis tu vas consulter le code VBA que tu viens d'enregistrer. Il doit se trouver dans le module le plus récent. Là bas, tu copies le numéro de couleur et tu l'introduis dans le code que je t'ai donné.
Pour la question 2, tu devrais pouvoir opérer de la même manière pour savoir comment le programmer.
Bonjour Balisto76,
Merci pour ta réponse et ton code qui fonctionne bien, je l'ai donc testé ce matin sous Excel 2003 et cela fonctionne!!
J'ai juste un souci, ce code colore également les lignes séléctionnées à la base hors je voudrais que ce code ne colore que les lignes insérées automatiquement.
J'ai également quelques petites questions:
1. Comment changer la colonne dans laquelle je veux retrouver le X (dans ton code : cells(x, 1)="X", un "X" apparaît bien en dans les cellules de la colonne A des lignes insérées uniquement.
2. Est-il possible de faire en sorte que les lignes insérées soient groupées par 4 à l'insertion automatique sans devoir le faire manuellement pour chaque groupe de 4 lignes insérées?
3. Sous excel 2003, le vert claire ne porte pas de numéro, du moins ce n'est pas visible en sélectionnant la couleure de fond manuellement, je ne sais si je peux remplacer le numéro de couleur dans ton code (5266274) par un autre?
dans tout les cas merci beaucoup pour ton aide!
Olivier.
Merci pour ta réponse et ton code qui fonctionne bien, je l'ai donc testé ce matin sous Excel 2003 et cela fonctionne!!
J'ai juste un souci, ce code colore également les lignes séléctionnées à la base hors je voudrais que ce code ne colore que les lignes insérées automatiquement.
J'ai également quelques petites questions:
1. Comment changer la colonne dans laquelle je veux retrouver le X (dans ton code : cells(x, 1)="X", un "X" apparaît bien en dans les cellules de la colonne A des lignes insérées uniquement.
2. Est-il possible de faire en sorte que les lignes insérées soient groupées par 4 à l'insertion automatique sans devoir le faire manuellement pour chaque groupe de 4 lignes insérées?
3. Sous excel 2003, le vert claire ne porte pas de numéro, du moins ce n'est pas visible en sélectionnant la couleure de fond manuellement, je ne sais si je peux remplacer le numéro de couleur dans ton code (5266274) par un autre?
dans tout les cas merci beaucoup pour ton aide!
Olivier.
Merci Balisto76!
Je vais tester tout cela et te reviendrai ensuite pour donner un feedback.
Bien à toi,
Olivier.
Je vais tester tout cela et te reviendrai ensuite pour donner un feedback.
Bien à toi,
Olivier.
Après plusieurs tests sur mon fichier tes excel 2003 je n'arrive pas à décoloriser les lignes sélectionnées, je voudrais que les lignes colorées automatiquement ne soient QUE celles insérées automatiquement... Ne connaissant rien aux codes VBA, je ne risque pas de trouver... pouvez-vous m'aider? ;-)
A la maison je travail sur excel 2011 pour mac et je ne parviens pas à faire fonctionner ce code dans un de mes tableau. Je m'explique:
Ne parvenant pas à faire fonctionner le code dans mes tableaux à la maison, j'ai donc décidé de coller un tableau dans le fichier contenant le code et qui fonctionne bien même en l'ouvrant avec excel 2011 pour mac. Je rteste donc ce test dans ce tableau fraîchement collé et là Eureka cela fonctionne! Je décide donc d'enregistrer ce fichier sous le bon nom mais au format xlsm et j'efface les données qui ont servies au fichier test... Là :-((( cela ne fonctionne plus!
Pourriez-vous m'aider svp??
Olivier
A la maison je travail sur excel 2011 pour mac et je ne parviens pas à faire fonctionner ce code dans un de mes tableau. Je m'explique:
Ne parvenant pas à faire fonctionner le code dans mes tableaux à la maison, j'ai donc décidé de coller un tableau dans le fichier contenant le code et qui fonctionne bien même en l'ouvrant avec excel 2011 pour mac. Je rteste donc ce test dans ce tableau fraîchement collé et là Eureka cela fonctionne! Je décide donc d'enregistrer ce fichier sous le bon nom mais au format xlsm et j'efface les données qui ont servies au fichier test... Là :-((( cela ne fonctionne plus!
Pourriez-vous m'aider svp??
Olivier