Boucle do while avec for to

Benjo

XLDnaute Junior
salut à tous,

encore une fois, un souci avec ma macro me pousse à vous demander de l'aide.

Je vous explique :

j'ai une feuille avec sur une colonne, les codes fournisseurs, sur une autre colonne les noms des articles et sur une autre les prix.

Je voudrais avoir une inputbox qui me dise "Quel est le prix de l'article X ayant comme comme Y"
On rentre le prix, et ca l'inscrit direct dans la colonne prix.

SOUCIS : je voudrais que lorsque la cellule "nom" est vide, la boucle s'arrete.

Quelques details :

Les codes sont sur la colonne 2, les noms sont sur la colonne 3, et les prix sont sur la colonne 16.

J'ai donc fait ca :

Code:
Sub del()

Do

For i = 8 To 157


sheets("article et stock").Activate

Cells(i, 16).Value = _
InputBox("Entrez le prix prix de l'article : " & _
Cells(i, 3).Value & vbCrLf & " et de code fournisseur :" & _
vbCrLf & Cells(i, 2).Value & vbCrlf )


Loop While Cells(i, 3) <> ""

Next i

Else
End If
End Sub

Probleme: meme si la cellule i,3 est vide, j'ai toujours l'inputbox...

Pensez vous que ce soit possible ? :D

@++
 

skoobi

XLDnaute Barbatruc
Re : Boucle do while avec for to

Bonjour,

La ligne Loop.... est mal placé.
Une boucle suffit d'ailleurs.
Au fait, Else End If sont en trop à la fin non?:

Code:
Sub del()

  For i = 8 To 157
    Sheets("article et stock").Activate

    Cells(i, 16).Value = _
    InputBox("Entrez le prix prix de l'article : " & _
             Cells(i, 3).Value & vbCrLf & " et de code fournisseur :" & _
             vbCrLf & Cells(i, 2).Value & vbCrLf)

    If Cells(i, 3) = "" Then Exit For

  Next i

End Sub
 

Benjo

XLDnaute Junior
Re : Boucle do while avec for to

Ca semble fonctionner. Merci l'ami

Effectivement, yavait un end if en trop, mais c'est parce que je n'ai pas mis la totalité du code.

Cependant, j'ai souci avec ton idée :
quand on arrive à la fin de la colonne (donc quand on a cells(i,3)="" ), j'ai quand meme une dernière inputbox avec rien pour le nom et le code fournisseur.

C'est possible d'éviter cette dernière inputbox ? J'ai peur que ca induise en erreur l'utilisateur ...

:D

@++
 

Benjo

XLDnaute Junior
Re : Boucle do while avec for to

Je me repond seul :
J'ai ce que je veux avec ca :

Code:
  For i = 8 To 157
    sheets("article et stock").Activate

If Cells(i, 3) <> "" Then
    Cells(i, 16).Value = _
    InputBox("Entrez le prix prix de l'article : " & _
Cells(i, 3).Value & vbCrLf & " et de code fournisseur :" & _
vbCrLf & Cells(i, 2).Value & vbcflf )

   Else: Exit For
   
End If
  Next i

  

End Sub
 

skoobi

XLDnaute Barbatruc
Re : Boucle do while avec for to

Re,

arff, tu as juste à déplacer la condition en début de boucle:

Code:
Sub del()

  For i = 8 To 157
    If Cells(i, 3) = "" Then Exit For

    Sheets("article et stock").Activate

    Cells(i, 16).Value = _
    InputBox("Entrez le prix prix de l'article : " & _
             Cells(i, 3).Value & vbCrLf & " et de code fournisseur :" & _
             vbCrLf & Cells(i, 2).Value & vbCrLf)



  Next i

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 758
Messages
2 091 783
Membres
105 073
dernier inscrit
liMiteddddd