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 :

Macro regroupement -transpose


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut Macro regroupement -transpose
    Salut à tous, je reviens vers vous pour solliciter votre aide à nouveau. J'ai quelques soucis à propos d'une macro. Je sais faire la démarche manuellement mais non en vba.
    Petit topo:

    J'ai 2 feuilles remplies de données a propos de voitures.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Feuil1:
    MODELE          REFERENCE   TYPE     COULEUR     MARQUE
     
    TT                 1        course    Vert        audi
    TT                 2        hybride   Noir         audi
    TT                 1        motrice   jaune       audi
    serie1             2        hybride   Bleu         bmw
    serie1             1        motrice   Rose        bmw
    blabla             2        hybride    Noir         honda
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Feuil2:
    MODELE          REFERENCE   TYPE    COULEUR      MARQUE
     
    TT2               1       course    rouge        audi
    TT2               2       hybride   jaune        audi
    TT2               1       motrice   jaune        audi
    serie2             2       hybride   Bleu         bmw
    serie2             1       motrice   grise        bmw
    blabla2           2       hybride   rose	 honda
    Je désirerais en fait copier dans une nouvelle feuille ces données mais en colonnes. Mais pas seulement.
    Il faudrait regrouper les 2 memes lignes similaires et les copier cote a cote.

    Je m'explique:

    Il y a 3 colonnes qui vont permettre d'associer ligne à ligne 2 modèles similaires. Marque, reference et type.

    En gros, il faudrait créer une macro qui fasse:

    If Feuil1_Marque = Feuil2_Marque And Feuil1_reference = Feuil2_reference And Feuil1_Type = Feuil2_type (la on se retrouvera avec un selection d'une seule ligne par feuille, donc ce seront ces 2 lignes qui seront similaires)

    Then copier ces 2 lignes dans 2 colonnes cote a cote de Feuil3.

    Si il y a des lignes seules,qui n'ont pas d'équivalent alors ne rien faire avec elles.

    Petit exemple de resultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MODELE 		TT        	TT2     	blabla		blabla2    	  
    REFERENCE  	1       	1		2		2
    TYPE      	  course    	course         hybride	      hybride
    COULEUR    	Vert        	rouge		noir		rose
    MARQUE		audi		audi		honda	         honda
    Et donc faire une boucle pour toutes les données a copier dans la feuille. La premiere colonne sera donc le nom des colonnes, la 2eme colonne
    sera une ligne de de Feuill1, la 3eme colonne sera la ligne similaire de feuil2, la 4eme colonne sera une ligne de feuil1, la 5eme sera la ligne similaire de Feuil2, etc...

    Bien sur il y a au moins une dizaines de lignes et colonnes par feuille, d'ou l'interet du vba. Car je sais le faire en manuel avec excel.
    Les colonnes de regroupement (marque, reference, type) seront toujours a la meme position.


    Voila, je sais c'est un peu compliqué, un peu d'aide serait la bien venu.

    Je remercie ceux qui prennent le temps de me lire et de me répondre.

    Cordialement.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonjour,

    Ta demande n'est pas bien claire.
    Je ne vais pas faire ici une explication de texte pour l'expliciter.

    Par exemple, il y a 3 TT dans la feuille 1, les trois lignes sont différentes (référence et /ou type) pourquoi la TT que l'on retrouve dans le tableau de synthèse (TT 2 Verte) n'existe pas dans le tableau initial ?

    Merci de reprendre le texte de la demande.

    PPz

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut
    Salut PPz78, en effet je m'étais trompé dans la REFERENCE du tableau de résultat. Petite erreur d'étourderie.

    Mais l'idée reste la meme. Voici ci-joint un classeur avec le résultat en feuil3 et les lignes de feuil2 colorié en vert.
    Dans le fichier, les lignes similaires sont à la meme position dans chaque feuille.(la premiere ligne de Feuil1 correspond a la premeire ligne de Feuil2 ,etc...). Ce n'est pas forcément le cas, d'ou l'interet du regroupement.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonsoir,

    Ceci devrait convenir :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub Transfr()
    '
    '   Transfert dans feuil3
    '
    '   1- Titres
        Sheets("Feuil1").Select
        Range("A1:E1").Select
        Selection.Copy
        Sheets("Feuil3").Select
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
     
    '   2- Boucle sur les données des feuilles
            iCol3 = 2
            iLig = 1
        Do
            iLig = iLig + 1
     
            Mod_F1 = Sheets("Feuil1").Cells(iLig, 1)
            If Mod_F1 <> "" Then
                Sheets("Feuil1").Select
                Call Recopie(iLig, iCol3)
                iCol3 = iCol3 + 1
            End If
     
            Mod_F2 = Sheets("Feuil2").Cells(iLig, 1)
            If Mod_F2 <> "" Then
                Sheets("Feuil2").Select
                Call Recopie(iLig, iCol3)
                iCol3 = iCol3 + 1
            End If
     
            If Mod_F1 = "" And Mod_F1 = "" Then Exit Do
        Loop
     
    End Sub
     
    Sub Recopie(iLig, iCol3)
        For ic = 1 To 5
            Sheets("Feuil3").Cells(ic, iCol3) = Cells(iLig, ic)
        Next
    End Sub
    PPz

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut
    Salut PPz. Je te remercie pour ta macro. Seulement il y a un petit probleme.

    En fait tu ne fais pas de regroupement. En gros il faut que dans les Feuilles de départ 1 et 2 il y ait le meme nombre de lignes et que ce soit dans l'ordre.

    Donc dans le cas ou par exemple, en Feuil1 il y a 200 lignes et en Feuil2 que 5 lignes. Il faudrait donc faire un regroupement d'abord pour savoir si les 5 lignes de Feuil2 se retrouvent dans Feuil1. et lorsque la macro trouve 2 lignes similaires. Il les copie dans feuil3 cote a cote. Pour le regroupement il faut utiliser la colone Marque, reference et type car grace a ces 3 colonnes on retrouvera forcément qu'une ligne par feuille (qui seront donc 2 lignes similaires.

    Je te transmets un classeur pour que tu puisses visualiser.

    En tout cas je te remercie pour ce que tu fais.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonsoir,

    Ma première réalisation est conforme à l'exemple envoyé.
    Je n'ai pas fait d'erreur.

    Le nouveau besoin n'est toujours pas bien exprimé.
    Quand il sera clair, il sera temps de se remettre au travail.

    PPz

Discussions similaires

  1. [XL-2010] macro regrouper et sommer
    Par varik dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 24/05/2012, 11h13
  2. [Toutes versions] Macro regroupant plusieurs classeurs dans une seule feuille
    Par lisandjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/04/2012, 07h52
  3. [XL-2010] Macro regroupement d'onglets
    Par maxime42 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/02/2012, 19h14
  4. [XL-2007] Macro pour transposer les colonnes en lignes
    Par boubadia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/10/2011, 20h51
  5. [XL-2010] Macro Rechercher Transpose
    Par duplaly dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2011, 10h37

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