[Catégorie modifiée VB6 --> VBA] Insertion de colonne une colonne sur deux
badege3378
Messages postés2Date d'inscriptionjeudi 19 août 2010StatutMembreDernière intervention20 août 2010
-
20 août 2010 à 14:31
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
20 août 2010 à 17:16
Bonjour,
Je me suis lancée il y a quelques semaines sur vba mais je tatonne. Je n'arrive pas à trouver comment insérer des colonnes, une colonne sur deux sachant que mes colonnes A et B ne doivent pas bouger.
Est-ce que quelq'un peut m'aider ?
Merci par avance
Nadège
A voir également:
[Catégorie modifiée VB6 --> VBA] Insertion de colonne une colonne sur deux
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 août 2010 à 15:02
Salut
Et quelle difficulté rencontres-tu ?
L'enregistreur de macro te fournira le code nécessaire à l'insertion d'une colonne.
Le reste, c'est une boucle entre la colonne de départ et celle de fin, en faisant bien attention de commencer par la fin afin de ne pas perturber le comptage.
Qu'as-tu écrit ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 août 2010 à 17:15
Ce que je veux dire, c'est que, si tu as des données dans tes colonnes (exemple en colonne C) et que tu insères une colonne devant C, l'ancienne colonne C se retrouvera en D.
Si tu fais une boucle normale, la colonne suivante sera D : Or, D est l'ancienne colonne C = pas bon.
Alors que si tu commences de 45 vers 1, ce décalage n'aura pas d'incidence.
Exemple :
For r = 45 To 3 Step (-1)
Mais dans ton cas, cela a peu d'importance puisque la variable de ta boucle, r, ne désigne pas la colonne mais te sert juste de compteur.
Exemple illustrant mon propos :
For r = 45 To 3 Step (-1)
ActiveSheet.Columns(r).Insert Shift:=xlToRight
Next r
Vous n’avez pas trouvé la réponse que vous recherchez ?