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 :

Suppression de colonnes nommées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut Suppression de colonnes nommées
    Bonjour,

    Dans un fichier Excel, j'aimerais pouvoir supprimer plusieurs colonnes dont l'intitulé est recherché (Cfr ci-dessous).
    Comment puis-je écrire cela autrement pour que l'instruction ne soit pas répétée à plusieurs reprises? (Variable= nom de la colonne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    wsSheet1.Cells.Find(What:="Village").EntireColumn.Delete
    wsSheet1.Cells.Find(What:="Ville").EntireColumn.Delete
    wsSheet1.Cells.Find(What:="Pays").EntireColumn.Delete
    wsSheet1.Cells.Find(What:="Rue").EntireColumn.Delete
    wsSheet1.Cells.Find(What:="Numéro").EntireColumn.Delete
    D'avance, merci pour votre aide.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    salut,

    tu peux essayer quelque chose comme ça. Tu stokes tes noms à chercher dans un tableau et tu fait une boucle pour, comme ça si tu veux rajouter des éléments tu les rajoutes dans ton tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim tableau(5) as string
    dim i as integer
     
    tableau(0)="Village"
    ....
    tableau(4)="Numéro"
     
    'tu lances ta boucle
     
    for i=0 To (ubound(tableau)-1)
        wsSheet1.Cells.Find(What:= tableau(i)).EntireColumn.Delete
    next i
    bonne journée

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut
    Bonjour

    Est ce qu'une petite procédure du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub SupprCol (NomCol as String,MaFeuille as Excel.Worksheet)
    MaFeuille.Cells.Find(NomCol).EntireColumn.Delete
    End Sub
    Avec un appel comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim ListeCol () as Variant
    Dim i as Integer
    ListCol =  Array("Nom1","Nom2","Nom3")
     
    for i = 0 to Ubound (ListCol)
    SupprCol(ListCol(i),ActiveSheet)
    Next i
    Je n'ai pas tester le code, mais ça peut être une piste de rélexion.

  4. #4
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Merci pour votre aide.
    Pouvez-vous m'indiquer ce que signifie "ubound"?
    J'ai un fichier avec 112 colonnes.
    Dois-je indiquer 112 lignes telle que celle-ci dans la procédure?
    tableau(0)="Village"
    tableau(1)="Numéro"
    ....
    Dois-je construire le tableau dans une feuille séparée et nommer la plage qui constitue le tableau?

    Merci

    Sorry, je n'y parviens pas. Pouvez-vous être un peu plus précis?

    Merci à vous

  5. #5
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Voici...

    J'ai fait une compile de vos deux réponses.

    Un grand merci et bonne journée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SuppressionColonne()
     
    Dim ListeCol() As Variant
    Dim i As Integer
    ListeCol = Array("Bonjour", "Village", "Numéro")
     
    For i = 0 To (UBound(ListeCol) - 1)
        wsSheet1.Cells.Find(What:=ListeCol(i)).EntireColumn.Delete
    Next i
     
    End Sub

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/03/2007, 22h24
  2. vba [e] suppression de colonne
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2007, 12h46
  3. [VBA-E] copier colonne nommé
    Par mick_ban dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/03/2007, 11h53
  4. [VBA-E] Suppression des colonnes avec condition
    Par desdenova dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2007, 13h39
  5. ADO : ajout suppression de colonne
    Par tyarcaouen dans le forum MFC
    Réponses: 5
    Dernier message: 25/04/2006, 13h17

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