Retrouver des infos multiples

Bonjour,

je m'adresse encore une fois à vous afin de trouver une solution. J'ai un liste d'Ordre de fabrication (OF) et je souhaiterais retrouver les composant dans la feuille "nomenclature" pour les insérer en face dan la feuille "OF". Dans l'exemple j'ai 6 composants mais cela peut monter jusqu'à 9 (d'ou le 1,2,3,4,5,6,7,8,9).

Merci d'avance pour votre aide,

CDLT

Nathan

Bonjour,

Une solution par macro.

Le code (à insérer dans le module de la feuille : Clic droit sur l'onglet "OF"/Visualiser le code - copier/coller le code suivant) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, DL As Long
    If Target.Cells.Count = 1 Then                                  'Si une unique cellule concernée
        If Target.Column = 1 Then                                   'Si colonne A
            Application.EnableEvents = False                        'Désactive les événements
            Application.ScreenUpdating = False                      'Empêche la MAJ de l'écran
            With Worksheets("Nomenclature")                         'Dans la feuille Nomenclature
                DL = .Range("E" & Rows.Count).End(xlUp).Row         'dernière cellule non vide colonne E
                .AutoFilterMode = False                             'Désactive un filtre éventuel
                'filtre la feuille nomenclature, si colonne 5 (E) correspond au Critère Target (cellule modifiée col A Feuille OF)
                .Range("$A$2:$F$" & DL).AutoFilter Field:=5, Criteria1:=CStr(Target.Value)
                On Error Resume Next                                'Empêche l'erreur si aucune données après filtre
                Set Rng = .AutoFilter.Range.Cells.SpecialCells(xlCellTypeVisible)   'met en mémoire la plage filtrée
                On Error GoTo 0
            End With
            If Not Rng Is Nothing Then                              'Si le filtre a ramené des données
                With ThisWorkbook.Worksheets.Add                    'Dans une nouvelle feuille
                    Rng.Copy .Range("A1")                           'Copie / colle la plage filtrée
                    'Transpose la colonne C de la plage filtrée dans la bonne ligne Feuille OF :
                    Target.Offset(0, 1).Resize(, .Range("A1").CurrentRegion.Rows.Count - 1).Value = Application.Transpose(.Range("C2:C" & .Range("C" & Rows.Count).End(xlUp).Row).Value)
                    Application.DisplayAlerts = False               'Empêche l'alerte Excel de suppression de feuille
                    .Delete                                         'Supprime la nouvelle feuille
                    Application.DisplayAlerts = True                'Réactive les alertes Excel
                End With
            End If
            Worksheets("Nomenclature").AutoFilterMode = False       'Désactive le filtre
            Application.EnableEvents = True                         'Réactive le gestionnaire d'événements
            Application.ScreenUpdating = True                       'Remet la MAJ de l'écran
        End If
    End If
End Sub

Le fichier :

9micromax97.zip (18.62 Ko)

Bonjour

Pour un OF ou pour tous ?

Pour un ou deux faisable par formule, pour une longue liste, PowerQuery, intégré à Excel est plus approprié

Les 2 solutions dans l'exemple ci-joint

Edit : tu as 3 solutions avec le VBA de pijaku

Merci à vous deux. J'ai du mal à comprendre le fonctionnement de ta macro pijaku donc je vais éviter de l'utiliser, ce sera plus sain pour le futur du fichier mais merci beaucoup elle a l'air très complète !

Il y a plusieurs OF mais au max une dizaine donc les formule sont parfaites !

Merci beaucoup à vous deux !

Cdlt

Nathan

Rechercher des sujets similaires à "retrouver infos multiples"