Insertion colonnes devant cellules remplies

Le
Sylvain P.
Bonjour,

J'ai un fichier excel avec plusieurs colonnes remplies, mais dont
seulement certaines possèdent un entête en ligne 1.
Je souhaite insérer une colonne vide devant chacune des colonnes
possédant un entête.
ça paraît simple mais je bute dessus depuis 2 jours.

Voilà mon code :
For Each C In Range("A1:M1")
If C.Value > 0 Then C.EntireColumn.Insert Shift:=xlToRight
C = C.Offset(0, 1)
Next

ça marche bien pour la première colonne concernée, mais ça bug pour
les suivantes.

Une idée lumineuse ?
Merci par avance pour votre aide précieuse !!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Claude
Le #23040651
Bonjour,

moins élégant mais ca fonctionne :
c = 1 ' 1ère colonne testée
m = 13 ' colonne M, intialement la dernière
While c <= m
If Cells(1, c).Value <> "" Then
Cells(1, c).EntireColumn.Insert Shift:=xlToRight
c = c + 1
m = m + 1
End If
c = c + 1
Wend

Cordialement,
Jean-Claude
Charabeuh
Le #23042411
Bonjour,

Essayez le code suivant:

Sub InsCol()
Dim J
For J = Range("M1").Column To 1 Step -1
If Cells(1, J).Value <> "" Then Cells(1, J).EntireColumn.Insert
Shift:=xlToRight
Next
End Sub

Cdlt.

______________________________________
"Sylvain P." a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un fichier excel avec plusieurs colonnes remplies, mais dont
seulement certaines possèdent un entête en ligne 1.
Je souhaite insérer une colonne vide devant chacune des colonnes
possédant un entête.
ça paraît simple mais je bute dessus depuis 2 jours.

Voilà mon code :
For Each C In Range("A1:M1")
If C.Value > 0 Then C.EntireColumn.Insert Shift:=xlToRight
C = C.Offset(0, 1)
Next

ça marche bien pour la première colonne concernée, mais ça bug pour
les suivantes.

Une idée lumineuse ?
Merci par avance pour votre aide précieuse !!
Publicité
Poster une réponse
Anonyme