Regroupement données sur une feuille

melanie18

XLDnaute Nouveau
Bonjour

J'ai deux feuilles AM1 et AM2 avec des données.
Pour la feuille AM1, pour chaque numéro j'ai un solde restant AM1 mais je n'ai pas le solde AM2 qui est sur
la feuille 2.

Je souhaite regrouper les données AM1 et AM2 sur une feuille "Résultats"
Pour chaque numéro (ColA), il peut y avoir soit seulement le solde AM1, soit seulement le solde AM2, soit les 2 en résultats.

Dans la feuille "Résultats" je souhaite donc afficher tous les numéros en regroupant AM1 et AM2 sur la même ligne (numéro) ET aussi les lignes où il y a que l'AM1 ou AM2 en solde.

Merci :)

Exemple fichier

http://demo.ovh.eu/fr/59cd11b571d07ee42f3100f502567dd8/
 

Pièces jointes

  • AM.xlsx
    10.7 KB · Affichages: 42
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Regroupement données sur une feuille

Bonjour

Par principe, pour que ce fichier reste accessible à tous, même dans deux années, pourrais tu mettre un petit fichier représentatif sur le forum, en pièce jointe ?

@ plus
 

CISCO

XLDnaute Barbatruc
Re : Regroupement données sur une feuille

Bonsoir

En E2
Code:
SIERREUR(RECHERCHEV(Résultats!A2;'AM1'!A$2:E$6;5;0);"")

Je te laisse voir la syntaxe de la fonction RECHERCHEV pour l'appliquer à la colonne G.

@ plus
 

melanie18

XLDnaute Nouveau
Re : Regroupement données sur une feuille

Merci, c'est en parti ce que je veux faire.

Je me suis mal exprimée, en fait, je souhaite crée une nouvelle base en regroupant les informations des feuilles AM1 et AM2.
Pas uniquement rajouter l'information manquante (AM1, solde, AM2 solde) pour chaque numéro.

Pour faire plus simple, j'ai regroupé les données de la feuille AM1 et AM2 sur une nouvelle feuille "regroupementAM1_AM2"
Sur cette feuille ou une autre feuille (résultats), je souhaite que les données soient regroupées sur une seule ligne pour chaque numéro de manière automatique, j'ai plus de 5000 lignes.

A partir de cette feuille regroupement, je souhaite ressortir sur une nouvelle feuille tous les numéros de lignes ET qu'il me regroupe sur une ligne les infos AM1/solde AM2/solde quand le numéro est sur deux dans la feuille regroupement

Exemple :
Le numéro 259648 et 785923 ont deux soldes et chacun leur AM1 et AM2. Je souhaite regrouper sur une ligne l'info AM1, solde, AM2, solde.
Et aussi sur cette même feuille, tous les autres numéros dont il y a uniquement soit AM1/solde OU AM2/solde.

Nvelle pièce jointe : ajout d'une feuille : regroupementAM1_AM2
 

Pièces jointes

  • AM2.xlsx
    12.1 KB · Affichages: 34
  • AM2.xlsx
    12.1 KB · Affichages: 45
  • AM2.xlsx
    12.1 KB · Affichages: 45

CISCO

XLDnaute Barbatruc
Re : Regroupement données sur une feuille

Bonjour

Une possibilité en pièce jointe. Il y a malheureusement une formule matricielle en colonne A (à valider avec Ctrl+maj tempo+entrer) qui prend beaucoup de temps de calcul dans le cas d'un fichier contenant 5000 lignes. Avec une macro, cela irait beaucoup plus vite.

@ plus
 

Pièces jointes

  • AM2.xlsx
    13.4 KB · Affichages: 50
  • AM2.xlsx
    13.4 KB · Affichages: 53
  • AM2.xlsx
    13.4 KB · Affichages: 41

melanie18

XLDnaute Nouveau
Re : Regroupement données sur une feuille

Bonsoir

Merci pour la proposition.

En fait, il faudrait partir comme base sur la nouvelle feuille "regroupement" :(
Ne plus utiliser les feuilles AM1 et AM2, je pense que c'est plus simple, toutes les données sont sur une feuille.


Concernant la formule matricielle, j'ai pas saisi tempo ? j'appuie simultanément sur ctrl+maj+entrer ?
ça marche que si une nouvelle ligne AM1 est inséré ?

Le plus simple, partir sur la feuille regroupement.

AM3 joint :rolleyes:
 

Pièces jointes

  • AM3.xlsx
    11.3 KB · Affichages: 36

CISCO

XLDnaute Barbatruc
Re : Regroupement données sur une feuille

Bonsoir

Pour valider une fonction matricielle, il faut, après avoir sélectionné la cellule contenant cette formule, cliquer dans la barre de formule, puis appuyer sur Ctrl + maj tempo (la touche avec la flèche, pas avec le cadenas) + entrer.

Cf. en pièce jointe un nouveau fichier, sans formule matricielle en colonne A, et avec une seule formule en B2, formule que l'on peut copier-coller vers la droite et vers le bas. Ensuite, tu sélectionnes toutes les colonnes, et tu tries sur la première colonne pour mettre les lignes vides à la fin.

@ plus

P.S : Ceci dit, je ne vois pas trop l'intérêt de la manip, si tu dois faire la feuille regroupement à la main...
 

Pièces jointes

  • AM2 (2).xlsx
    12.9 KB · Affichages: 37

klin89

XLDnaute Accro
Re : Regroupement données sur une feuille

Bonsoir CISCO, melanie18, le forum :)

