Extraire données d'un tableau

  • Initiateur de la discussion Initiateur de la discussion jrm5
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jrm5

XLDnaute Nouveau
Bonjour à tous,
J'espère que quelqu'un pourra résoudre mon problème que j'essaie désespérément depuis plusieurs jours.
J'ai créé 2 macros qui m'ajoutent des données à la suite dans une premières feuilles. A noter que ces 2 macros m'ajoutent des données différentes. Ce que j'aimerai faire maintenant, c'est de récupérer ces données dans une autre feuille, mais seulement celles appartenant à une personne (->une autre feuille par personne). Dans cette nouvelle feuille, il y aura donc 2 tableaux avec les deux sortes de données écrites au début. J'aimerais que tout se fasse automatiquement (ou on appuyant juste sur une commande).
Je vous joins ma feuille excel pour que cela soit plus compréhensible. Il n'y a que 3 données pour 2 personnes différentes, mais il faut s'imaginer des dizaines de données pour plusieurs personnes. De plus, des données seront rajouter au fil du temps, et donc la mise à jour devrait être simple...

Pour l'instant, je vois deux solutions possibles que je n'arrivent pas à résoudre:
1° Que la deuxième macro s'écrive à un autre endroit (j'aimerais que les deux boutons soit sur la même page)
2° Trouver une suite de formule permettant d'extraire les bons noms et les bonnes données dans les tableaux que je veux.

Merci d'avance pour votre temps et votre aide.
jrm
 

Pièces jointes

Re : Extraire données d'un tableau

Bonjour jrm5 et bienvenue à toi!

Comme on le dit souvent aux gens qui posent des questions ici, ce qui te semble clair, à toi qui connais ton fichier (enfin, normalement!) l'est beaucoup moins pour ceux qui le découvrent. Il faut donc prendre le temps de bien expliquer les choses.
Pour ma part, dans tes explications, je me suis déjà perdu quand j'ai lu
ces 2 macros m'ajoutent des données différentes
😱 Voilà qui n'est pas habituel!?


Puis j'ai lu
récupérer ces données dans une autre feuille, mais seulement celles appartenant à une personne
... au moment ou mon neurone me soufflait à l'oreille "un petit filtre, sans doute?" je tombe sur "il y aura donc 2 tableaux avec les deux sortes de données écrites au début" 😕 Là je me suis perdu pour la seconde fois! Depuis, j'erre dans la pénombre, me heurtant aux barreaux des cellules!

Le contenu de ton fichier (3 enregistrements en tout et pour tout!?) avec des colonnes dont les en-têtes ne nous éclairent pas beaucoup, ne nous aide guère 🙁

Bref, tu ne voudrais pas nous refaire ton entrée? On rembobine et tu recommences, en plantant bien le décor, avec des costumes corrects et des dialogues qui ont du sens 😀
 
Re : Extraire données d'un tableau

Bonjour JRM et bienvenu, bonjour le forum,

Pas sûr d'avoir bien compris ton problème... La macro ci-dessous va créer autant d'onglets qu'il y a de noms différents dans la colonne A et récupérer les données de chacun d'entre eux dans l'onglet respectif...
Le code :

Code:
Sub Macro1()
Dim O As Object 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim I As Integer 'déclare la variable I (Incrément)
Dim OD As Object 'déclare la variable OD (Onglet de Destination)
Dim PLV As Range 'déclare la variable PLV (PLage Visible)
Dim DEST As Range 'déclare la variable DEST (CEllule de DESTination)

Set O = Sheets("Données") 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
Set PL = O.Range("A2:A" & DL) 'définit la palge PL
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For Each CEL In PL 'boucle sur toutes les cellules CEL de la plage PL
    D(CEL.Value) = "" 'aliment ele dictionnaire D
Next CEL 'prochaine cellule de la boucle
TMP = D.keys 'récupère dans le tableau temporaire TMP la liste des éléments uniques de la plage PL (sans doublons)
For I = 0 To UBound(TMP) 'boucle sur tous les élément du tableau TMP
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    Set OD = Sheets(TMP(I)) 'définit l'onglet de destination OD (génère une erreur si c'est onglet n'existe pas)
    If Err <> 0 Then 'condition : si une erreur a été générée
        Err.Clear 'annule l'erreur
        Sheets.Add After:=Sheets(Sheets.Count) 'ajoute une onglet
        ActiveSheet.Name = TMP(I) 'renomme l'onglet
        Set OD = ActiveSheet 'définit l'onglet de destinadtion OD
    End If 'fin de la condition
    On Error GoTo 0 'annule la gestion des erreurs
    O.Range("A1").AutoFilter Field:=1, Criteria1:=TMP(I) 'filtre la colonne 1 (=A) de l'onglet O avec TMP(I) comme critère
    Set PLV = PL.Resize(, 9).SpecialCells(xlCellTypeVisible) 'définit la plage PLV, plage des cellules visibles (non filtrées)
    'définit la cellule de destination DEST (A1 si A1 est vide, sinon la première cellule vide de la colonne A de l'onglet OD)
    Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
    PLV.Copy DEST 'copie la plge PLV et la colle dans DEST
    O.Range("A1").AutoFilter 'supprime le filtre automatique
Next I 'prochaine élément du tableau TMP
End Sub
À tester et si ça convient, à toi de l'attribuer à un bouton... Au fait, tu as un problème sérieux de vue non ?!

On pourrait aussi supprimer les éventuelles anciennes données existantes avant de rapatrier les nouvelles, je ne l'ai pas coder dans cette macro...


[Édition]
Bonjour Modeste on s'est croisé...
 
Re : Extraire données d'un tableau

Bienvenue à jrm5 🙂,
Bonsoir Modeste, Robert,

[...] Bref, tu ne voudrais pas nous refaire ton entrée? On rembobine et tu recommences, en plantant bien le décor, avec des costumes corrects et des dialogues qui ont du sens 😀

Avec les intermittents du spectacle en grève, c'est pas gagné ! 😛

Bon , je sors 😱...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
468
Retour