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 :

VBA Excel - Supression nom de colonne + Suppression automatique de colonne selon cell


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut VBA Excel - Supression nom de colonne + Suppression automatique de colonne selon cell
    Bonjour,


    J'ai deux question sur le VBA dans excel.

    La première, quelqu'un connait-il le code pour supprimer les noms de colonnes(A, B, C,...) et de ligne(1,2,3,...) de toutes les feuilles d'un classeur??


    La deuxième, plus compliqué, y aurait-il un code pour supprimer les colonnes d'une feuille par rapport à un critère. Par exemple, si A2="" alors je supprime A.

    Merci d'avance de vos réponses

    Eddy

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 364
    Points : 253
    Points
    253
    Par défaut
    Je n'ai pas très bien compris ta première question, tu ve supprimer le nom des colonnes et des lignes et non pas supprimer leur contenu.

    Pour la deuxième question, voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Range("A2").Select
    if ActiveCell.Value = "" then
     Columns("A:A").Select
     Selection.Delete Shift:=xlToLeft
    End if

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    Ok merci de ta réponse. Par contre pour ma deuxième question, comme pointes-tu sur la feuille voulue???


    Pour la première, si tu préféres, c'est l'entourage des cellules que je voudrais supprimer, la partie grise.


    Merci

    Eddy

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pour le 1) il sagit de l'option excel affichage des entête de lignes et colonnes.. l'enregistreur de macro aurai pu te donner la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ActiveWindow.DisplayHeadings = False
    pour le 2)..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("Feuil1").Columns("A:A").Delete

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    Bonjour et merci pour vos réponses,


    Pour le 1, c'est donc résolu.


    Par contre pour le deux, je pense qu'il faut que je précise encore un peu.

    En fait, je veux faire la recherche sur une plage de cellule et supprimer les colonnes ou cette cellule et vide. Cela veut dire qu'il faut que je regarde par exemple, toutes les cellules de A1 à D1 et si C1 et D1 sont vides, je supprime les colonnes C et D. Et cerise sur le gateau, je veux faire cette manip sur deux feuillesn d'où la nécessité de pointer sur une puis sur l'autre.

    Merci d'avance

    Eddy

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    ... un coup de for each...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Dim c As Range 'Cellule testée
     For Each c In ThisWorkbook.Sheets("Feuil1").Range("A1:D1")
       If c = "" Then c.EntireColumn.Delete
     Next

  7. #7
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    nickel merci



  8. #8
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    Pour mon deuxième point, le code fonctionne seulement, il ne me supprime qu'une colonne sur deux, surement à cause du décalage créé à la suppression.


    Quelqu'un aurait-il une idéee???


    Merci d'avance



    Rappel du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim c As Range
        For Each c In ThisWorkbook.Sheets("Agences_NB").Range("E3:CK3")
            If c = "" Then c.EntireColumn.Delete
        Next

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    en parcourant les colonnes de droite à gauche...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        For i = ThisWorkbook.Sheets("Agences_NB").Range("E3:CK3").Columns.count To 1 Step -1
            
         set c = ThisWorkbook.Sheets("Agences_NB").Range("E3:CK3").Cells(1,i)
             If c = "" Then c.EntireColumn.Delete
        Next

  10. #10
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    Merci de ta réponse,


    Seulement, il me dit qu'il y a une erreur de syntaxe???

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    un to 1 de trop, code corrigé..

  12. #12
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Points : 41
    Points
    41
    Par défaut
    super cette fois-c, c'est bon.


    Merci


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

Discussions similaires

  1. VBA Excel récuperer nom de fichier via URL
    Par FrenchyBoss dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/10/2013, 16h34
  2. vba excel verifier une chaine de caractere dans une colonne
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/09/2010, 13h35
  3. Réponses: 1
    Dernier message: 08/12/2009, 22h35
  4. [VBA Excel] Listbox, nom des colonnes et couleur des lignes
    Par Tutures dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 16h24

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