Probleme avec une boucle WHILE WEND

Bonjour,

Je débute en VBA et j'ai un souci maintenant avec une boucle WHILE WEND. J'ai fait des recherches, j'ai essayé différentes structures de boucles (IF..Then ; WHILE...Wend....), mais rien ne marche.

objectif de la boucle :

En gros la boucle doit chercher le nombre NB (colonne B) en faisant des soustractions pour obtenir un résultat =0, ensuite ecrire la valeur trouvée sur la première cellule vide de la ligne .

J'essaie d'appliquer ce code mais ça fonctionne pas .

Private Sub Worksheet_Change(ByVal Target As Range)
    'On désactive les events pour empêcher les bugs
    Application.EnableEvents = False
    'Si les changements ont été fait sur la colonne B on commence le traitement
    If (Target.Column = 2) Then
        Row = Target.Row
        Nb = Range(Target.Address)
        i = 3
        While Nb > 0 And i <= 9
            If Not IsEmpty(Cells(Row, i)) Then
                If Cells(Row, i) >= Nb Then
                   Cells(Row, i) = Cells(Row, i) - Nb
                    Nb = 0
                ElseIf Cells(Row, i) < Nb Then
                    Nb = Nb - Cells(Row, i)
                    Cells(Row, i) = 0
                End If
            End If
            i = i + 1
        Wend
    End If
    'On réactive les events
    Application.EnableEvents = True
End Sub

Merci d'avance

Cordialement

Bonsoir,

Le code n'est pas correct à plusieurs instances. Mieux vaux de présenter ton fichier et demander de l'aide.

Bonsoir Raja,

Vous trouverez ci joint le fichier.

Bien cordialement

16tsfr.xlsm (234.46 Ko)

Re,

Merci pour le fichier mais explique ce que tu veux obtenir comme résultat et sur quelle feuille tu travailles pour obtenir ce résultat. Explique aussi ton raisonnement. Pour info, le code que tu utilises est dans un module commun mais il doit être dans un module d'une feuille.

Bonsoir,

J'essaie d'expliquer avec un exemple :

14528 j'ai besoin de ramener 2 palettes (colonne B) de la colonne C à H ( la disponibilité des palettes dans les différends dépôts) dans cet exemple il y a une palette sur le premier dépôt. je souhaite copier ce code et la quantité trouvé sur une feuille vierge

Un autre exemple 291599 ( ligne 107) j'ai besoin de ramener 6 palettes : j'ai 4 palettes dispo dans le dépôt 3 et une palettes dans le dépôt 5 . je peux ramener que 5 palettes copier ce code et les rajouter au premier code.

J'espère que j'ai bien expliqué mon besoin.

Bien cordialement

Re,

Regarge dans ton fichier en retour. J'ai ajouté une colonne dans la BDD et ajouté un filtrage dans le TCD

14copie-de-tsfr-1.xlsm (253.31 Ko)

Bonsoir,

La solution me parait correcte sauf que Je souhaite sous traire depuis le tcd parce que je dois chercher le besoin (colonne B) dans le dépôt plus proche c'est pour cela j'ai mis des numéros de 1 à 7 ...c'est à dire il faut chercher le besoin dans le dépot 1 puis 3 jusq le dépôt 7....

Cordialement

Re,

Je suis désolé. Je n'arrive plus saisir ton besoin. Mais on ne sais jamais. Essaye de faire deux TCD, l'un comme tu avais avant et l'autre comme j'ai proposé. Peut-être tu as la possibilité de comparer.

Bonjour Raja,

Je pense j'ai mal exprimé mon besoin, j'ai 6 dépôts et je souhaite transférer des palettes que j'estime le dépôt X est en rupture. du coup c'est pour cela sur le TCD la colonne B est mon besoin et les dépôts à coté c'est la ou il y a de la disponibilité sachant que je devrai chercher cette quantité dans le dépôt le plus proche .

en cherchant un peut sur les forums je me suis inspirée en faisant le code que j'ai mis dans le fichier.

Le but est de sous traire la valeur dans la colonne B de la ou il y a des palettes disponibles. ensuite pour donner l’ordre de transférer il faut copier le code article le dépôt et la quantité sur une feuille à part.

J'espère que maintenant c'est plus clair...

Merci d'avance.

Cordialement

Personne ne peut m'aider ?

Rechercher des sujets similaires à "probleme boucle while wend"