Créer de nouvelles colonnes entre chaque déjà existante

kevin.sd

XLDnaute Nouveau
Bonjour à tous,

Le titre n'est pas le plus explicite du monde alors je m'explique !

Tout d'abord, merci de m'accueillir sur ce forum.

Alors, j'ai un fichier avec des colonnes A-B-C-D-E-F, etc.
Je voudrais faire en sorte qu'après chacune de ces colonnes, une nouvelle colonne soit créée pour ainsi créer le schéma A - nouvelle colonne - B - nouvelle colonne - C - nouvelle colonne, etc.
Et ce, jusqu'à F où F est la dernière colonne avec un titre.

J'aimerais, tant qu'à faire, que chaque nouvelle colonne porte ait inscrit, sur sa première ligne (en guise de titre), Nb en gras.

Existe-il un moyen de tout faire de façon automatisée ?
C'est une manip, qui demande beaucoup de temps quand on fait tout manuellement et qui revient régulièrement !

Merci d'avance.
 

JCGL

XLDnaute Barbatruc
Re : Créer de nouvelles colonnes entre chaque déjà existante

Bonjour à tous,
Bienvenue sur XLD,

Peux-tu essayer ceci :

Code:
Option Explicit


Sub Insère_Colonnes()
Dim X%


For X = 1 To 52 Step 2
Columns(X + 1).Insert Shift:=xlToRight
    Cells(1, X + 1) = "NB"
    Cells(1, X + 1).Font.Bold = True
    Next X
End Sub

A + à tous
 

kevin.sd

XLDnaute Nouveau
Re : Créer de nouvelles colonnes entre chaque déjà existante

Bonjour JCGL,

Ca marche nickel ! Impeccable !

J'ai vu que les colonnes avec NB s'arrêtent à un moment donné.
Y'a-t-il possibilité de les faire continuer plus loin ?

Le nombre de colonnes que j'ai dans mes fichiers changent tout le temps mais il y en a généralement un paquet alors il se peut que j'ai besoin d'encore plus de colonnes Nb.

Le "52" de la macro est-il lié à ça ?
 

JCGL

XLDnaute Barbatruc
Re : Créer de nouvelles colonnes entre chaque déjà existante

Bonjour à tous,

Si tu as 26 colonnes, double la borne supérieure :

26 Dataxx = 1 to 52 Step 2

Il est possible de "compter" le nombre de colonnes utilisées dans le ichier de départ et de le multiplier par deux (ici pour les colonnes renseignées en ligne 1):

VB:
Option Explicit
 Sub Insère_Colonnes()
    Dim X%
    Dim NbVal%

    NbVal = Application.WorksheetFunction.CountA(Worksheets("F1").Range("A1:IV1"))

    For X = 1 To NbVal * 2 Step 2
        Columns(X + 1).Insert Shift:=xlToRight
        Cells(1, X + 1) = "NB"
        Cells(1, X + 1).Font.Bold = True
    Next X
    Cells.Columns.AutoFit
    Range("A1").Select
End Sub


A + à tous
 
Dernière édition:

CassMarie

XLDnaute Nouveau
Re : Créer de nouvelles colonnes entre chaque déjà existante

Bonjour à tous,
Bienvenue sur XLD,

Peux-tu essayer ceci :

Code:
Option Explicit


Sub Insère_Colonnes()
Dim X%


For X = 1 To 52 Step 2
Columns(X + 1).Insert Shift:=xlToRight
    Cells(1, X + 1) = "NB"
    Cells(1, X + 1).Font.Bold = True
    Next X
End Sub

A + à tous
Bonjour, comment faire pour ajouter deux colonnes et non pas 1 seule entre chaque colonne ?
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Marie,

bienvenue sur le site XLD ! :)

pour info, tu parles à JCGL sur une conversation de 2012, d'il y a 9 ans ! 😜

essaye ceci :

VB:
Sub Insère2Colonnes()
  'comme y'a 2 colonnes dans "E:F", ça va insérer 2 colonnes juste à gauche
  'de la colonne E, les colonnes E et suivantes étant décalées à droite.
  Columns("E:F").Insert Shift:=xlToRight
End Sub

soan
 

Etoto

XLDnaute Barbatruc
Bonjour Marie,

bienvenue sur le site XLD ! :)

pour info, tu parles à JCGL sur une conversation de 2012, d'il y a 9 ans ! 😜

essaye ceci :

VB:
Sub Insère2Colonnes()
  'comme y'a 2 colonnes dans "E:F", ça va insérer 2 colonnes juste à gauche
  'de la colonne E, les colonnes E et suivantes étant décalées à droite.
  Columns("E:F").Insert Shift:=xlToRight
End Sub

soan
Bonjour,

Effectivement, je suis pas sûr qu'il allait répondre tout de suite ;) 😜
 

Discussions similaires

Réponses
5
Affichages
343
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 111
Messages
2 085 407
Membres
102 884
dernier inscrit
Macarena