XL 2019 afficher dans 1 feuille les données d'une autre feuille en fct d'un critère

  • Initiateur de la discussion Initiateur de la discussion pilule007
  • 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 !

pilule007

XLDnaute Nouveau
Bonjour
J'ai une liste de membres, qui peuvent s'inscrire à des activités, comment puis avoir dans une seconde feuille, les membres avec leur données qui se sont inscrits à une activité avec 1 feuille pour chaque activité ?
merci pour votre aide
 

Pièces jointes

Dernière édition:
Bonsoir Pilule,
Un essai en PJ avec :
VB:
=SIERREUR(INDEX(Feuil1!C$5:C$30;PETITE.VALEUR(SI(Feuil1!$G$5:$G$30="OUI";LIGNE(INDIRECT("1:"&LIGNES(Feuil1!C$5:C$30))));LIGNES(Feuil1!$1:1)));"")
La formule est matricielle, il faut valider par Alt+Ctrl+Entrée
 

Pièces jointes

Super
merci beaucoup
une question : pourquoi faut il mettre des accolades {} pour encadrer le code , et comment la met-on ?
si je copie le code, elles ne se mettent pas et le code ne fonctionne pas,
et si je les ajoute, cela ne va pas non plus
merci pour ton aide
 
La formule est matricielle, il faut valider par Alt+Ctrl+Entrée
Comme son nom l'indique une formule matricielle permet de mener les calculs sur une matrice sinon il serait impossible de détecter les différentes occurrences.
 
Bonjour pilule007, sylvanu,

ton fichier en retour. 🙂

* regarde "Feuil3", puis "Feuil2"

* va sur "Feuil1", et fais Ctrl e ➯ travail effectué ! 😊

* note que tu es sur "Feuil2" ; regarde "Feuil3"

* note que "Feuil1" est restée inchangée

VB:
Option Explicit

Sub CpyData()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim sh1 As Worksheet, sh2 As Worksheet, plg As Range
  Dim nlm&, n&, i&, j&, k&
  Set sh1 = Worksheets("Feuil2"): Set sh2 = Worksheets("Feuil3")
  nlm = Rows.Count: Application.ScreenUpdating = 0
  n = sh1.Cells(nlm, 2).End(3).Row: If n > 3 Then sh1.Range("B4:E" & n).ClearContents
  n = sh2.Cells(nlm, 2).End(3).Row: If n > 3 Then sh2.Range("B4:E" & n).ClearContents
  n = Cells(nlm, 2).End(3).Row: j = 4: k = 4
  For i = 4 To n
    With Cells(i, 2)
      Set plg = .Resize(, 4)
      If .Offset(, 4) = "OUI" Then plg.Copy sh1.Cells(j, 2): j = j + 1
      If .Offset(, 5) = "OUI" Then plg.Copy sh2.Cells(k, 2): k = k + 1
    End With
  Next i
  sh1.Select
End Sub

soan
 

Pièces jointes

Bonjour
J'ai une liste de membres, qui peuvent s'inscrire à des activités, comment puis avoir dans une seconde feuille, les membres avec leur données qui se sont inscrits à une activité avec 1 feuille pour chaque activité ?
merci pour votre aide
Bonjour,
Hello sylvanu ** soan
Une proposition par vba
Nécessite autant de feuille que d'activité (feuille même nom que l'activité)
Se met à jour à la sélection de la feuille
 

Pièces jointes

Dernière édition:
Super,
merci pour vos réponses, je vais déjà pouvoir progresser,
j'ai encore une question, je voudrais travailler sur ces fichiers générés par activités, pour pouvoir y mettre si l'adhérent a payer, combien et comment (chèque, liquide, versement, carte bleue) , comment faire pour que ces informations suivent l'adhérent (voir mon fichier joint)
l'adhérent 3 et 9 sont inscrits à l'activité1 , si un adherent entre 3 et 9 s'inscrit, les info de paiement ne suivent pas l'adhérent 9, y a t il une possibilité pour le faire ?
merci beaucoup pour votre aide
pilule007
 

Pièces jointes

- 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
1
Affichages
225
Retour