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

Affichage colonnes suivant liste déroulante

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

J

jp65

Guest
Bonjour le forum

Voici m'on besoin.
J'ai un classeur dans lequel les colonnes A à M sont figées, ce qui occupe déjà pas mal l'écran.
Dans les colonnes "mobiles" se trouve une série de fournisseurs que je souhaiterait visualiser juste après la dernière colonne fixe et donc M. La visualisation des colonnes portant le même nom de fournisseur se ferait après sélection dans la liste déroulante en F2.
Si possible il faudrait que les autres colonnes ne soient pas cachées et que je puisse toujours naviguer manuellement dans les colonnes avec le curseur en bas de feuille.

Je joins mon fichier (c'est le vrai fichier) pour essai.

Merci pour votre attention.

Bonne soirée
 

Pièces jointes

Re : Affichage colonnes suivant liste déroulante

Re bonjour à tous

En complément du code précédent de mapomme, voici mes constatations.
Le code recherche le nom sélectionné par la liste déroulante et "colle" la première colonne contenant la sélection contre la colonne M. Comme en ligne 3 le nom des fournisseurs est groupé sur 10 colonnes on visualise donc d'un coup l'ensemble des colonnes du fournisseur sélectionné.
C'est exactement ce que j'avais demandé.

J'ai un peu modifié le code pour qu'il réagisse à une deuxième liste déroulante en F1.
Cette fois ci je cherche à regrouper les colonnes suivant les cellules en ligne 4 (Prix,.......,Référence).
Voici le code modifié:
Code:
Private Sub Worksheet_selectionchange(ByVal Target As Range)
Dim xrg As Range
Application.ScreenUpdating = False
If Target.Address = Range("f2").Address Then
  Set xrg = Range(Range("n3"), Cells(3, Columns.Count)).Find(Target, LookIn:=xlValues)
  If Not xrg Is Nothing Then
    Cells(3, Columns.Count).Select
    Application.Goto xrg, True
  End If
End If
If Target.Address = Range("f1").Address Then
  Set xrg = Range(Range("n4"), Cells(4, Columns.Count)).Find(Target, LookIn:=xlValues)
  If Not xrg Is Nothing Then
    Cells(4, Columns.Count).Select
    Application.Goto xrg, True
  End If
End If

End Sub

Avec ce code en l'état le choix dans la liste déroulante sélectionne la première colonne contenant la sélection choisie
et c'est tous.
Y a t'il moyen que le code regroupe toutes les colonnes contenant la sélection choisie.
Par exemple si je sélectionne "prix" je souhaiterais coller contre la colonne M toutes les colonnes qui contiennent "Prix".

Merci pour votre aide
 
Re : Affichage colonnes suivant liste déroulante

Bonjour jp65,


Changement de méthode -> seules les colonnes répondant aux critères des listes F1 et F2 sont affichées. le code est dans le module de la feuille Feuil1.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dercol&, xrg As Range, tablo, i&, j&

  Application.ScreenUpdating = False
  If Not Intersect(Target, Union(Range("f1"), Range("f2"))) Is Nothing Then
    Range(Cells(1, "n"), Cells(1, Columns.Count)).EntireColumn.Hidden = False
    Application.Goto Range("n3"), True
    dercol = Cells(3, Columns.Count).End(xlToLeft).Column
    tablo = Range(Cells(3, "n"), Cells(4, dercol)).Value

    If Range("F2") <> "*" Then
      For j = 1 To UBound(tablo, 2)
        If tablo(1, j) <> Range("F2") Then
          Cells(1, Range("m1").Column + j).EntireColumn.Hidden = True
        End If
      Next j
    End If

    If Range("F1") <> "*" Then
      For j = 1 To UBound(tablo, 2)
        If tablo(2, j) <> Range("F1") Then
          Cells(1, Range("m1").Column + j).EntireColumn.Hidden = True
        End If
      Next j
    End If
    Cells(Rows.Count, Columns.Count).Select
  End If
End Sub

edit : v2a (un peu plus rapide)
 

Pièces jointes

Dernière édition:
Re : [Résolu] Affichage colonnes suivant liste déroulante

Ouaouuu

C'a marche super bien.
J'ai juste remplacé les "*" par des "Tout" pour ré afficher l'ensemble des colonnes.

Merci mapomme pour ce super boulot.

Bon weekend

Allez la France ce soir contre l'Argentine
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
3 K
D
Réponses
4
Affichages
2 K
Dubarry
D
Q
Réponses
1
Affichages
1 K
Joël GARBE
J
J
Réponses
13
Affichages
5 K
E
Réponses
13
Affichages
2 K
-etienne-
E
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…