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

XL 2013 Menu déroulant et affichage selon un onglet

Roseline

XLDnaute Occasionnel
Bonjour,
J'ai un fichier qui contient plusieurs onglets. J'ai ajouté un "cumulatif" et c'est à cet endroit que j'ai besoin de votre aide.
Je désire sélectionner mon client dans la cellule en rouge D2 et en faisant cette sélection, j'ai besoin que la fiche complète du client choisi s'affiche, donc toutes les lignes et les colonnes complétées de A à C. Il y a des ajouts sur chacun des onglets à tous les jours donc il faut toujours afficher jusqu'à la dernière ligne.
Par exemple, si on écrit dans l'onglet Cumulatif, cellule D2 le nom Blouin, je devrais voir apparaitre toute l'information que je retrouve dans l'onglet Blouin, si c'est Gauthier ce sera les informations dans la fiche de Gauthier et ainsi de suite.
Merci de votre aide.
 

Pièces jointes

  • Aide excel.xlsm
    45.9 KB · Affichages: 18

laurent950

XLDnaute Barbatruc
Bonsoir,

VBA à copier dans la Feuille (Cumulatif) du Module : Microsoft Excel Objet

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Me.Range(Me.Cells(3, 1), Me.Cells(Me.Cells(65536, 1).End(xlUp).Row + 1, 3)).Clear
Dim t() As Variant
Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = Me.Cells(2, 4).Value Then
            t = ws.Range(ws.Cells(3, 1), ws.Cells(ws.Cells(65536, 1).End(xlUp).Row, 3))
            Me.Cells(3, 1).Resize(UBound(t, 1), UBound(t, 2)) = t
            Exit For
        End If
    Next ws
Erase t
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
 

Roseline

XLDnaute Occasionnel
Merci pour votre aide, j'ai ajusté le code avec ma programmation et mon fichier et tout fonctionne a merveille. J'aimerais juste que ce soit centré dans mes cellules et je n'y arrive pas. Pouvez-vous me donner un autre ti coup de main svp.
 

laurent950

XLDnaute Barbatruc
Bonjour,

J'aimerais juste que ce soit centré dans mes cellules et je n'y arrive pas

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Me.Range(Me.Cells(3, 1), Me.Cells(Me.Cells(65536, 1).End(xlUp).Row + 1, 3)).Clear
Dim t() As Variant
Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = Me.Cells(2, 4).Value Then
            t = ws.Range(ws.Cells(3, 1), ws.Cells(ws.Cells(65536, 1).End(xlUp).Row, 3))
            Me.Cells(3, 1).Resize(UBound(t, 1), UBound(t, 2)) = t
            Me.Range(Me.Cells(3, 1), Me.Cells(Me.Cells(65536, 1).End(xlUp).Row + 1, 1)).HorizontalAlignment = xlLeft
            Me.Range(Me.Cells(3, 2), Me.Cells(Me.Cells(65536, 1).End(xlUp).Row + 1, 3)).HorizontalAlignment = xlCenter
            Exit For
        End If
    Next ws
Erase t
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
 

Roseline

XLDnaute Occasionnel
Merci beaucoup Laurent950, vous m'avez été d'une aide très précieuse.
Bonne journée à vous
 

Discussions similaires

Réponses
16
Affichages
463
Réponses
14
Affichages
889
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…