Traitement de données

Bonjour

Le problème a peut etre déjà été traité mais je n'arrive pas à trouver de solution adapter.

L'idée est que j'aimerais retraiter les informations de mes commandes à l'aide d'une macro. Je fais une extraction d'un logiciel et l'idée serait de résumer ma commande en une ligne en se basant sur le numéro de commande. Je ne sais pas si cela est possible?

J'ai déjà tenté plusieurs choses mais sans succès.

Je vous ai joint la base de donnée. D'avance merci!

15extraction.xlsx (13.45 Ko)
image

Bonjour Bérangère,

Voici le fichier avec les formules

Si cela résous votre demande, n'oubliez pas

Cordialement

Merci mais je voulais le faire en macro car j'aimerais que cela se fasse automatiquement à l'aide d'un bouton. C'est à dire qu'il y aurait juste à cliquer et les informations se mettent toutes seules dans le tableau. Je ne sais pas si cela est possible?

Bonjour

essayez avec ce code

Sub test()
Dim i As Integer, lig As Integer
Dim col As Byte

For i = 4 To Range("A" & Rows.Count).End(xlUp).Row 'on boucle depuis ligne 4 jusque dernière ligne colonneA
    With Sheets("recap") 'feuille recap
        dlg = .Range("A" & Rows.Count).End(xlUp).Row 'on repere la dernière ligne de la colonne A
        On Error Resume Next 'gestion d'erreur si variable lig ou col ne sont pas trouvée
        lig = WorksheetFunction.Match(Range("A" & i), .Range("A:A"), 0) 'recherche de la cellule A ligne i dans la colonne A de la feuille recap
        col = WorksheetFunction.Match(Range("C" & i), .Rows(1), 0)'recherche de la cellule C ligne i dans la ligne 1 de la feuille recap

        If lig = 0 Then 'condition lig = 0 (ligne non trouvée en feuille recap)
            dlg = dlg + 1 'on incrémente dlg de 1
            .Range("A" & dlg) = Range("A" & i) 'ajout valeur cellule A ligne i dans la colonne A ligne dlg de la feuille recap
            .Range("B" & dlg) = Format(Range("B" & i), "hh:mm")'ajout valeur cellule B ligne i dans la colonne B ligne dlg de la feuille recap
            .Cells(dlg, col) = Range("D" & i)'ajout valeur cellule D ligne i dans la cellule dlg - col de la feuille recap

        Else: 'cas si lig > 0
            .Cells(lig, col) = Range("D" & i) + .Cells(lig, col) 'addition de valeur cellule D à la valeur existante en cellule feuille recap 
            lig = 0 'remise variable lig à 0
        End If
    End With
Next i
End Sub

Code à associer à un bouton.

Attention que :
- vous avez un objet en haut à gauche que vous devriez supprimer
- certaines commandes ont un point derrière le numéro

si ok -->

Cordialement

Edit : oups Bruno... Désolé

Merci beaucoup! Ca fonctionne est ce que cela vous dérangerez d'annoter pour que je comprenne?

Bonjour à tous !

Une proposition basique via Power Query (nativement intégré dans Excel 2016) et en quelques clics ! :

Bonjour

est ce que cela vous dérangerez d'annoter pour que je comprenne?

Non du tout.
Voilà, les commentaires sont ajoutés dans le code de mon post précédent.
Par contre j'ai modifié la ligne juste en dessous du ELSE. Veillez à la changer dans votre fichier.

Si ok -->

Cordialement

Merci beaucoup !

Bonjour à tous !

Je vous remercie de....ce retour.

Rechercher des sujets similaires à "traitement donnees"