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 :

Supprimer une colonne d'une feuille si elle est vide dans une autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut Supprimer une colonne d'une feuille si elle est vide dans une autre
    Bonjour,

    Me revoilà pour vous demander de l'aide à nouveau:

    J'ai deux feuilles dans un classeur excel qui contiennent chacune les mêmes colonnes au départ.
    La première feuille est ensuite remplie avec des données en colonne.
    A ce stade, j'aurai besoin de supprimer dans la seconde feuille les colonnes pour lesquelles il n'y a pas de données dans la première feuille.

    Un petit exemple:
    Feuille 1:
    Nom Prénom Adresse Tél
    DUPOND Jerome rue d'ici
    DURANT Pascal Pas là
    La feuille 2 a la même structure mais pas de données:
    Nom Prénom Adresse Tél
    Or dans la feuille 1 la colonne Tél est vide, donc je voudrai carrément modifier la structure de la Feuille 2 pour qu'elle devienne:

    Nom Prénom Adresse
    Vous pouvez me dire comment faire ça en VBA?


  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub SuppColonne()
        'Si la colonne ne contient qu'une valeur (le titre)
        If WorksheetFunction.CountA(Worksheets("Feuil1").Columns(4)) = 1 Then
            'On supprime le contenu et le formats
            Worksheets("Feuil2").Columns(4).Clear
            'Ou on supprime les cellules
            'Worksheets("Feuil2").Columns(4).EntireColumn.Delete
        End If
    End Sub
    A adapter bien sur.

    Cordialement,

    Tirex28/

  3. #3
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut
    Super, merci Tirex, je vais de ce pas l'adapter et voir ce que ça donne

  4. #4
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut
    Alors voilà ce que ça donne adapté à mon cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub SuppColonne()
        NB_COL = 7
        For i = 1 To NB_COL
            'Si la colonne ne contient qu'une valeur (le titre)
            If WorksheetFunction.CountA(Worksheets("Feuil1").Columns(i)) = 1 Then
                'On supprime le contenu et le formats
                Worksheets("Feuil2").Columns(i).Delete
                'Ou on supprime les cellules
                'Worksheets("Feuil2").Columns(4).EntireColumn.Delete
            End If
        Next i
    End Sub
    Ca marche pas mal, y ajuste un petit truc qui coince, ce que je vais essayer d'expliquer avec un exemple:

    Mail Nom Pré Adr Tel
    dupond Jérôme rue d'ici
    Durant Pascal Pas là
    Albert Jean 2 rue
    Dans cet exemple les colonnes mail et Tel sont vides, je m'attends donc à ce qu'après exécution de la macro il ne me reste que les colonnes Nom Prénom et Adresse
    Or voilà ce il me reste: Nom Prénom Adresse Tél

    [Edit]
    En fait c'est même plus sioux que ça...

    J'ai passé NB_COL à 10 et j'ai ajouté des colonnes dans la deuxième feuille

    exemple: Mail Nom Prénom Adresse Tél col6 col7 col8

    Quand j'exécute la macro, il me reste:
    Nom Prénom Adresse Tél col7 col8

    [/Edit]

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Comme ton code supprime la colonne, j'écrierais la procédure autrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub SuppColonne()
        NB_COL = 7
        For i = NB_COL  To 1 step -1
            'Si la colonne ne contient qu'une valeur (le titre)
            If WorksheetFunction.CountA(Worksheets("Feuil1").Columns(i)) = 1 Then
                'On supprime le contenu et le formats
                Worksheets("Feuil2").Columns(i).Delete
                'Ou on supprime les cellules
                'Worksheets("Feuil2").Columns(4).EntireColumn.Delete
            End If
        Next i
    End Sub
    Sinon, tu sauteras des colonnes

  6. #6
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut
    Merci, c'est bien ce qui se passait je sautai des colonnes mais je n'ai aps encore le résultat escompté, voilà ce que j'obtiens:

    Mail Nom Prénom Adresse Tél col6 col7 col8

    col 6, 7 et 8 n'ont pas été supprimées....

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/12/2012, 16h46
  2. [XL-2003] Supprimer des cellules vides dans une colonne
    Par floctc dans le forum Excel
    Réponses: 6
    Dernier message: 08/12/2009, 14h32
  3. [Toutes versions] supprimer des cases vides dans une colonne
    Par vivi4561 dans le forum Excel
    Réponses: 2
    Dernier message: 10/09/2009, 00h14
  4. nb de cellule vide dans une colonne?
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2008, 12h22
  5. Réponses: 7
    Dernier message: 06/06/2007, 15h42

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