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

Insertion colonnes devant cellules remplies

2 réponses
Avatar
Sylvain P.
Bonjour,

J'ai un fichier excel avec plusieurs colonnes remplies, mais dont
seulement certaines poss=E8dent un ent=EAte en ligne 1.
Je souhaite ins=E9rer une colonne vide devant chacune des colonnes
poss=E9dant un ent=EAte.
=E7a para=EEt simple mais je bute dessus depuis 2 jours.

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

=E7a marche bien pour la premi=E8re colonne concern=E9e, mais =E7a bug pour
les suivantes.

Une id=E9e lumineuse ?
Merci par avance pour votre aide pr=E9cieuse !!

2 réponses

Avatar
Jean-Claude
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
Avatar
Charabeuh
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 !!