Extraire des données d'une liste suivant un critère défini

Bonjour à toutes et tous,

je me tourne vers vous, étant une néophyte en VBA .

Au départ d'une liste de noms et prénoms, je voudrais pourvoir extraire ceux-ci suivant un critère et qu'ils apparaissent dans un autre tableau.

Dans cet autre tableau, il faudrait que ces noms et prénoms s'inscrivent l'un en dessous de l'autre, sans ligne vide entre les données et avec un maximum de 20 personnes par liste.

18math-sciences.xlsm (16.30 Ko)

Bonjour,

Je pense que c'est possible via PowerQuery votre affaire.

Une proposition VBA que je maitrise mieux.

11math-sciences.xlsm (26.37 Ko)
Public Sub ClickMaths()
  ExtraireGroupe "math"
End Sub

Public Sub ClickSciences()
  ExtraireGroupe "science"
End Sub

Private Sub ExtraireGroupe(axe As String)
  Dim colGroup As Long

  Select Case VBA.LCase$(axe)
  Case "math"
    colGroup = 3
  Case "science"
    colGroup = 4
  Case Else
    Exit Sub
  End Select

  Dim numGroup As Long
  On Error GoTo endSub
  numGroup = InputBox("Entrez le num�ro de groupe :", "AXE " & VBA.UCase$(axe) & " - Choix du groupe", 1)
  On Error GoTo 0

  Dim eleves()  ' tableau des donnees
  With donnees.Range("C5:F5")
    eleves = Range(.Cells, .End(xlDown)).Value2
  End With

  ' nettoyage de la feuille d'export
  ThisWorkbook.Worksheets(axe).Range("C5").CurrentRegion.Offset(0, 1).ClearContents

  ' entr�e des �l�ves filtr�s par groupe et axe
  Dim i As Long, nbAffectes As Long
  For i = LBound(eleves, 1) To UBound(eleves, 1)
    If CLng(VBA.Replace(eleves(i, colGroup), "Groupe ", vbNullString)) = numGroup Then
      nbAffectes = nbAffectes + 1
      With ThisWorkbook.Worksheets(axe).Range("C" & 4 + nbAffectes)
        .Value2 = eleves(i, 1)
        .Offset(0, 1).Value2 = eleves(i, 2)
      End With
    End If
  Next i

  ' optionnel, affichage du groupe en haut de la feuille
  ThisWorkbook.Worksheets(axe).Range("B1").Value2 = "AXE " & VBA.UCase$(axe) & " - Groupe " & numGroup

endSub:
End Sub

Bonjour

A noter que ton fichier est lié à un autre classeur ce qui empêche les liste déroulantes de fonctionner et bloque la possibilité d'utiliser ces listes comme paramètres pour la ventilation demandée sauf à les recréer...

Nous sommes en 2024 : les tableaux structurés dans Excel existent depuis 2003. Pourquoi ne pas utiliser leur nombreux avantages ?

On peut alors utiliser PowerQuery intégré à Excel 2016 et +

Tu ne précises pas si les 10 groupes d'une catégorie doivent se trouver dans un même onglet ou si tu auras 10 onglets... ou si le choix d'un groupe annule et remplace le tableau lié au choix précédent

Tu ne précises pas si l'extrait récupère le numéro original ou si on renumérote la liste...

Une proposition PowerQuery avec un choix par catégorie. Tout choix rafraichit la liste dans l'onglet concerné

EDIT : bonjour saboh12617

EDIT2 : la charte de ce forum n'autorise pas le cross post

Bonjour à tous,

Je propose une solution utilisant un Tableau Croisé Dynamique (TCD).

Si j’ai bien compris, le nombre de personnes dans les groupes dépendra des données saisies manuellement dans le tableau source. En partant de ce principe, nous pouvons créer un TCD qui permet d’extraire automatiquement les données dans chaque onglet. Il suffit de cliquer sur le TCD, puis d’aller dans l’onglet Analyse du TCD, sélectionner Options, choisir Afficher les pages filtre du rapport, et cliquer sur OK. Les onglets se créeront automatiquement.

capture d ecran 2024 08 08 173626

A tester...

18math-sciences.xlsm (22.23 Ko)

Bonjour

Le rôle d'un TCD est le calcul statistique.

Le détourner de sa finalité pour un faire un simple extracteur n'est pas optimum...

Bonjour Chris,

Tu as parfaitement raison ! l’utiliser uniquement comme un simple extracteur de données ne tire pas pleinement parti de ses capacités et peut ne pas être la solution la plus efficace mais bien que ce ne soit pas l’utilisation la plus optimale, cela peut répondre à certains besoins spécifiques.

Microsoft nous offre la possibilité de faire cette manip, autant l'utiliser

bonjour,

Merci à tous pour vos réponses et propositions.

je vais tester tout cela dans mon fichier original et si besoin, je reviendrai vers vous...

bonne journée

Rechercher des sujets similaires à "extraire donnees liste suivant critere defini"