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

Madjon6

XLDnaute Occasionnel
Bonjour,

J'ai une grande base de données concernant des applications, je souhaiterai qu'en choisissant une appli dans une liste déroulante ou formulaire sur un autre onglet, les données concernant l'appli en question s'affichent automatiquement sous forme de tableau comme dans la base mais juste pour l'appli sélèctionnée.

Un exmeple est joint pour une meilleure compréhension.

Merci pour votre aide.
 

Pièces jointes

Dernière édition:
Re : Affichage dynamique

Bonjour,

avec un code VBA, dans l'évènement de feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    With Sheets("BASE")
        .Range("A1:D" & .[A65000].End(xlUp).Row).Name = "base"
        .Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "A1:A2"), CopyToRange:=Range("B18:D18"), Unique:=False
    End With
    Target.Select
End If
End Sub

Fichier :
 

Pièces jointes

Re : Affichage dynamique

Merci bhbh,

En fait les applis n'ont pas toujours le même nb de lignes donc il faudrait que la zone d'affichage soit plus grande (3000 lignes). j'ai éssayé d'agrandir dans le code la zone (B18:d18) à (A3:l3000) mais sans succès ?

Merci encore
 
Re : Affichage dynamique

Re,

le nombre de lignes importe peu, ce code utilisant le filtre élaboré.

Ce qui importe, c'est que les en-têtes soient rigoureusement identiques (un copier/coller des titres est le mieux)

la zone d'extraction ne doit faire qu'une ligne

Si tu mets les titres en A1:L1, tu mets ceci pour la zone d'extraction :

Code:
.Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "A1:A2"), CopyToRange:=Range("A1:L1"), Unique:=False

Et au risque de me répéter, il faut que les titres soient exactement les mêmes (pas de cellules vides dans les titres de la base, ni dans les titres de la zone d'extraction)
 
Re : Affichage dynamique

Oui je vois mais en fait je me rends compte que l'exemple que j'ai donné ne reflète pas toute la complexité de la base.

Je peux t'envoyer la base en privé par mail ou tu n'as pas le temps ?

Merci encore
 
Re : Affichage dynamique

Re-,

bien reçu ton fichier..

tu n'avais pas mis le code dans le bon endroit (tu avais mis dans l'évènement ThisWorkBook, il faut le mettre dans l'évènement de la feuille "Appli coût")

Ton titre en A1 n'était pas conforme (Applis au lieu d'appli en A1 de la feuille "Volume")

Il n'y avait pas de titres dans la feuille 1...

J'ai déplacé ta liste de validation...

Si tu rajoutes des applis, tu l'auras automatiquement dans la liste de validation de la cellule A2

le code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    Application.ScreenUpdating = False
    With Sheets("Volume")
        .Range("appli").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("R1" _
            ), Unique:=True
        .Range("A1:P" & .[A65000].End(xlUp).Row).Name = "base"
        .Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "A1:A2"), CopyToRange:=Range("A4:P4"), Unique:=False
    End With
    With Cells
        .WrapText = False
        .VerticalAlignment = xlCenter
    End With
    Columns("B:P").EntireColumn.AutoFit
    Target.Select
End If
End Sub

je te renvoies ton fichier modifié
 
- 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

L
Réponses
1
Affichages
723
Réponses
0
Affichages
527
P
  • Question Question
Réponses
1
Affichages
854
Retour