Créer boucle recherche d'infos

Bonjour,

Dans le fichier joint il y a les explication.

Problème : Je voudrais aller chercher les informations dans le bon d'enlèvement (cf feuille bon d'enlèvement) et les copier dans ma feuille stock à côté de la bonne référence quand ce dernier sera validé (cf flèche violette)

Merci d'avance pour votre aide.

11datas.xlsx (31.16 Ko)

Bonjour Aslo, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Stock)
Dim OB As Worksheet 'déclare la variable OB (Onglet Bon)
Dim TVS As Variant 'déclare la variable TVS (Tableau des Valeur Stock)
Dim TVB As Variant 'déclare la variable TVB (Tableau des Valeur Bon)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)

Set OS = Worksheets("Stock") 'définit l'onglet OS
TVS = OS.Range("A1").CurrentRegion 'définit la tableau des valeurs stock TVS
Set OB = Worksheets("BON D'ENLEVEMENT MATERIEL") 'définit l'onglet OB
TVB = OB.Range("H4").CurrentRegion 'définit la tableau des valeurs Bon TVB
For J = 2 To UBound(TVB, 1) 'boucle 1 : sur toutes les lignes J du tableau des valeur bon TVB (en partant de la seconde)
    For I = 2 To UBound(TVS, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeur Stock TVS (en partant de la seconde)
        If TVS(I, 1) = TVB(J, 1) Then 'si le numéro de gravage de l'onglet OB correspond à la référence de l'onglet OS
            OS.Cells(I, "K").Value = CDate(OB.Range("I2").Value) 'renvoie la date en I2 de l'onglet OB dans la cellule ligne I colonne K de OS
            OS.Cells(I, "L").Value = OB.Range("C20").Value 'renvoie le sous-traitant en C20 de l'onglet OB dans la cellule ligne I colonne L de OS
            OS.Cells(I, "M").Value = TVB(J, 3) 'récupère dans la cellule ligne I colonne M de l'onglet OS la cause ligne J colonne 3 de TVB
            Exit For 'sort de la bouce 2
        End If 'fin de la condition
    Next I 'prochaine ligne I de la boucle 2
Next J 'prochaine ligne J de la boucle 1
End Sub

Bonjour Aslo, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Stock)
Dim OB As Worksheet 'déclare la variable OB (Onglet Bon)
Dim TVS As Variant 'déclare la variable TVS (Tableau des Valeur Stock)
Dim TVB As Variant 'déclare la variable TVB (Tableau des Valeur Bon)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)

Set OS = Worksheets("Stock") 'définit l'onglet OS
TVS = OS.Range("A1").CurrentRegion 'définit la tableau des valeurs stock TVS
Set OB = Worksheets("BON D'ENLEVEMENT MATERIEL") 'définit l'onglet OB
TVB = OB.Range("H4").CurrentRegion 'définit la tableau des valeurs Bon TVB
For J = 2 To UBound(TVB, 1) 'boucle 1 : sur toutes les lignes J du tableau des valeur bon TVB (en partant de la seconde)
    For I = 2 To UBound(TVS, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeur Stock TVS (en partant de la seconde)
        If TVS(I, 1) = TVB(J, 1) Then 'si le numéro de gravage de l'onglet OB correspond à la référence de l'onglet OS
            OS.Cells(I, "K").Value = CDate(OB.Range("I2").Value) 'renvoie la date en I2 de l'onglet OB dans la cellule ligne I colonne K de OS
            OS.Cells(I, "L").Value = OB.Range("C20").Value 'renvoie le sous-traitant en C20 de l'onglet OB dans la cellule ligne I colonne L de OS
            OS.Cells(I, "M").Value = TVB(J, 3) 'récupère dans la cellule ligne I colonne M de l'onglet OS la cause ligne J colonne 3 de TVB
            Exit For 'sort de la bouce 2
        End If 'fin de la condition
    Next I 'prochaine ligne I de la boucle 2
Next J 'prochaine ligne J de la boucle 1
End Sub

Merci pour tout !! C'est super !

Rechercher des sujets similaires à "creer boucle recherche infos"