Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro ajout de colonne

11 réponses
Avatar
JBF
Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai finalement
besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL" je
souhaite insérer une colonne entre la colonne E et la colonne F mais aussi
en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B et C
lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci

10 réponses

1 2
Avatar
Daniel.C
Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL" je
souhaite insérer une colonne entre la colonne E et la colonne F mais aussi
en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B et C
lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci



Avatar
JBF
Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J; M et
N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2 colonnes
entre E et F; une entre I et J; une entre K et L; une entre M et N; et
encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL" je
souhaite insérer une colonne entre la colonne E et la colonne F mais
aussi en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B et
C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci







Avatar
Daniel.C
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées d'une
colonne, celles à droite de la colonne I sont décalées de deux colonnes et
celles situées à droite de la colonne M sont décalées de 3 colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J; M et
N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2 colonnes
entre E et F; une entre I et J; une entre K et L; une entre M et N; et
encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL" je
souhaite insérer une colonne entre la colonne E et la colonne F mais
aussi en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B et
C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci











Avatar
JBF
oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut que je
trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J; M
et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre M et
N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL"
je souhaite insérer une colonne entre la colonne E et la colonne F mais
aussi en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B
et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci















Avatar
Frédéric Sigonneau
A mon avis, il pourrait suffire de sortir de la boucle dès qu'on a rencontré une
fois "GPL" :

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
Exit For ' <- ici
End If
Next cell
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut que je
trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J; M
et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre M et
N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL"
je souhaite insérer une colonne entre la colonne E et la colonne F mais
aussi en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B
et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci
















Avatar
JBF
Bonjour et merci pour ta contribution.

Cette macro produit la même bizarrerie que celle proposée par Daniel.C.
Lorsque j'ai GPL plusieurs fois ds la colonne A ça insert bien plus de
colonnes que ce qui est demandé.

Une autre idée?

Merci

"Frédéric Sigonneau" a écrit dans le message de news:

A mon avis, il pourrait suffire de sortir de la boucle dès qu'on a
rencontré une fois "GPL" :

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
Exit For ' <- ici
End If
Next cell
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut que
je trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J; M
et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre M
et N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL"
je souhaite insérer une colonne entre la colonne E et la colonne F
mais aussi en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B
et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci

















Avatar
Daniel.C
Bonjour.
En admettant que tu veuilles insérer une colonne devant les colonnes F, J et
N initiales :

Sub test()
Set c = Range("A1", Range("A65536").End(xlUp)).Find("GPL", , , xlWhole)
If Not c Is Nothing Then
Columns(6).Insert
Columns(11).Insert
Columns(16).Insert
End If
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour et merci pour ta contribution.

Cette macro produit la même bizarrerie que celle proposée par Daniel.C.
Lorsque j'ai GPL plusieurs fois ds la colonne A ça insert bien plus de
colonnes que ce qui est demandé.

Une autre idée?

Merci

"Frédéric Sigonneau" a écrit dans le message de news:

A mon avis, il pourrait suffire de sortir de la boucle dès qu'on a
rencontré une fois "GPL" :

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
Exit For ' <- ici
End If
Next cell
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut que
je trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J;
M et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre M
et N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit
"GPL" je souhaite insérer une colonne entre la colonne E et la
colonne F mais aussi en insérer une entre H et J et enfin entre M et
N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne
B et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne
A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci




















Avatar
MichDenis
Sub test()

If Application.CountIf(Range("A1", Range("A65536").End(xlUp)), "GPL") > 0 Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If

End Sub




"JBF" a écrit dans le message de news:

Bonjour et merci pour ta contribution.

Cette macro produit la même bizarrerie que celle proposée par Daniel.C.
Lorsque j'ai GPL plusieurs fois ds la colonne A ça insert bien plus de
colonnes que ce qui est demandé.

Une autre idée?

Merci

"Frédéric Sigonneau" a écrit dans le message de news:

A mon avis, il pourrait suffire de sortir de la boucle dès qu'on a
rencontré une fois "GPL" :

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
Exit For ' <- ici
End If
Next cell
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut que
je trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J; M
et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre M
et N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit "GPL"
je souhaite insérer une colonne entre la colonne E et la colonne F
mais aussi en insérer une entre H et J et enfin entre M et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne B
et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci

















Avatar
JBF
Merci à tous pour votre aide precieuse.

Les deux dernières macros proposées par Daniel.C et MichDenis marchent
toutes les deux, bien que différentes.
Je n'ai que l'embarras du choix.

Je me demande maintenant si je peux associer la macro que m'a proposé
Denis.C pour fusionner deux lignes lorsque il y a "GPL" dans la colonne A :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

