Macro pour aligner des données

Bonjour,

Je suis régulièrement confronté au même problème : plusieurs exports de données clients que je voudrais pouvoir comparer, mais comme il n'y a jamais exactement les mêmes clients dans tous les exports, les lignes ne correspondent pas.

Le plus simple est de jeter un oeil sur le fichier joint qui montre à gauche le genre d'exports que je mets côte à côte (3 dans ce cas) et la situation à la quelle je voudrais arriver où les données relatives à un même client sont sur la même ligne.

Je suppose qu'il doit être possible de réaliser cela facilement en Excel ?

Merci d'avance pour votre aide.

Marc

80exemple-export.xlsx (54.24 Ko)

Bonsoir,

Je préconise de constituer un tableau à 4 colonnes : Client, année1, année2, année3.

A affecter à une nouvelle feuille...

Mais il serait préférable de partir des Exports bruts de chaque année, 2 colonnes, tels qu'ils se présentent en réalité lors de l'export.

De préférence un par feuille et commençant à A1 !

Cordialement.

Bonsoir

Je ne suis pas certain d'avoir bien compris votre réponse. Mon problème est que mon export n'exporte que les clients sur lesquels il y a un mouvement dans l'année. Ce qui explique que les autres donnée ne sont pas alignées par client.

Bonjour Ferramarc,

Bonjour MFerrand,

voici ton fichier! A cette heure-ci, je n'ai plus le temps de finasser sur les détails! Demain!

@MFerrand : je me suis permis d'illustrer ton idée de ramener le tri à 4 colonnes afin que Ferramarc accroche ton wagon! :wink

Comme souvent, excuse-moi, hein, je me suis lancé dans le jeu 'technique' sans approfondir comme tu le fais si bien!

For y = 1 To iCol Step 3
    sCol1 = Split(Columns(y).Address(ColumnAbsolute:=False), ":")(1)
    sCol2 = Split(Columns(y + 1).Address(ColumnAbsolute:=False), ":")(1)
    iRow = Range(sCol1 & Rows.Count).End(xlUp).Row
    tTab = Range(sCol1 & "2:" & sCol2 & iRow)
    For x = 1 To iRow - 1
        iFlag = 0
        For Z = 0 To UBound(tTabCA, 2) - 1
            If Trim(LCase(tTab(x, 1))) = Trim(LCase(tTabCA(0, Z))) Then
                iFlag = 1: iIdx1 = Z
                Exit For
            End If
        Next
        If iFlag = 0 Then
            iIdx = iIdx + 1: iIdx1 = iIdx - 1
            ReDim Preserve tTabCA(iCol, iIdx)
        End If
        tTabCA(0, iIdx1) = Trim(LCase(tTab(x, 1)))
        tTabCA(y - 1, iIdx1) = Trim(LCase(tTab(x, 1)))
        tTabCA(y, iIdx1) = tTab(x, 2)
    Next
Next
Range("K2").Resize(UBound(tTabCA, 2), iCol) = WorksheetFunction.Transpose(tTabCA)
Range("U2").Resize(UBound(tTabCA, 2), iCol) = WorksheetFunction.Transpose(tTabCA)

A+

73tribdd-ca.xlsm (24.82 Ko)

WAW !!!!!!

1° Mille mercis Curulis 57 !

2° Je vais m'inscrire à un cours xls parce que c'est trop génial

3° J'espérais naïvement être capable de modifier la macro pour l'adapter à mon fichier réel, mais .... Donc : retour au point 2 pour moi et continuer au point 4 pour Curulis 57

4° Voici mon vrai fichier, enfin avec les noms de clients masqués et limités à quelques lignes parce que le vrai fichier fait 6.200 lignes ... La grande différence par rapport à mon exemple est qu'il y a 3 colonnes par export au lieu de 2. Curulis 57, encore un petit coup de baguette magique ? Ta macro va fonctionner si je colle ensuite mes 6.200 lignes à la place des quelques lignes existantes ?

C'est génial ce forum !

Marc

Salut Curulis !

Mon idée complète !

1) 3 extractions se trouvant sur une même feuille, cela veut dire que l'on a opéré un traitement à partir de l'extraction... Autant partir des extractions brutes, dont il n'y a pas de raisons qu'elles ne se présentent pas sous des formes identiques : donc 3 feuilles rassemblées dans un même classeur, une boucle pour parcourir les 3 feuilles, une autre pour parcourir chaque feuille.

2) Recueil des données : utilisation du dico, en principe toujours méthode la plus rapide : item tableau à 3 éléments (pour chaque année).

3) Tableau des clés (noms clients), tri de ce tableau.

4) Tableau complété par les items...

5) Affectation tableau (+ mise en forme).

Cordialement

Heuu oui mais là je suis perdu

Salut Ferramarc,

pour avancer, il nous faut connaître ta décision finale quant à la présentation de ton fichier de synthèse de tes exports :

  • ta solution
  • celle suggérée par MFerrand (plus facile à créer, à manipuler, à consulter...)

D'ailleurs, comment se présente-t-elle, cette feuille de synthèse? (lignes en-têtes,...)

Reprend-t-elle toutes les années issues de tes exports successifs ou n'affiche-t-elle QUE les colonnes des derniers exports triés?

Donc, pour moi :

  • un fichier avec la feuille de synthèse telle qu'elle est actuellement et ta réponse à la question ci-dessus!
  • la présentation de tes exports telle que dans ton dernier fichier (ligne d'en-tête, 3 colonnes) est-elle la seule vraie unique?
(ne viens pas demain avec 4 colonnes ou alors dis-le moi MAINTENANT si il y a parfois des blagues!)

Clair, précis, complet!

A+

Rechercher des sujets similaires à "macro aligner donnees"