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 :

Plusieurs lignes avec identifiant en une ligne par identifiant [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut Plusieurs lignes avec identifiant en une ligne par identifiant
    Bonjour,

    J'ai un fichier excel un peu particulier.

    Je dispose de 8 000 lignes différentes. Chaque ligne correspond à un événement pour un individu. L'individu est identifié par un matricule alphanumérique en colonne 1, les colonnes suivantes contiennent les différentes informations de l'événement.

    Je souhaiterai transformer mon tableau de façon à obtenir une ligne par individu (donc 1 ligne par matricule) et en colonne avoir les différentes informations des événements (Il peut y avoir entre 1 et 21 événements par individus).

    Je pense qu'avec une Macro ce n'est pas très compliqué, mais je suis complètement néophyte en VBA.

    Je n'arrive pas à identifier le processus pour effectuer cette opération et donc mes recherches sous google sont peu fructueuses.

    Avez-vous une idée? ou un exemple de macro que je pourrais adaptée

    Merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Tu veux regrouper les évènements en colonne B (séparés par un séparateur) ou en autant de colonnes que d'évènements.

  3. #3
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    et un tri sur la colonne a pour débuter ?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Un exemple à adapter
    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
    Sub Test()
    Dim LastLig As Long, i As Long
    Dim Mat As String
    Dim c As Range
    Dim k As Byte
     
    Application.ScreenUpdating = False
    With Sheets("Feuil1")    'à adapter
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = LastLig To 2 Step -1
            Mat = .Range("A" & i).Value
            If Application.CountIf(.Range("A1:A" & i - 1), Mat) > 0 Then
                Set c = .Range("A1:A" & i - 1).Find(Mat, lookat:=xlWhole)
                For k = 2 To 12    '12 colonnes
                    .Cells(c.Row, k).Value = .Cells(c.Row, k).Value & IIf(.Cells(i, k).Value <> "", "-" & .Cells(i, k).Value, "")
                Next k
                .Rows(i).Delete
                Set c = Nothing
            End If
        Next i
    End With
    End Sub

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Effectivement, j'ai fait un tri sur la colonne j'ai vérifié le nombre maximum d'événements par individu qui est 21.

    En fait je veux conserver 1 événement par colonne, plus précisément je veux conserver 2 attributs la durée de l'événement et le code descriptif de l'événement.

    En gros, l'idéal serait:
    Matricule Even-1-durée Even-1-motif(...) Even-21-durée Even-21-motif

    Je vais regarder l'exemple.

    Merci beaucoup pour votre aide précieuse !

    J'ai regardé l'exemple. Mais vu que je suis vraiment nouveau dans le monde des Macro j'ai du mal à saisir ce que je dois adapter...

    Est ce que quelqu'un aurait une version d'une macro commentée pour que je comprenne un peu plus?


    Merci d'avance

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Il faut peut être expliquer davantage ton problème, le cas échéant avec un fichier exemple.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/01/2012, 11h58
  2. [VxiR2] Concaténé des lignes de tableau en une ligne avec ,
    Par DevFranck dans le forum Webi
    Réponses: 1
    Dernier message: 05/04/2011, 15h53
  3. Réponses: 5
    Dernier message: 27/08/2010, 07h29
  4. Réponses: 0
    Dernier message: 07/02/2009, 10h56
  5. Réponses: 3
    Dernier message: 05/09/2008, 10h32

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