Mise en forme d'un tableau et tri de données à l'aide de macros

BigNay

XLDnaute Nouveau
Bonjour à tous,

J'ai récupéré un tableau d'une page web que je n'ai pu que copier/coller dans Excel.
Il a du coup gardé une certaine mise en forme mais pas moyen de trier les données de la manière qui m'intéresse. J’ai joint un extrait du fichier pour que les choses soient plus claires (j’ai remplacé toutes les données sensibles et il y a plus de 2000 demandes).

L’objectif c’est de classer les demandes selon l’email des personnes et d’avoir toute la ligne concernée (couleur).

Le problème, c’est que lorsque j’applique un filtre sur un email, je n’ai que la ligne de l’email (logique…) mais du coup une grande partie de l’information est tronquée (plus le numéro de demande, manque des sites etc…)
Mon idée pour chaque demande, c’était de fusionner les données par colonnes, qu’il y est un renvoi à la ligne et d’invertir la date et l’email du demandeur (ou de séparer en 2 colonnes distinctes)

Je débute en Excel et en VBA. J’ai essayé d’appliquer et d’adapter des macros que j’ai cherché sur le net mais rien de concluant.
J’ai trouvé une macro pour concaténer plusieurs cellules mais la sélection de la zone se fait manuellement.
Je la met ci-dessous pour info:


Sub Concatenation()

Dim vzone As Range
Dim vtxt As Variant
Dim i As Long

Selection.UnMerge

Set vzone = Selection
vtxt = vzone.Range("a1").Value
For i = 2 To vzone.Rows.Count
vtxt = vtxt & Chr(10) & vzone.Cells(i, 1).Value
vzone.Cells(i, 1).ClearContents
Next
vzone.Range("a1").Value = vtxt
With vzone
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
vzone.Range("a1").Value = vzone.Range("a1").Value
End Sub


J'ai essayé de séparer les données du tableau dans différentes feuilles afin de les traiter plus facilement mais là aussi j'ai en partie échoué. Je n'ai réussi qu'à isoler le numéro de de demande, la date/demandeur et la colonne (MES/Sup voulue). Bref, un début de quelque chose d'exploitable mais pas utilisable tel quel pour ce qu'on m'a demandé.


Je séche complétement n'ayant pas, encore (je compte m'y mettre sérieusement), les connaissances pour coder les macros qui me seraient utiles.

Toute aide est donc la bienvenue :) !

Merci d'avance
 

Pièces jointes

  • Classeur1.xlsm
    12.6 KB · Affichages: 61
  • Classeur1.xlsm
    12.6 KB · Affichages: 67
  • Classeur1.xlsm
    12.6 KB · Affichages: 69

BigNay

XLDnaute Nouveau
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Oui c'est normal. J'ai laissé les derniers emails en XX@.. pour simuler plusieurs demandes d'une personne.
Pour les 2000 demandes, tu dois avoir environ 150 emails de demandeurs différents. Certains ont plusieurs dizaines de demandes à leurs noms. Il y a donc des doublons.
L'idée c'est de contacter chaque demandeur avec la liste de ses demandes afin de vérifier avec lui si elles sont encore d'actualité ou pas.
D'où mon besoin d'avoir un tableau correctement ordonné pour avoir des filtres efficaces.

Merci en tout cas de l'intérêt que tu portes à ma question :)
 

CISCO

XLDnaute Barbatruc
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Bonjour

C'est bien ce que j'avais compris, mais bon, dans le doute, je préférai te poser la question.

Est-ce indispensable de faire ça avec une macro ?

@ plus
 

BigNay

XLDnaute Nouveau
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

A mon avis oui.

J'ai récupérer les données d'une page Intranet où tout était en vrac et où il n'y avait de fonction de tri efficace vu la quantité de données à traiter. J'ai essayé de contacter la personne qui a fait le site. Evidemment elle n'est plus là et personne ne s'en occupe plus...

J'ai donc fait un copier/coller du tableau dans Excel. Pour chaque ligne (couleur) du tableau, tu as selon les colonnes les cellules qui sont fusionnées ou non. Du coup, dès que tu fais un tri par demandeur, une grosse partie est tronquée.

