Microsoft 365 recherche valeur dans colonne si vba

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

gothc

XLDnaute Occasionnel
Bonjour le forum
sur la feuil 1 dans la colonne E (Désignation) je recherche à afficher la valeur de la feuil 2 colonne B (Désignation) uniquement quand j'ai le code scan de la feuil 1 en D (Result Outil qui manques)
Je cherche une méthode VBA
Merci de votre aide
bonne soirée
 

Pièces jointes

Bonjour le forum
sur la feuil 1 dans la colonne E (Désignation) je recherche à afficher la valeur de la feuil 2 colonne B (Désignation) uniquement quand j'ai le code scan de la feuil 1 en D (Result Outil qui manques)
Je cherche une méthode VBA
Merci de votre aide
bonne soirée
Bonjour,
Une piste en PJ avec ce code dans le module de la feuille "Feuil1"


  • VB:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim C As Range
    If Intersect(Target, [d:d]) Is Nothing Or Target.Row = 1 Then Exit Sub
    Application.EnableEvents = False
    For Each C In Target
    If IsNumeric(Application.Match(C, [Feuil2!A:A], 0)) Then
    C.Offset(, 1) = Feuil2.Cells(Application.Match(C, [Feuil2!A:A], 0), 2)
    Else
    C.Offset(, 1) = ""
    End If
    Next
    Application.EnableEvents = True
    End Sub
 

Pièces jointes

Dernière édition:
Je regarde maintenant comment afficher le résultat dans un userform
encore merci Jacky je laisse mon vrai fichier qui va permettre de le modifier et simplifier le fichier (plus facilement pour comprendre le fonctionnement) j'ai une base de donnée avec des articles
pour faire l'inventaire je scan le code barres de l'outil pour valider la présence de l'outil je recherche à afficher le résultat dans un userform puis demander à l'opérateur de contrôler la liste des outils qui manquent
Merci
 

Pièces jointes

Re bonjour dans l'affichage du résultat dans mon userform1 je pense quil serais mieux d'avoir le numéro de l'outil feuil1 en G quand je rajoute cette ligne j'ai le résultat avec un décalage

Merci de votre aide
 
Dernière édition:
Bonjour je cherche une petite modification du code pour avoir en plus le numero en feuil1 G pour le résultat de la recherche en E feuil3

quand je rajoute cette ligne j'ai un decalage je sais pas pourquoi Feuil3.Cells(Lig, "f") = C.Offset(, 6)


VB:
Sub traiter()
    Dim Lig, C As Range
    Lig = 2
    Feuil3.Range("d2:e" & Rows.Count).ClearContents
    With Feuil1
    For Each C In .Range("a2:a" & .Cells(.Rows.Count, "A").End(xlUp).Row)
        If IsError(Application.Match(C, [Feuil3!A:A], 0)) Then
            Feuil3.Cells(Lig, "d") = C
            Feuil3.Cells(Lig, "e") = C.Offset(, 1)
            Lig = Lig + 1
        End If
    Next
    End With
End Sub
 
Bon j'ai trouvé une solution avec 2 macros pour faire le boulot c'est pas la solution la plus simple mais elle fonctionne
VB:
Sub traiter()
    Dim Lig, C As Range
    Lig = 2
    Feuil3.Range("d2:e" & Rows.Count).ClearContents
    With Feuil1
    For Each C In .Range("a2:a" & .Cells(.Rows.Count, "A").End(xlUp).Row)
        If IsError(Application.Match(C, [Feuil3!A:A], 0)) Then
            Feuil3.Cells(Lig, "d") = C
            Feuil3.Cells(Lig, "e") = C.Offset(, 1)
            Lig = Lig + 1
        End If
    Next
    End With
End Sub

Sub traiter1()
    Dim Lig, C As Range
    Lig = 2
    Feuil3.Range("f2:f" & Rows.Count).ClearContents
    With Feuil1
    For Each C In .Range("a2:a" & .Cells(.Rows.Count, "A").End(xlUp).Row)
        If IsError(Application.Match(C, [Feuil3!A:A], 0)) Then
            Feuil3.Cells(Lig, "d") = C
            Feuil3.Cells(Lig, "f") = C.Offset(, 6)
            Lig = Lig + 1
        End If
    Next
    End With
End Sub
 
Je laisse le fichier avec la dernière version si une personne veut simplifier ou amélioré le fichier
merci
Re..
Ma version d'Excel ne permet pas de travailler sur ton classeur, désolé.
Ouvre un nouveau poste avec ton classeur en PJ pour d'autres questions.
Néanmoins, ce code met bien le n° de la colonne G(feuil1) en colonne F (feuille3) sans décalage.
VB:
Sub traiter()
    Dim Lig, C As Range
    Lig = 2
    Feuil3.Range("d2:f" & Rows.Count).ClearContents
    With Feuil1
        For Each C In .Range("a2:a" & .Cells(.Rows.Count, "A").End(xlUp).Row)
            If IsError(Application.Match(C, [Feuil3!A:A], 0)) Then
                Feuil3.Cells(Lig, "d") = C
                Feuil3.Cells(Lig, "e") = C.Offset(, 1)
                Feuil3.Cells(Lig, "f") = C.Offset(, 6)
                Lig = Lig + 1
            End If
        Next
    End With
End Sub

Bon courage et bonne année 2021
 
Dernière édition:
- 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
4
Affichages
185
Réponses
5
Affichages
188
  • Question Question
XL pour MAC fonction si
Réponses
5
Affichages
228
Réponses
6
Affichages
191
Réponses
2
Affichages
341
Réponses
4
Affichages
100
Retour