Insérer une colonne entre deux colonnes, répéter automatiquement

Bonjour à tous,

J'ai une liste de 500 noms sur un ligne, qui se suivent.

Du type Machin, Truc, Bidule, etc ....

Je voudrai entrer une colonne entre chaque colonne de nom. Donc une colonne entre la colonne Machin et Truc, une colonne entre la colonne Truc et Bidule, etc....

Est-ce que je dois le faire à la main, ou je peux programmer cette insertion.

J'ai 500 noms ....

Par avance merci.

Cordialement,

Bonjour

J'ai une liste de 500 noms sur un ligne, qui se suivent.

Sur quelle ligne ?
A partir de la colonne A ?

Sinon sans fichier et en supposant que vous démarrer en A1, vous pouvez tester avec ce code. Code à placer dans un module

Sub test()
For i = 2 To 1000 Step 2
    Cells(1, i).EntireColumn.Insert
Next i
End Sub

Cordialement

Bonjour Dan,

Merci pour cette réponse.

La liste des noms commence à à la colonne M, sur la ligne 2.

Je crains que la réponse soit au delà de mon niveau en Excel (débutant ...) Qu'est-ce qu'un module ? Où dois-je copier cette formule ?

Bien cordialement,

Olivier

La liste des noms commence à à la colonne M, sur la ligne 2. ... Qu'est-ce qu'un module ? Où dois-je copier cette formule

Il ne s'agit pas d'une formule mais d'un code de programmation VBA.