Je pensais à une macro pcq la quantité d'informations à remettre en forme pour que ça soit exploitable est trop importante. S'il y a d'autres façons de procéder, je suis preneur.
 

CISCO

XLDnaute Barbatruc
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Re

En cherchant un peu, je pense que je peux faire ça avec des formules (d'ailleurs, je ne saurai pas le faire en VBA vu mon niveau dans ce domaine !). Le calcul risque de prendre du temps (quelques min :)), mais comme tu ne dois pas avoir à la faire 25 fois par semaine, cela en vaut peut être la chandelle.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Bonjour

Et, sous cette forme là, obtenue grace à deux colonnes supplémentaires et à un tri, est-ce que cela te conviendrait ?

@ plus

PS : J'ai modifié le dernier XX@... de ta liste en XX9@..., histoire de voir si mes formules fonctionnaient correctement.

PS : J'espère qu'il te reste des cheveux !
 

Pièces jointes

  • Classeur1(1) bignay.xlsm
    14.9 KB · Affichages: 61
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

RE

Si cela te convient, j'explique, pour que tu puisses refaire le boulot facilement :

En colonne B, je bidouille une relation mettant en évidence l'adresse juste à coté, en colonne D (avec le CHERCHE("@"...), ou recopiant la valeur au dessus si il ni y a rien en colonne D (avec SI(D3="";B2...). Attention, il s'agit d'un calcul matriciel (d'ailleurs, en écrivant cela, je me demande si il ni aurait pas moyen de faire autrement, sans calcul matriciel... A voir).

En colonne A, j'attribue un nombre aux adresses email de la colonne B correspondant à un classement alphabétique (avec NB.SI(...">"...) ou avec NB.SI(..."<"...)).

Puis je fais un tri de l'ensemble de ces colonnes sur la colonne A.

Et hop, le tour est joué.

D'ailleurs, on peut aussi faire sans la colonne A, et en triant l'ensemble des colonnes sur la colonne B.

@ plus

PS : Avant de faire cela, j'ai dû sélectionner l'ensemble de la feuille, et décocher la case "cellules fusionnées" dans la fenêtre format.
 

BigNay

XLDnaute Nouveau
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Alors :)

J'ai essayé de comprendre mais je crois que j'ai le cerveau qui est trop en surchauffe.

J'ai appliqué tes formules sur mon fichier original. Elles fonctionnent nickel à part dans la colonne B où devant chaque numéro de demande de la colonne C, il me renvoie un nombre. Sinon, il me met bien la bonne addresse email dans les autres cellules de la colonne B.
Je suppose que la formule cherche un "@" dans la cellule de la colonne D et qu'elle ne le trouve pas. D'où ce problème. J'ai forcément loupé une étape mais là je t'avoue que je suis un peu perdu.

A nouveau merci pour le temps que tu m'as consacré!
 

BigNay

XLDnaute Nouveau
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Si ça peut éclaircir, voilà ce que j'obtiens en faisant le test sur le fichier que j'avais posté.

P.S: Mes cheveux te disent merci :D
 

Pièces jointes

  • Classeur1 - BigNay Formule.xlsm
    13.9 KB · Affichages: 48

CISCO

XLDnaute Barbatruc
Re : Mise en forme d'un tableau et tri de données à l'aide de macros

Rebonjour

Tu n'obtiens pas uniquement des adresses email en colonne B parceque tu n'as pas validé la formule en B3 avec Ctrl+maj+entrée (à utiliser pour transformer la formule en calcul matriciel), au lieu de faire seulement entrée.

Ceci dit, tu trouveras en pièce jointe une solution plus simple, sans calcul matriciel (donc plus rapide) (dans le précédent fichier, j'étais parti sur une autre idée, nécessitant un calcul matriciel pour éliminer les doublons, mais comme ici, on se moque de voir plusieurs fois la même adresse, du moment qu'elle soit au bon endroit...), avec une seule colonne supplémentaire. Il faut faire le tri sur cette colonne supplémentaire.

@ plus
 

Pièces jointes

  • Classeur1(2) bignay.xlsm
    13.8 KB · Affichages: 62

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO