Boucle DO WHILE
Résolu
laura54960
Messages postés
17
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Je dois créer un programme sous excel 2007 permettant de rechercher un code client dans une feuille "Client" et en fonction de ce code, afficher toutes les données (nom, prénom, adresse, cp,...) dans un devis type facture.
Voici le début de mon programme :
Sub DEVIS()
Dim codeclient As String
Dim modepaiement As String
Dim txremise As Single
Dim montantHT As Single
Dim montantTTC As Single
Dim transport As Single
Dim total As Single
codeclient = InputBox("Veuillez saisir le code client : ", "SAISIE", 0)
Worksheets("Devis").Cells(7, 5).Value = codeclient
modepaiement = InputBox("Indiquez le mode de paiement : ", "SAISIE", 0)
Worksheets("Devis").Cells(12, 2).Value = modepaiement
Do while Worksheets("Devis").Cells(7, 5).Value <> Worksheets("Clients").Cells(i, 1).Value
Worksheets("Devis").Cells(7, 2).Value = Worksheets("Clients").Cells(i, 2).Value
Worksheets("Devis").Cells(8, 2).Value = Worksheets("Clients").Cells(i, 3).Value
Worksheets("Devis").Cells(8, 5).Value = Worksheets("Clients").Cells(i, 4).Value
Worksheets("Devis").Cells(9, 2).Value = Worksheets("Clients").Cells(i, 5).Value
Worksheets("Devis").Cells(9, 5).Value = Worksheets("Clients").Cells(i, 6).Value
Worksheets("Devis").Cells(10, 2).Value = Worksheets("Clients").Cells(i, 7).Value
Worksheets("Devis").Cells(10, 5).Value = Worksheets("Clients").Cells(i, 8).Value
Loop
End Sub
Ca bloque au niveau du DO WHILE.
Comment puis-je faire ?
Merci d'avance
Je dois créer un programme sous excel 2007 permettant de rechercher un code client dans une feuille "Client" et en fonction de ce code, afficher toutes les données (nom, prénom, adresse, cp,...) dans un devis type facture.
Voici le début de mon programme :
Sub DEVIS()
Dim codeclient As String
Dim modepaiement As String
Dim txremise As Single
Dim montantHT As Single
Dim montantTTC As Single
Dim transport As Single
Dim total As Single
codeclient = InputBox("Veuillez saisir le code client : ", "SAISIE", 0)
Worksheets("Devis").Cells(7, 5).Value = codeclient
modepaiement = InputBox("Indiquez le mode de paiement : ", "SAISIE", 0)
Worksheets("Devis").Cells(12, 2).Value = modepaiement
Do while Worksheets("Devis").Cells(7, 5).Value <> Worksheets("Clients").Cells(i, 1).Value
Worksheets("Devis").Cells(7, 2).Value = Worksheets("Clients").Cells(i, 2).Value
Worksheets("Devis").Cells(8, 2).Value = Worksheets("Clients").Cells(i, 3).Value
Worksheets("Devis").Cells(8, 5).Value = Worksheets("Clients").Cells(i, 4).Value
Worksheets("Devis").Cells(9, 2).Value = Worksheets("Clients").Cells(i, 5).Value
Worksheets("Devis").Cells(9, 5).Value = Worksheets("Clients").Cells(i, 6).Value
Worksheets("Devis").Cells(10, 2).Value = Worksheets("Clients").Cells(i, 7).Value
Worksheets("Devis").Cells(10, 5).Value = Worksheets("Clients").Cells(i, 8).Value
Loop
End Sub
Ca bloque au niveau du DO WHILE.
Comment puis-je faire ?
Merci d'avance
A voir également:
- Boucle DO WHILE
- My people do - Télécharger - Organisation
- Do not turn off target traduction - Forum Samsung
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- What you do what you say - Forum Audio
3 réponses
Bonjour,
Voilà pour la recherche et la récupération des infos :
Il faut faire une autre procédure pour le reste du devis (MontantHT, MontantTTC etc ...)
;0)
Voilà pour la recherche et la récupération des infos :
Sub RechercheClient()
Dim codeclient As String
Dim dLig As Long
Dim wsDevis As Worksheet
Dim wsClt As Worksheet
Dim i As Long
'On instancie les objets Worksheet
Set wsDevis = ThisWorkbook.Worksheets("Devis")
Set wsClt = ThisWorkbook.Worksheets("Clients")
'Recherche de la dernière ligne "Clients"
dLig = wsClt.Range("A" & Rows.Count).End(xlUp).Row
'Saisie du code client par l'utilisateur
codeclient = InputBox("Veuillez saisir le code client : ", "SAISIE", 0)
'Boucle sur le num client
For i = 1 To dLig
'Si la ligne client est trouvée, on copie les données et on sort de la procédure
If UCase(codeclient) = UCase(wsClt.Cells(i, 1).Value) Then
wsDevis.Cells(7, 2).Value = wsClt.Cells(i, 2).Value
wsDevis.Cells(8, 2).Value = wsClt.Cells(i, 3).Value
wsDevis.Cells(8, 5).Value = wsClt.Cells(i, 4).Value
wsDevis.Cells(9, 2).Value = wsClt.Cells(i, 5).Value
wsDevis.Cells(9, 5).Value = wsClt.Cells(i, 6).Value
wsDevis.Cells(10, 2).Value = wsClt.Cells(i, 7).Value
wsDevis.Cells(10, 5).Value = wsClt.Cells(i, 8).Value
Exit Sub
End If
Next i
'libération des objets et de la mémoire
Set wsDevis = Nothing
Set wsClt = Nothing
End Sub
Il faut faire une autre procédure pour le reste du devis (MontantHT, MontantTTC etc ...)
;0)
Merci beaucoup pour cette réponse. Cela fonctionne, toutes mes données se retrouvent au bon endroit. En revanche, j'ai un message d'erreur qui apparaît : code 1004, erreur définie par l'objet ou l'application. Et du coup, la suite de mon programme ne s'execute pas. Une idée ?
Merci d'avance
L'erreur est détectée sur quelle ligne du code ?
Peux-tu poster tout ton code ? Ou alors déposer le fichier en enlevant les données confidentielles et en les remplaçant par des données bidons sur cjoint.com et en postant ensuite le lien ici. Merci
Sub DEVIS()
Dim codeclient As String
Dim modepaiement As String
Dim txremise As Single
Dim montantHT As Single
Dim montantTTC As Single
Dim transport As Single
Dim total As Single
Dim i As Long
codeclient = InputBox("Veuillez saisir le code client : ", "SAISIE", "")
Worksheets("Devis").Cells(7, 5).Value = codeclient
modepaiement = InputBox("Indiquez le mode de paiement : ", "SAISIE", "CB")
Worksheets("Devis").Cells(12, 2).Value = modepaiement
i = 4
Do While codeclient <> Worksheets("Clients").Cells(4, 1).Value
i = i + 1
If codeclient = Worksheets("Clients").Cells(i, 1).Value Then
Worksheets("Devis").Cells(7, 2).Value = Worksheets("Clients").Cells(i, 2).Value
Worksheets("Devis").Cells(8, 2).Value = Worksheets("Clients").Cells(i, 3).Value
Worksheets("Devis").Cells(8, 5).Value = Worksheets("Clients").Cells(i, 4).Value
Worksheets("Devis").Cells(9, 2).Value = Worksheets("Clients").Cells(i, 5).Value
Worksheets("Devis").Cells(9, 5).Value = Worksheets("Clients").Cells(i, 6).Value
Worksheets("Devis").Cells(10, 2).Value = Worksheets("Clients").Cells(i, 7).Value
Worksheets("Devis").Cells(10, 5).Value = Worksheets("Clients").Cells(i, 8).Value
End If
Loop
End Sub
L'erreur est en gras. J'ai également remarqué que le premier code client ne fonctionne pas, c'est à dire que ses coordonnées ne s'affichent pas. Je n'arrive pas à trouver d'où vient l'erreur. =/
Merci de vos réponses