Pour placer le code dans VBE. Faite comme suit :

  • Sur le clavier, appuyez sur les touches ALT + FN + F11 pour accéder à VBE (vous devriez voir l'onglet developpeur dans le menu excel)
  • Allez dans le Menu / Insertion et choisissez l'option "Insertion" -> "Module"
  • Dans la fenêtre vierge, collez le code ci-dessous (je l'ai modifié suite à votre post)
Sub test()
For i = 14 To 1026 Step 2
    Cells(2, i).EntireColumn.Insert
Next i
End Sub

Une fois fait, positionnez votre curseur de souris sur "sub test" puis appuyez sur la touche F5 ou en combinant les touches FN + F5

Merci pour tout ça.

J'ai copié le code dans la fenêtre qui est apparue.

J'en suis là.

Je ne trouve pas "sub test".

Cordialement,

Je ne trouve pas "sub test".

Désolé c'est moi qui est utilisé "text" au lieu de "test". J'ai corrigé dans le mon post précédent. Remplacez le X par S

Merci pour cette précision. Copie effectuée.

Il ne se passe rien quand je fais Fn 5

Cordialement,

Ce n'est pas FN 5 mais FN + F5

Sinon en haut dans la barre des icones, vous avez ces trois icones.

presse papier02

Il vous suffit de cliquer sur celui de gauche. En passant votre souris dessus vous voyez à quoi cela sert

Bonjour,

Pour le moment, rien ne se passe.

Il y a certainement une manipulation que je ne fais pas ....

Cordialement,

Olivier

Bonjour

Lorsque vous exécutez le code, votre feuille active est bien celle dans laquelle se trouvent les noms ?

Crdlt

Bonjour Dan,

Oui, c'est bien la même feuille.

Cordialement,

Olivier

Alors il n'y a pas de raison que cela ne fonctionne pas. D'autant que j'ai testé avant de vous poster le code

Ou alors mettez votre fichier en ligne (sans données confidentielles) que je vois ce que vous avez fait

ÇA MARCHE. J'ai recréé la liste dans un nouveau fichier, et ça fonctionne très bien.

Merci, je vais gagner beaucoup de temps !

Je vous embête encore : y a t-il un moyen de créer automatiquement des feuilles de calcul, aux noms de cette liste ?

Bien cordialement,

Olivier

y a t-il un moyen de créer automatiquement des feuilles de calcul, aux noms de cette liste ?

Oui mais là il me faudrait un fichier avec votre liste ou alors je vous donne un code mais vous devrez l'adapter à votre situation

Merci Dan pour votre aide.

Oui, merci, je veux bien une formule, j'essaierai d'adapter.
Il y a donc les noms présents dans la ligne, je souhaiterai qu'ils créent un onglet à leur nom. Et ceux que j'y ajouterai. Est-ce que cela créera automatiquement un onglet à leur nom au moment de la saisie ?

Encore merci.

Cordialement,

Olivier

Vous allez créer 500 feuilles dans votre fichier ?
Puis il ne s'agit pas de faire une formule là mais d'un code de programmation

Et ceux que j'y ajouterai. Est-ce que cela créera automatiquement un onglet à leur nom au moment de la saisie ?

Comment les ajoutez vous ? Sinon cela peut se faire oui mais sans fichier ...

Ma liste de 500 noms correspond à l'année 2020.

Je prépare le fichier pour 2021 et 2022.

En 2022, par exemple, cette liste de noms est en ce moment de 4 noms.

Progressivement, je vais en ajouter, pour arriver à plus de 200 (entre 200 et 250). Je les ajoute à la main (au clavier), en fonction des inscriptions qui arrivent.

Pour chaque nom qui existe, et ceux que je vais ajouter, je voudrais créer un onglet. On finira donc a 200 onglets. Ce n'est pas très pratique, évidemment ...

Je vous envoie le fichier : les noms figurent dans l'onglet "infos voyageurs", colonne B

Vous remerciant,

Cordialement,

Olivier

Pour chaque nom qui existe, et ceux que je vais ajouter, je voudrais créer un onglet. On finira donc a 200 onglets. Ce n'est pas très pratique, évidemment ...

Un onglet avec quoi dedans. Vous voulez une feuille Vierge pour chaque nom ?
Si oui, on se base sur quelle colonne ? la B ?

Bonjour Dan,

Merci pour ce retour.
Oui, on se base sur la colonne B.

Un onglet au nom du contenu de chaque cellule de la colonne. Et dans chaque onglet, une copie de la ligne entière.

Par exemple, en B2, Céline et Nicoles Hoëhn : nom de l'onglet "Céline et Nicoles Hoëhn", ou "Hoëhn", et dans l'onglet, on pourrait retrouver la ligne 2 de l'onglet, en ligne 1 du nouvel onglet.

Bien cordialement,

Olivier

Bonjour,

En fonction de votre dernier post, mettez ces deux codes dans un module (comme vous l'avez déjà fait suite à mot post de vendredi)

Sub Generer_feuille()
Dim i As Integer, dlg As Integer
Dim Nomfeuille

Application.ScreenUpdating = False
With Sheets("Infos voyageurs")
    dlg = .Range("B" & .Rows.Count).End(xlUp).Row
    For i = 2 To dlg
        Nomfeuille = .Range("C" & i).Value
        If Not FeuilleExiste(Nomfeuille) Then
        .Copy After:=Sheets("Infos Voyageurs")
        With ActiveSheet
            .Name = .Range("C" & i).Value
            .Rows("1:" & i - 1).Delete
            .Rows("2:" & i + dlg).Delete
        End With
        End If
    Next i
End With
Application.ScreenUpdating = True
End Sub

Function FeuilleExiste(Nomfeuille) As Boolean
'verifie si la feuille existe ou pas
    Dim f As Object
    On Error Resume Next
    Set f = Sheets(Nomfeuille)
    If Err = 0 Then FeuilleExiste = True
    Set f = Nothing
End Function

Une fois fait, vous positionnez le pointeur de votre souris sur la ligne Generer_feuille puis vous exécuter le code. Attention n'essayez pas d'exécuter le code Function qui lui va être exécuté automatiquement depuis la sub Generer_feuille.

Une fois les codes placés dans votre fichier, n'oubliez pas d'enregistrer votre fichier au format XLSM pour que les codes soient conservés dans le fichier.

Si vous voulez mettre un bouton en plus, créez le sur votre feuille. Une fois créé faite clique droite sur ce bouton puis choisir l'option "affecter une macro" et sélectionner la macro Generer_feuille.

L'onglet sera nommé en fonction du nom trouvé en colonne C. Le code place la ligne concernée en ligne de chaque feuille

Crdlt

Rechercher des sujets similaires à "inserer colonne entre deux colonnes repeter automatiquement"