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 :

Comment supprimer des colonnes en fonction de leur format ? [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Septembre 2023
    Messages : 2
    Par défaut Comment supprimer des colonnes en fonction de leur format ?
    Bonjour,

    J'ai un grand nombre de fichiers Excel contenant beaucoup d'informations dont je n'ai pas besoin.

    Je souhaiterais supprimer les colonnes qui ne me sont pas utiles, les colonnes utiles ont toutes la particularité d'avoir la première cellule remplie en vert clair.

    Mais je ne sais pas comment faire et j'aurais donc besoin de votre aide.

    Petit contexte:
    J'utilise la formule CONCATENER dans la colonne description, pour y regrouper et formater (en HTML) les informations se trouvant dans les cellules des colonnes en vert clair.
    Comme les fichiers ne sont pas identiques, je ne peux pas insérer directement ma formule.
    J'ai rempli les cellules en vert clair, de deux manières: manuellement et en utilisant "rechercher, remplacer".

    Voici en PJ un fichier équivalent à ceux que je dois formater.
    J'ai biensur réduit le nombre de colonnes et j'ai enlevé les données confidentielles du fichier.

    Un grand merci pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub toto()
    a = Range("A1").CurrentRegion.Columns.Count
    For numcolumm = a To 1 Step -1
    If Cells(1, numcolumm).Interior.ColorIndex <> 43 Then
     Columns(numcolumm).Delete Shift:=xlToLeft
    End If
    Next
    End Sub
    si ca ne marche pas,
    Pour verifier le color index tu peux utiliser ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Cells(1, numcolumm).Interior.ColorIndex

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonsoir, voici une approche légèrement différente, au lieu de tester la couleur, je teste s'il n'y en a pas et si c'est le cas on supprime la colonne. On évite ainsi les problèmes de code couleur.

    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
    16
    17
    18
    19
    20
    Sub SupprimerColonnesFondsBlancs()
        Dim ws As Worksheet
        Dim lastColumn As Long
        Dim i As Long
     
        ' Spécifiez la feuille de travail à traiter
        Set ws = ThisWorkbook.Sheets("Nom_de_la_feuille") ' Remplacez "Nom_de_la_feuille" par le nom de votre feuille
     
        ' Déterminez la dernière colonne utilisée dans la feuille
        lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
     
        ' Parcourez les colonnes de droite à gauche (de la dernière à la première)
        For i = lastColumn To 1 Step -1
            ' Vérifiez si la première cellule de la colonne a un fond blanc
            If  ws.Cells(1, i).Interior.ColorIndex = xlNone Then
                ' Supprimez la colonne si les conditions sont remplies
                ws.Columns(i).Delete
            End If
        Next i
    End Sub

  4. #4
    Candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Septembre 2023
    Messages : 2
    Par défaut Merci !!!!
    Merci beaucoup a_diard !!!!!

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

Discussions similaires

  1. [XL-365] supprimer des colonnes en fonction d'une autre feuille
    Par illight dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/01/2022, 18h58
  2. [XL-2013] Trier l'ordre des colonnes en fonction de leur nom
    Par ClémentJard1 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 04/07/2021, 12h04
  3. [Batch] Supprimer des fichiers en fonction de leur date
    Par charlix dans le forum Scripts/Batch
    Réponses: 55
    Dernier message: 05/10/2015, 17h18
  4. supprimer des fichiers en fonction de leur extension
    Par nekcorp dans le forum Général Python
    Réponses: 6
    Dernier message: 14/05/2014, 18h26
  5. Réponses: 14
    Dernier message: 15/01/2004, 01h15

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