EXCEL : Macro - recupération de données

Résolu/Fermé
en2mots Messages postés 166 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 23 octobre 2016 - Modifié par en2mots le 12/05/2011 à 21:22
en2mots Messages postés 166 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 23 octobre 2016 - 11 mai 2011 à 22:03
Bonjour,

Je voudrais avoir une macro commande ou autre chose (si vous savez ce qui peut ou non se faire) pour un tableau de gestion de formations.

Voici comment est fait le classeur :
- une feuille principale avec les intitulé de formation par ordre alphabetique, ainsi que les nom des personnes y participant et les dates de session.
3 colonnes : intitulé, nom agent et dates


il y a plus d'une centaine de formations et plusieurs agents a chaque fois.

Je dois detacher pour chaque formation :

les infos de la colonne nom et celle de la colonne dates.

Jusqu'a présent, je selectionnais et faisai des copier/coller dans une feuille ou j'avais pré-entré une entête... mais au bout de 10 stages... dur ! dur !

savez vous comment je peux, sur la deuxième feuille, entrer une macro ou formule pour que en un clic ou deux (bouton macro ou saisi dans une cellule) les infos necessaires soient exportées directement sur la deuxième feuille ???? voir faire d'une pierre deux coups : en un clic que tout mes stages soient exportés les uns derrière les autres avec la même en-tête (même sur une même feuille).

Je remercie d'avance celui ou celle qui pourra me donner une solution..... ;-)





A voir également:

6 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 avril 2011 à 15:48
Bonjour à tous

Ci joint proposition: déclenchement au changement de référence
Le codes se trouvent dans le module feuille extraction (clic droit sur nom de l'onglet "extraction"; visualiser le code)
https://www.cjoint.com/?3DApQQvvAf8

Private Sub Worksheet_Activate()
Dim lig As Integer
     Sheets("parametre").Range("refs").ClearContents
     With Sheets("stages")
          ' liste des références uniques
          .Range("B1").AutoFilter
          .Range("A1:J1000").AdvancedFilter Action:=xlFilterCopy, Copytorange:=Sheets("parametre").Range("B1"), Unique:=True
     End With
     
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address <> "$A$1" Then Exit Sub
          Me.Range("A3:J200").Clear
          If Target <> "" Then
               With Sheets("stages")
                    .Range("A1").AutoFilter Field:=2, Criteria1:=Range("choix")
                    With .Range("A1:J1000")
                         .SpecialCells(xlCellTypeVisible).Copy Me.Range("A2")
                         .AutoFilter Field:=2
                    End With
               End With
        
          End If
End Sub
2