... avec la macro que vous venez tous deux de me proposer (je mets l'exemple
de MichDenis pour ne pas qu'il y ait de jaloux!):

Sub test()

If Application.CountIf(Range("A1", Range("A65536").End(xlUp)), "GPL") > 0
Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If

End Sub

... afin de ne faire qu'une seule macro.

Ça c'était ma première interrogation.

Ensuite, je voudrais savoir si il est possible d'intégrer à cette macro une
fonction qui lui permette de supprimer les colonnes et les lignes fusionnées
si l'appellation "GPL" était amené à disparaître de la colonne A? Et ce,
sans avoir à refaire une manip' pour exécuter la macro?

Encore merci pour votre assistance.

JBF


"JBF" a écrit dans le message de news:

Bonjour et merci pour ta contribution.

Cette macro produit la même bizarrerie que celle proposée par Daniel.C.
Lorsque j'ai GPL plusieurs fois ds la colonne A ça insert bien plus de
colonnes que ce qui est demandé.

Une autre idée?

Merci

"Frédéric Sigonneau" a écrit dans le message de news:

A mon avis, il pourrait suffire de sortir de la boucle dès qu'on a
rencontré une fois "GPL" :

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
Exit For ' <- ici
End If
Next cell
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut que
je trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J;
M et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre M
et N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit
"GPL" je souhaite insérer une colonne entre la colonne E et la
colonne F mais aussi en insérer une entre H et J et enfin entre M et
N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne
B et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne
A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci




















Avatar
Daniel.C
Sub test()
Dim Var As Boolean
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
Var = True
End If
Next cell
If Var = True Then
Columns(6).Insert
Columns(11).Insert
Columns(16).Insert
End If
End Sub

Daniel

"JBF" a écrit dans le message de news:

Merci à tous pour votre aide precieuse.

Les deux dernières macros proposées par Daniel.C et MichDenis marchent
toutes les deux, bien que différentes.
Je n'ai que l'embarras du choix.

Je me demande maintenant si je peux associer la macro que m'a proposé
Denis.C pour fusionner deux lignes lorsque il y a "GPL" dans la colonne A
:

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

... avec la macro que vous venez tous deux de me proposer (je mets
l'exemple de MichDenis pour ne pas qu'il y ait de jaloux!):

Sub test()

If Application.CountIf(Range("A1", Range("A65536").End(xlUp)), "GPL") > 0
Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If

End Sub

... afin de ne faire qu'une seule macro.

Ça c'était ma première interrogation.

Ensuite, je voudrais savoir si il est possible d'intégrer à cette macro
une fonction qui lui permette de supprimer les colonnes et les lignes
fusionnées si l'appellation "GPL" était amené à disparaître de la colonne
A? Et ce, sans avoir à refaire une manip' pour exécuter la macro?

Encore merci pour votre assistance.

JBF


"JBF" a écrit dans le message de news:

Bonjour et merci pour ta contribution.

Cette macro produit la même bizarrerie que celle proposée par Daniel.C.
Lorsque j'ai GPL plusieurs fois ds la colonne A ça insert bien plus de
colonnes que ce qui est demandé.

Une autre idée?

Merci

"Frédéric Sigonneau" a écrit dans le message de news:

A mon avis, il pourrait suffire de sortir de la boucle dès qu'on a
rencontré une fois "GPL" :

Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
Exit For ' <- ici
End If
Next cell
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

oui j'ai fais le test justement mais le pb c'est que ça ne va pas si ça
décale plus d'une colonne. Je comprends ton explication mais il faut
que je trouve autre chose alors.

"Daniel.C" a écrit dans le message de news:
%
Oui.
La macro insère à chaque fois un colonne devant les colonnes F, J et
N.
A chaque décalage, les colonnes à droite de la colonne E sont décalées
d'une colonne, celles à droite de la colonne I sont décalées de deux
colonnes et celles situées à droite de la colonne M sont décalées de 3
colonnes.
Tu peux le visualiser avec une feuille de test ou tu ne mettras qu'une
cellule GPL en colonne A.
Daniel
"JBF" a écrit dans le message de news:

Cette macro fonctionne bizarrement.
SI A1="GPL" ça insère les colonnes correctement entre E et F; I et J;
M et N.

Par contre si j'ai "GPL" en A1 mais aussi en A3 alors ça insère 2
colonnes entre E et F; une entre I et J; une entre K et L; une entre
M et N; et encore une entre P et Q.

Je comprends pas pkoi.

"Daniel.C" a écrit dans le message de news:

Essaie :
Sub test()
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" Then
Columns(6).Insert
Columns(10).Insert
Columns(14).Insert
End If
Next cell
End Sub

Daniel
"JBF" a écrit dans le message de news:

Bonjour à tous,

Contrairement à ce que j'ai dit il y a une heure à Daniel.C j'ai
finalement besoin de votre aide maintenant!

Lorsque sur n'importe quelle ligne de la colonne A il y a écrit
"GPL" je souhaite insérer une colonne entre la colonne E et la
colonne F mais aussi en insérer une entre H et J et enfin entre M
et N.

Autre point, Daniel.C m'a donné une macro pour fusionner la colonne
B et C lorsqu'il y a écrit "GPL" dans la colonne A. La voici :

Sub test()
' Pour chaque de la plage A1 à la dernière cellule de la colonne
A
For Each cell In Range("A1", Range("A65536").End(xlUp))
If cell = "GPL" And cell.Offset(, 2) = "" Then
cell.Offset(, 1).Resize(, 2).MergeCells = True
End If
Next cell
End Sub

Il y a-t-il une possibilité d'intégrer l'ajout de colonnes à cette
formule?

Quelqu'un peut m'apporter une solution, s'il vous plait?

Merci
























1 2