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 :

information sur plusieurs lignes à mettre en colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut information sur plusieurs lignes à mettre en colonnes
    Bonjour

    J'ai un fichier d'extraction qui me donne ceci

    Nom : avant.png
Affichages : 109
Taille : 7,0 Ko

    Je voudrais obtenir ceci (une ligne par parent)

    Nom : après.png
Affichages : 113
Taille : 7,6 Ko

    Avez vous une idée ?

    je vous remercie par avance

    Jean Luc

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Faire une boucle sur les lignes du fichier source.
    Pour chaque ligne, rechercher si le nom est déjà dans le fichier destination avec un Find (ou WorksheetFunction.match ou autre).
    Si ce n'est pas le cas, ajouter une ligne en copiant la ligne source après la dernière ligne du fichier destination.
    Si le nom existe, on utilise un End(xlToRight) pour connaitre la dernière colonne utilisée et on colle juste à droite les colonnes B et C de la source.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour à tous

    Ou utiliser PowerQuery intégré à partir de 2016 ou en add on sur 2010 et 2013
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses
    N'étant pas un expert en vba je vais me tourner vers power query . je l'ai installé ce matin , je ne sais pas encore par quel bout le prendre mais avec un peu de patience -et peut etre quelques conseils-je devrais y arriver

    Bonne journée

    Jean-Luc

  5. #5
    Membre du Club Avatar de zipbox
    Homme Profil pro
    Excel VBA
    Inscrit en
    Juillet 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Excel VBA

    Informations forums :
    Inscription : Juillet 2004
    Messages : 49
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Le message de Menhir explique bien ce qu'il faut faire, si besoin, voici un bout de code :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    Option Explicit
     
    Const f1 As String = "Feuil1" ' source
    Const f2 As String = "Feuil2" ' destination
    Const f3 As String = "Feuil3" ' comptage
     
    Sub moulinette()
      '
      Dim L As Long, Ok As Long
      Dim L1 As Long ' Ligne : source
      Dim L2 As Long ' Ligne : destination
      '
      Sheets(f2).Cells.ClearContents ' iNiT destination
      Sheets(f3).Cells.ClearContents ' iNiT comptage
      '
      Sheets(f2).Cells(1, 1).Value = "Matricule"
      Sheets(f2).Cells(1, 2).Value = "Nom Enfant"
      Sheets(f2).Cells(1, 3).Value = "Age Enfant"
      '
      ' ligne 1 : en-tête
      '
      L1 = 2: L2 = 2: Call ZzTop(L1, L2) ' ligne 2 : iNiT
      '
     
      ' --- boucle ---
      Do
        L1 = L1 + 1: If (Sheets(f1).Cells(L1, 1).Value = "") Then Exit Do
        '
        Ok = 0
        '
        For L = 2 To L2
          If (Sheets(f1).Cells(L1, 1).Value = Sheets(f2).Cells(L, 1).Value) Then Ok = L: Exit For
        Next L
        '
        If (Ok = 0) Then
          '
          L2 = L2 + 1
          '
          Call ZzTop(L1, L2)
          '
        Else
          '
          Call ZzTop(L1, Ok)
          '
        End If
        '
      Loop
      '
      MsgBox " fin... "
      '
    End Sub
     
    Sub ZzTop(L1 As Long, L2 As Long)
      '
      Dim nb As Integer
      '
      nb = Sheets(f3).Cells(L2, 1).Value + 1: Sheets(f3).Cells(L2, 1).Value = nb
      '
      If (nb = 1) Then Sheets(f2).Cells(L2, 1).Value = Sheets(f1).Cells(L1, 1).Value ' Matricule Parent
      '
      Sheets(f2).Cells(1, (nb * 2) + 0).Value = "Nom Enfant " & nb
      Sheets(f2).Cells(1, (nb * 2) + 1).Value = "Age Enfant " & nb
      '
      Sheets(f2).Cells(L2, (nb * 2) + 0).Value = Sheets(f1).Cells(L1, 2).Value ' Nom Enfant
      Sheets(f2).Cells(L2, (nb * 2) + 1).Value = Sheets(f1).Cells(L1, 3).Value ' Age Enfant
      '
    End Sub

  6. #6
    Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut un bout de code , un bout de code ?
    J'ai pas compris toute la subtilité de ton" bout de code" mais ça marche Nickel
    Je vais m'y pencher j'aime bien comprendre.


    Un grand merci pour ton aide

    Jean Luc

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

Discussions similaires

  1. [DATA] Réunir information sur plusieures lignes en une seule ligne
    Par philippeadp dans le forum SAS Base
    Réponses: 1
    Dernier message: 25/10/2011, 16h03
  2. Réponses: 10
    Dernier message: 02/09/2010, 09h19
  3. Réponses: 2
    Dernier message: 02/05/2007, 17h08
  4. Récupération d'informations sur plusieures lignes
    Par Oli_Ifre dans le forum Langage
    Réponses: 6
    Dernier message: 03/04/2007, 08h57
  5. [MySQL] Checkboxes : récupérer les informations sur plusieurs lignes
    Par eric41 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 12/06/2006, 12h41

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