couette16
Messages postés5Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention28 décembre 2007
-
27 déc. 2007 à 20:28
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
28 déc. 2007 à 22:36
Bonjour à tous,
Dans le cadre d'un projet d'étude je réalise un projet VBA.
J'ai une base de données clients sur une feuille excel et j'aimerai pouvoir completer un userform a partir de cette base de donnée.
J'arrive a consulter ma base de donnée pour voir si mon client existe et maintenant j'aimerais que les informations de ce client soit automatiquement renseignées dans mon userform et eventuellement pouvoir les modifier.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 27 déc. 2007 à 23:07
Tu dois suivre le même cours que cette personne... à moins que tu n'écrives sous 2 pseudos ? Sinon, vous devriez faire équipe...
Qu'entends-tu par "automatiquement renseignées" ?
Tu pourrais avoir un Combobox qui liste tous les clients et quand tu en choisis un, tu retraces ce client (ce que tu sembles savoir faire) et ensuite tu lis chaque cellule voisine pour les inscrire dans tes contrôles.
Disons que tes clients sont en colonne A
MonTextBox = Range("B" & LigneDuClientTrouvé)
ou
MonTextBox = Range(CelluleDuClientTrouvé).Offset(0, 1)
Mais ce serait plus simple avec le bout de ton code...
couette16
Messages postés5Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention28 décembre 2007 27 déc. 2007 à 23:29
Effectivement cette personne est dans mon groupe. Elle a mis ce message cette après midi.
j'ai résolu ce problème, mais quand un problème est résolu un autre apparaît. Faut avoir beaucoup de patience.
Donc j'ai une base de donnée avec mes clients.
Alors je veux pouvoir a partir d'un userfom renseignement client :
- compléter cette base de donnée si c'est un nouveau client
- pourvoir récupérer les infomations, càd prénom, adresse ville telephone dans la base de donnée si le client existe.
alors j'ai fait un nouveau userform pour rechercher si le client est dans la bas :
la forme ci dessous fonctionne :
' Vérification de l'existence d'un client
Dim L As Integer
L = Sheets("LISTE CLIENTS").Range("B3000").End(xlUp).Row + 1
With Sheets("LISTE CLIENTS")
For Each nomduclient In Range("B4:b" & L)
If nomduclient.Value = TextBox1.Value Then
MsgBox ("Ce client existe déja")
Exit Sub
End If
Next nomduclient
End With
ensuite j'aimerai que quand mon client existe je puisse consulté sa fiche. donc j'ai d'abord fait la formule suivante sur le userform de recherche :
'Si le client existe, compléter le fiche automatiquement
Dim varnom As String
varnom = TextBox1.Value
rechercheclient.Hide
clientele.Show
clientele.nom.Value = varnom
et ensuite dans ma fiche renseignement client j'ai mis la fomule suivante:
' on initialise numligne
numligne = 1
With Worksheets("LISTE CLIENTS")
Do While .Cells(numligne, "B") <> nom.Value
numligne = numligne + 1
Loop
'on récupère les données de la base de données client
clientele.prenom.Value = .Cells(numligne, "C").Value
clientele.adresse.Value = .Cells(numligne, "D").Value
clientele.codepostal.Value = .Cells(numligne, "E").Value
clientele.ville.Value = .Cells(numligne, "F").Value
clientele.telephone.Value = .Cells(numligne, "G").Value
End With
J'espère que je suis assez claire.
Ca fonctionne quand je lance uniquement la macro a partir du userform recherche client mais si je lance mon projet en entier ca ne fonctionne pas.
Je ne sais pas quel est le problème.
En tout cas je te remercie beaucoup pour ton aide
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 27 déc. 2007 à 23:57
Présenté ainsi, c'est assez difficile à dire où est le problème, puisque tout semble devoir bien fonctionner...(?) Ce n'est pas le code que j'aurais utilisé, mais ça devrait faire l'affaire tout de même...
Peux-tu expliquer plus précisément ce qui ne fonctionne pas ?
Y a-t-il un message d'erreur ?
MPi²
Vous n’avez pas trouvé la réponse que vous recherchez ?
couette16
Messages postés5Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention28 décembre 2007 28 déc. 2007 à 00:14
En fait lorsque je lance mon projet en entier, et que je selectionne mon client dont j'aimerai voir la fiche client et bien aucun renseignement ne s'affiche dans mon userform, alors que j'aimerai qu'il soit complété puisque les informations sont connus.
Par contre quand je lance la macro uniquement a partir du userform, la ca fonctionne et ma fiche se complete automatiquement. Je ne comprend pas pourquoi.
Il n'y a donc pas de message d'erreur. Mon userform s'affiche mais vide
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 28 déc. 2007 à 04:19
Bonjour a toutes et a tous,
Salut MPi2 cela fait plaisir de te voir ici ! Je te laisse ce sujet... de toute facon c'est toi qui la commencé ^^... je ne serai pas dispo les jours qui viennent desolé.
Bonne fete de fin d'année a tous le monde et bon courage a couette16 et alex1354 pour votre projet
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 28 déc. 2007 à 11:36
Dans rechercheclient, mets ceci et enlève les événements Change des contrôles textbox
Private Sub CommandButton2_Click()
'Si le client existe, compléter le fiche automatiquement
Dim I As Long, nbLignes As Long
Dim Trouve As Boolean
Dim varnom As String
'détermine le nombre de lignes à lire dans la base
nbLignes = Sheets("LISTE CLIENTS").Cells(Rows.Count, "B").End(xlUp).Row
varnom = TextBox1.Value 'ça prendrait aussi le prénom pour la recherche
For I = 4 To nbLignes
If UCase(Sheets("LISTE CLIENTS").Range("B" & I)) = UCase(varnom) Then
Trouve = True 'on l'a trouvé
Exit For
End If
Next
Unload rechercheclient
clientele.Show
Else
MsgBox "Le client n'est pas dans la base de données"
End If
End Sub
Note que ce serait mieux de faire une recherche avec le nom et le prénom pour s'assurer que c'est vraiment la bonne personne. Autre façon de faire, ce serait d'ajouter une listbox sous le textbox dans rechercheclient. Un bouton (commandbutton2, disons) te permettrait de lister toutes les lignes contenant un nom identique à celui demandé. Il ne resterait qu'à sélectionner le bon en double-cliquant une des entrées de cette liste...
couette16
Messages postés5Date d'inscriptionsamedi 10 novembre 2007StatutMembreDernière intervention28 décembre 2007 28 déc. 2007 à 12:50
merci pour ton aide.
Mais le probleme persiste.
Quand je lance mon projet depuis le départ, le userform clientèle est toujours vide, alors que lorsque je le lance depuis le vba mais uniquement a partir de userform recherche client, la le userform clientele est complété.
Je n'y comprend vraiment rien, je crois que je vais devenir folle! ;-)