Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher des données sur feuille filtrées sur une autre feuille (liste déroulante)

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

zbig

XLDnaute Occasionnel
Bonjour

j'ai une feuille 1 avec un tableau de données
j'ai une feuille 2 avec 2 filtres

je souhaiterais que les infos filtrées de la feuille 1 apparaisent dans une liste déroulante de la feuille 2.

voici le fichier en pj

quelqu'un aurait-il une idée,

merci
Zbig
 

Pièces jointes

Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour,

Faire un filtre sur la planche, c'est possible puisque le nombre recherché est une information présente sur chaque ligne
Par contre faire un filtre sur le n° d'essai, je ne vois pas : l'info est une entête de colonne et non une info présente sur les lignes de la base de données

a+
 
Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour Zbig, bonjour le forum,

J'ai remplacé la ListBox par une ComboBox (ActiveX) car je gère mieux ce genre de contrôle... En pièce jointe ton fichier modifié avec la macro événementielle Change ci-dessous :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)

If Application.Intersect(Target, Application.Union(Range("B2"), Range("E2"))) Is Nothing Then Exit Sub 'si le changement à lieu ailleurs que dans B2 ou E2, sort de la procédure
If Range("B2") <> "" And Range("E2") <> "" Then 'condition 1 : si B2 et E2 ne sont pas vides
    Me.ComboBox1.Clear 'vide la ComboBox1
    With Sheets("Bilan") 'prend en compte l'onglet "Bilan"
        dl = .Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne dl de la colonne 2 (=B)
        Set pl = .Range("B4:B" & dl) 'définit la plage pl
        .Range("A3").AutoFilter 'active le filtre automatique
        'filtre la colonne G (Planche) avec la valeur en E2 (au format nombre 2 décimales) comme critère
        .Range("A3").AutoFilter Field:=7, Criteria1:=Format(Range("E2").Value, "0.00")
        On Error Resume Next 'gestion des erreurs (en cas d'erreur passe àla ligne suivante
        For Each cel In pl.SpecialCells(xlCellTypeVisible) 'boucle sur toutes les cellules cel de la plage pl visible (génère une erreur si aucune cellule visible)
            If Err <> 0 Then 'condition 2 : si une erreur a été générée
                Err = 0 'annule l'erreur
                MsgBox "Il n'y a aucun sauteur avec une planche à " & Range("E2").Value & " !" 'message
                Exit Sub 'sort de la procédure
            End If 'fin de la condition 2
            On Error GoTo 0 'annule la gestion des erreurs
            If cel.Offset(0, Range("B2").Value + 6).Value <> "" Then 'condition 3 : si la cellule corespondant à l'essai n'est pas vide
                Me.ComboBox1.AddItem cel.Offset(0, 1).Value & " " & cel.Value 'ajoute prénom et nom à la ComboBox1
            End If 'fin de la condition 3
        Next cel 'prochaine cellule de la boucle
        .Range("A3").AutoFilter 'désactive le filtre automatique
        'si la ComboBox1 est vide, message
        If Me.ComboBox1.ListCount = 0 Then MsgBox "Il n'y a aucun sauteur avec une planche à " & Range("E2").Value & ", Essai numéro " & Range("B2").Value & " !"
    End With 'fin de la prise en compte de l'onglet "Bilan"
End If 'fin de la condition 1
End Sub
Le fichier :

[Édition]
Bonjour Chalet on s'est croisé...
 

Pièces jointes

Dernière édition:
Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

bonjour Chalet, et Robert.

Merci pour vos réponses.

La version de Robert est presqu' exactement ce que je voulais.
En fait c'est de ma faute je me suis mal exprimé au départ.

Quand on demande la planche (facile car une seule colonne) et l'essai (moins facile car 6 colonnes différentes), on recherche les personnes n'ayant pas encore sauté pour l'essai n°X (cellule vide dans l'essai n°) pour les appeler.
En fait, la version de Robert fait l'inverse, il présente les candidats ayant déja sauté.

=> Il faudrait que le 1er de la liste à sauter soit visible sans cliquer sur le combobox

=> Est ce possible de rechercher les autres infos concernant le candidat automatiquement, (cf fichier)

=> dès que le candidat aura sauté, son nom s'enleverra de la combobox et le suivant apparaitra.

je vous mets le fichier joint pour info

merci
 

Pièces jointes

Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour le fil, bonjour le forum,

En pièce jointe la Version 03. Je me suis permis de modifier mais peut-être n'aurais-je pas dû... Je me suis dit, pourquoi donner le numéro d'essai comme critère puisque le sauteur est obligé de faire les essais dans l'ordre ?

