PROBLEME BOUCLE DEBUTANT

cs_CROCHU Messages postés 8 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 12 avril 2008 - 12 avril 2008 à 17:16
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 12 avril 2008 à 17:26
Bonjour,

Je m'excuse de vous déranger pour un problème qui vous semblera certainement simple mais que je parviens pas  
à solutionner malgré de nombreuses recherches de ma part.
 
Je vais donc essayer d'être le plus précis possible.
 
J'essai de mettre au point une petite gestion de stocks toute simple
 
Celle ci est composée de deux feuilles :  
 
La feuille 1 est organisée de la facon suivante :  
 
Colonne A : Code produit
Colonne B : Désignation
Colonne C: Famille produit
Colonne Drix d'achat unitaire
Colonne E : Stock dispo 
 Colonne F : le stock valorisé
Cette feuille 1 est la base de données.
 
La feuille 2 qui enregistre tous les mouvements de stocks (entrées / sorties) est organisée de la facon suivante :  
 
Colonne A : Date
Colonne B : Code produit
Colonne C : Désignation
Colonne D  : Famille produit
Colonne E : N° DE BL
Colonne F : Type de mouvement (entrée / sortie)
Colonne G : Qté
 
Cette feuille 2 est alimentée par un Userform qui renseigne  
la date
Le code produit
Le type de mouvement
la quantité
 
J'essaie sans y parvenir qu'à partir du code produit(textbox4 du Userform), la désignation et la famille produit
apparaissent automatiquement dans les colonnes  C et D de la feuille 2.
 
Voici le code que j'ai maladroitement écrit :  
 
For i = 1 To 100
 
 If Sheets("Feuil2" ).Range("B" & i).Value = Sheets("Feuil1" ).Range("A" & i).Value Then
 Sheets("Feuil2" ).Range("C" & i).Value = Sheets("Feuil1" ).Range("B" & i).Value
 End If
 Next i
 
Cela fonctionne mais prend en compte toutes les données de la feuille 1 alors que je ne veux boucler ou selectionner
un seul code produit à la fois ou faire plusieurs mouvements sur le meme produit.

Je bloque et vous remercie tous à l'avance pour votre aide.

Cordialement

cacheux

1 réponse

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
12 avril 2008 à 17:26
Si tu veux arrêter la recherche lorsque l'item est trouvé, mets Exit For
ex:
For i = 1 To 100
 
    If Sheets("Feuil2" ).Range("B" & i).Value = Sheets("Feuil1" ).Range("A" & i).Value Then
        Sheets("Feuil2" ).Range("C" & i).Value = Sheets("Feuil1" ).Range("B" & i).Value
        Sheets("Feuil2" ).Range("D" & i).Value = Sheets("Feuil1" ).Range("C" & i).Value

        Exit For ' si trouvé, rien ne sert de continuer
    End If
 Next i

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0