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 :

Grouper plusieurs lignes selon colonne A


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Business Developer
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business Developer

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut Grouper plusieurs lignes selon colonne A
    Bonjour,


    Est-il possible d'avoir une macro qui groupe pas selon la première ligne mais une nouvelle ligne contenant seulement la colonne A ?

    Exemple :

    les éléments suivants sont à grouper

    Fruits Pomme Col C Col D Col E
    Fruits Poire Col C Col D Col E
    Fruits Ananas Col C Col D Col E

    Au moment du groupement afficher :

    +Fruits
    Fruits Pomme Col C Col D Col E
    Fruits Poire Col C Col D Col E
    Fruits Ananas Col C Col D Col E


    Merci !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Les tableaux croisés dynamiques permettent de faire des regroupements
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si je reformule ta demande, ce que tu souhaites est :
    Chaque fois que la valeur de la colonne A change, insérer une nouvelle ligne et y copier la valeur de la cellule A du dessous.
    C'est bien ça ?

    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Lig As Long
     
    For Lig = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Cells(Ligne, 1) <> Cells(Ligne - 1, 1) Then
            Rows(Ligne).Copy
            Rows(Ligne).Insert
            Range(Cells(Ligne, 2), Cells(Ligne, 5)).ClearContents
        End If
    Next Lig
     
    Rows(1).Copy
    Rows(1).Insert
    Range("A1:A5").ClearComments
    Cela dit, personnellement, je n'aurais pas fait ça par macro mais avec un indicateur de couleur à l'aide d'une mise en forme conditionnelle.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Business Developer
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business Developer

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut
    Je n'arrive pas à exécuter ta macro. J'ai réalisé celle ci-dessous me permettent de grouper les éléments mais celle-ci est groupé selon la premiere ligne. Comme serait il possible dans cette macro d'insérer une ligne avec seulement la colonne A et le reste effacé pour que le regroupement puisse se faire en dessous de cette nouvelle ligne inséré ?

    Merci !

    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
    21
    22
    23
    Option Explicit
     
    Dim i&, iD
     
    Sub Grouper()
     
        For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
            If Range("A" & i) = "" Then
                Rows(i).Delete
            End If
        Next i
        iD = 1
        For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
            Do While Range("A" & i) = Range("A" & iD)
                i = i + 1
            Loop
            If i > iD + 1 Then
                Rows(iD + 1 & ":" & i - 1).Group
            End If
            iD = i
            i = i - 1
        Next i
    End Sub

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    pas très compréhensibles tes explications, il faut faire un effort.
    Et ce n'est sûrement pas ton code entaché d'erreurs et de nons sens qui aide beaucoup.

    Si ça ne te gêne pas que ta ligne supp soit en-dessous au lieu d'au-dessus, 'Données / Plan / Sous-total' te met tes plans sans macro (faire en enregistrement de macro si tu tiens à en mettre une).
    Mais selon ce que tu veux faire ensuite le TCD indiqué par philippe est peut-être la solution.
    eric

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par boanna Voir le message
    Je n'arrive pas à executer ta macro.
    Tu ne pourrais pas être un brin plus explicative sur le problème rencontré.

    J'ai réalisé celle ci-dessous
    Je ne sais pas qui a fait ça, mais la première boucle supprime des lignes (quel rapport avec le problème que tu as exposé ?) et la seconde est un plat de spagetti dans lequel une chatte ne retrouverait pas ses petits : la course poursuite des deux indices dans les deux boucles, ça pourrait servir de casse-tête dans un magazine.

    Comme serait il possible dans cette macro d'insérer une ligne avec seulement la colonne A et le reste effacé pour que le regroupement puisse se faire en dessous de cette nouvelle ligne inséré ?
    Voir la macro de mon précédent message.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Business Developer
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business Developer

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Par défaut
    Je n'ai pas l'habitude de travailler sur ce genre de problématique n'étant pas développeur ! Concernant la macro que j'ai pris du net je ne sais pas si c'est une macro correcte ou pas !!!! Mes excuses pour le manque de clarté...

    En gros. J'ai actuellement les données suivantes

    The Kooples Personne A
    The Kooples Personne B
    The Kooples Personne C
    The Kooples Personne D
    Etam Personne A
    Etam Personne B
    Etam Personne C
    Etam Personne D


    Je souhaiterais réaliser un Groupement sauf que la premiere ligne aurait que la colonne A remplie :

    +The Kooples
    The Kooples Personne A
    The Kooples Personne B
    The Kooples Personne C
    The Kooples Personne D
    +Etam
    Etam Personne A
    Etam Personne B
    Etam Personne C
    Etam Personne D


    Pour cela j'imagine qu'il faut insérer une nouvelle ligne automatiquement avec le nom de la marque avant d'effectuer le regroupement. En espérant avoir été clair

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266

Discussions similaires

  1. Une Legend sur plusieurs lignes ou colonnes
    Par Copepode dans le forum MATLAB
    Réponses: 4
    Dernier message: 26/05/2021, 10h53
  2. [AC-2010] Scinder une colonne en plusieurs lignes selon un séparateur
    Par begge dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/01/2017, 17h31
  3. Réponses: 4
    Dernier message: 29/08/2008, 14h21
  4. [SQL] Remplir une base SQL à partir d'un tableau à plusieurs lignes et colonnes
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/08/2007, 08h56
  5. [VBA-E] sélection plusieurs lignes selon critères
    Par clairefranclieu dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/09/2006, 17h22

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