A tester avec le fichier du post #7
Question : sur quelle(s) colonne(s) se base t-on pour déterminer les doublons ?
Colonne A, le même numéro ne renvoie pas la même nom en colonne D, est-ce normal !
785923 renvoie BA2 et NH :confused: on retient quoi ?

VB:
Option Explicit

Sub Regroupement()
Dim a, i As Long, j As Long, txt As String, n As Long
    With Sheets(1).Range("a1").CurrentRegion
        a = .Value
        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For i = 1 To UBound(a, 1)
                txt = a(i, 1)
                If Not .exists(txt) Then
                    n = n + 1
                    .Item(txt) = n
                    For j = 1 To UBound(a, 2)
                        a(n, j) = a(i, j)
                    Next
                Else
                    For j = 7 To 8
                        a(.Item(txt), j) = a(i, j)
                    Next
                End If
            Next
        End With
        Application.ScreenUpdating = False
        With Sheets(2).Cells(1).Resize(n, UBound(a, 2))
            .CurrentRegion.Clear
            .Value = a
            .Cells(1, .Columns.Count + 1).Value = "Solde total"
            .Columns(.Columns.Count + 1).Offset(1).Resize(n - 1).Formula = "=rc[-4]+rc[-2]"
            With .CurrentRegion
                .Font.Name = "calibri"
                .Font.Size = 10
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .Borders(xlInsideVertical).Weight = xlThin
                .BorderAround Weight:=xlThin
                With .Rows(1)
                    .Font.Size = 11
                    .Interior.ColorIndex = 38
                    .BorderAround Weight:=xlThin
                End With
            End With
        End With
        Application.ScreenUpdating = True
    End With
End Sub
klin89
 

melanie18

XLDnaute Nouveau
Re : Regroupement données sur une feuille

Bonjour

Pour Cisco, sur le tableau résultats, je ne vois pas de regroupement sur une seule ligne des données AM1/solde -Am2/solde.
J'ai l'impression que le tableau supprime les doublons, OK, mais ne regroupe pas les données sur la même ligne correspondant au même numéro (ColA).
Exemple, sur la ligne du numéro 259648, il devrait m'afficher les données AM2 et solde

Cf fichier sur le premier post, feuille résultats


Concernant le regroupement sur un tableau, il est très facile de regrouper pour moi les données dans mon fichier original, étant donné que le nombre de colonnes sont les mêmes pour Am1 et AM2.


Pour Klin89:
Effectivement, dans mon fichier exemple, je me suis trompé, la colonne D devrait avoir le même nom quand ils ont le même numéro.
Si numéro identique, colB, C, D et I sont les mêmes.
Le doublon se fait sur la colonne A MAIS il faut regrouper les données sur une ligne.
Après j'ai rajouté une colonne solde total mais elle n'est pour le moment pas indispensable, on peut très bien la supprimer.
Ce que je souhaite, c'est regrouper sur une ligne les données AM1/solde ET AM2/solde quand il y a doublon de numéro (ColA), et que aussi que le tableau conserve les numéros où il y a que l'AM1/solde ou AM2/solde.

Je veux bien essayer ce code mais quelle est la démarche pour insérer ce code ? :rolleyes:


Merci à tous les deux.
 

CISCO

XLDnaute Barbatruc
Re : Regroupement données sur une feuille

Bonjour

OK, j'ai enfin compris ce que tu voulais ! Est-ce que dans ton vrai fichier, tu peux aussi avoir des triplets, quadruplets, etc ?
* Si non, tu dois pouvoir faire avec le fichier ci-joint suivi d'un tri sur la colonne A. j'ai mis un format personnalisé sur les colonnes E et F faisant disparaître des 0 "gênants".
* Si oui, il faudra trouver autre chose.

@ plus
 

Pièces jointes

  • AM2 (2) (1).xlsx
    13.7 KB · Affichages: 54
Dernière édition:

melanie18

XLDnaute Nouveau
Re : Regroupement données sur une feuille

Merci Cisco, j'ai testé rapidement le dernier fichier joint, ça a l'air correct :)

Je teste ce soir sur mon fichier original.

Edit :

J'ai rajouté deux lignes lignes sur la feuille regroupement avec le même numéro, sur le résul il m'affiche bien la ligne mais ne m'affiche pas l'information manquante à savoir AM1 ou AM2, en fait il prend que la première ligne j'ai l'impression

Il faut recopier la formule A vers le le bas
idem pour les autres colonnes ? ou il faut recopier vers la droite, j'ai recopier vers le bas


Exemple, j'ai rajouté ligne 12 et ligne 13 :
numéro 444444 01/02/2014 3 CS 1 2.54 pour AM1 rien en AM2 et soldé pour V j'ai mis GG
ligne 13 numéro 444444 01/02/2014 3 CS 254 et 2.28 pour AM2/solde pour V j'ai mis GG
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Regroupement données sur une feuille

Bonjour

Il faut modifier le A$11 par A$6000 en G2 et H2, puis tirer ces formules vers le bas. Je corrige dans ma pièce jointe précédente.
Autre remarque, je n'ai mis des formules que jusqu'en ligne 14, il faut donc tirer l'ensemble vers le bas.

@ plus
 

Discussions similaires

Réponses
3
Affichages
550
Réponses
18
Affichages
505
Réponses
37
Affichages
2 K