IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Code insérer colonne vierge si "LibelleClient" de $A$1 à $Z$1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Par défaut Code insérer colonne vierge si "LibelleClient" de $A$1 à $Z$1
    Bonjour à tous,

    On m'avait aidé pour mettre en place ce code (qui marche très bien d'ailleurs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub ins()
        Dim row As Range
        Dim curName As String, nextName As String
     
        For Each row In ActiveSheet.UsedRange.Columns("E").Cells
            If Not row.Value = vbNullString And Not row.Offset(1).Value = vbNullString Then
                curName = row.Value
                nextName = row.Offset(1).Value
     
                If nextName <> curName Then
                    row.Offset(1).EntireRow.Insert
                End If
            End If
        Next
    End Sub
    Ce code permet, sur la colonne E, lors de chaque Nom & Prénom différent sur chaque cellule de la colonne E, de sauter une ligne.


    Exemple :


    Colonne A, B, C , D, E
    xx, xx, xx, xx, Sarko Nicolas
    xx, xx, xx, xx, Sarko Nicolas

    xx, xx, xx, xx, Sarko Jean

    xx, xx, xx, xx, Hollande François

    xx, xx, xx, xx, Hollande Françoise

    etc....


    Maintenant, je souhaite mettre en place un code qui me permettrait si : sur la 1ère ligne donc de $A$1 à $Z$1, par exemple, il y a écrit sur une cellule " LibelleClient ", insérer une colonne vierge à sa droite.

    Pensez-vous que c'est possible ?

    Un grand merci au participant du forum,


    Fabien

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut

    Et bien tu ne vas peut être pas me croire mais c'est possible !!!

    Voici le bout de code qui va bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ins()
        'on parcourt le tableau de A à Z soit 26 lettres
        For i = 1 To 26
            'si la cellule contint le bon texte
            If Cells(1, i).Value = "LibelleClient" Then
                'on insert avec
                Cells(1, i).EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
                'on sort de la macro
                Exit Sub
            End If
        Next
    End Sub
    Et certainement à bientôt sur un autre post ...

    une petite variante pour la ligne du test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If LCase(Cells(1, i).Value) = "libelleclient" Then
    le Lcase permet de convertir le contenu de la cellule en minuscule. C'est nécessaire par VBA est sensible à la casse.

    Certains utilisent aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Cells(1, i).Value Like "libelleclient" Then
    A toi de voir.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Par défaut
    Super Jérôme, rapide & efficace, Merci !

    PS : pour insérer une colonne à droite & non à gauche je remplace juste par "FromRightOrBelow" non ? Car je tente avec ça et la colonne s’insère toujours à gauche

    A bientôt

    Fabien

  4. #4
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Fait plutôt comme cela ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, i + 1).EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    on insère en se plaçant colonne en cours +1

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Par défaut
    Oui tu as raison

    Encore merci !

    Bonne journée

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo