Macro ajout de colonne

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5236551
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"
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



JBF
Le #5236481
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"
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"
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







Daniel.C
Le #5236421
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"
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"
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"
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











JBF
Le #5236391
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" %
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"
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"
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"
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















Frédéric Sigonneau
Le #5235961
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" %
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"
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"
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"
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
















JBF
Le #5235941
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" %
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"
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"
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"
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

















Daniel.C
Le #5235911
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"
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" %
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"
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"
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"
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




















MichDenis
Le #5235901
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"
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" %
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"
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"
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"
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

















JBF
Le #5235711
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"
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" %
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"
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"
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"
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




















Daniel.C
Le #5235671
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"
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"
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" %
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"
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"
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"
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
























Publicité
Poster une réponse
Anonyme