L'approche de la version 3 est donc différente :
1 d'abord on sélectionne la planche. En fonction de celle-ci, et indépendamment du numéro d'essai, la ComboBox1 s'alimente.
2 On choisit ensuite le sauteur
3 Le numéro d'essai s'inscrit automatiquement, le curseur se place en E2
4 on édite la perf.
5 la perf. est répercutée dans les onglets bilan et essai.
6 à partir de là on poura :
- éditer le prochain essai du même sauteur en double-cliquant dans la ComboBox1. Actualisation et retour au point 3.
- choisir un nouveau sauteur dans la ComboBox1. Retour au point 2.
- changer la planche. Retour au point 1.

Des messages préviennent l'utilisateur si bilan as ou pas des sauteurs correspondants à la planche et si les 6 essais sont fait...
Le fichier :
 

Pièces jointes

Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour

Waouh! quel beau fichier !

Ca tourne bien.

Serait ce possible de bloquer les perfs entre [0-25.00m] car si je mets par erreur 900 au lieu de 9.00, ce n'est plus pareil en point (mais avec la possibilité de mettre X (essai erreur) et - (essai passé) )

Si je rentre la perf en feuille essai et que je me suis trompé, et que je rentre une nouvelle perf, alors c'est l'essai suivant qui est validé (mais pas dans la feuile bilan), alors qu'une modif de perf doit rester sue la case de l'essai n° en B6


En feuille bilan, si je change le titre d'un champ, les calculs se font aussi, !
Comment faire pour que cela fonctionne uniquement à partir de la ligne 4 à 68 ?

encore bravo et merci

Zbig
 
Dernière édition:
Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour le fil, bonjour le forum,

La version 04 avec les modifs demandées (limites des perfs et calcul uniquement si édition dans les lignes 4 à 68).
Ce qui ne fonctionne toujours pas c'est si tu rentres une perf et que tu t'es trompé. Deux solutions :
• Tu supprimes la perf dans l'onglet bilan
• Tu modifies la perf dans dans l'onglet bilan
Après tout reviens dans l'ordre...

Le fichier :
 

Pièces jointes

Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour

merci pour cette modif.

le cas du "x " minuscule ne fonctionnait pas le l'ai ajouté dans les case du vba

si la modif ne peut pas se faire en e2,
ne pourrait on pas inscrire directement la/les modifs dans les cels b-e-h en ligne 14 ou 16 selon l'essai ?

merci
Zbig
 
Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour le fil, bonjour le forum,

si la modif ne peut pas se faire en e2,
ne pourrait on pas inscrire directement la/les modifs dans les cels b-e-h en ligne 14 ou 16 selon l'essai ?
Je pense qu'on pourrait mais là, franchement, j'ai la flemme...
 
Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour

oui je me doute que l'écriture de cette procedure doit être longue.

Je pensais à une solution du genre (possible)
case b6= 1 ecrire valeur e2 dans b14;
b6=2 ecrire dans e14;
b6=3 ecrire dans h14 etc...

bref, je ne sais pas si cela est rien.
reviens quand tu veux

merci


a+
Zbig
 
Re : Afficher des données sur feuille filtrées sur une autre feuille (liste déroulant

Bonjour Robert,


Bonjour le fil, bonjour le forum,


Je pense qu'on pourrait mais là, franchement, j'ai la flemme...

Je pense avoir réussi à modifier ta macro pour que cela fonctionne

j'ai créé cette procedure

"Sub quel_essai_estce()

' quel_essai_estce Macro


Dim perf As Integer, num_essai As Integer
perf = Range("e2")
num_essai = Range("b6")

'Mettre la valeur de la perf en fonction du n° d essai
If num_essai = 1 Then
Range("b14") = perf
ElseIf num_essai = 2 Then
Range("e14") = perf
ElseIf num_essai = 3 Then
Range("h14") = perf
ElseIf num_essai = 4 Then
Range("b16") = perf
ElseIf num_essai = 5 Then
Range("e16") = perf
ElseIf num_essai = 6 Then
Range("h16") = perf
End If

End Sub


puis modifié ta ligne

'Ranger la valeur de l'essai dans la case appropriée
'Application.Union(Range("B14"), Range("E14"), Range("H14"), Range("B16"), Range("E16"),
Range("H16")).SpecialCells(xlCellTypeBlanks)(1).Value = Target.Value

par celle-ci
Call quel_essai_estce

a+ et merci

Zbig
 
- 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
6
Affichages
190
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…