Boucle DO WHILE
Résolu
laura54960
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
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
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Do not turn off target traduction - Forum Samsung
- 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