Compléter TEXTbox avec une base de données excel

couette16 Messages postés 5 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 28 décembre 2007 - 27 déc. 2007 à 20:28
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 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.

Pouvez vous m'aider

merci d'avance

claire

12 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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...

MPi²
0
couette16 Messages postés 5 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 28 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

claire




   
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
27 déc. 2007 à 23:56
Salut,

Qu'est-ce qui ne mache pas ?
as-tu un message d'erreur ?
le resultat ne correspond  pas a ton attente ?
ou bien rien ne ce passe ?

Donne plus d'info sur ce qui ne va pas

A+
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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²
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 déc. 2007 à 00:00
Salut BigFish...
tu m'as eu de vitesse...

MPi²
0
couette16 Messages postés 5 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 28 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

merci beaucoup
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 déc. 2007 à 00:57
De quelle façon sélectionnes-tu ton client ?
ou encore de quelle façon t'y prends-tu pour afficher les renseignements ... dans quel événement ?

MPi²
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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

A+

Philippe
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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
       
    If Trouve Then
        clientele.nom.Value = Sheets("LISTE CLIENTS").Range("B" & I)
        clientele.prenom.Value = Sheets("LISTE CLIENTS").Range("C" & I)
        clientele.adresse.Value = Sheets("LISTE CLIENTS").Range("D" & I)
        clientele.codepostal.Value = Sheets("LISTE CLIENTS").Range("E" & I)
        clientele.ville.Value = Sheets("LISTE CLIENTS").Range("F" & I)
        clientele.telephone.Value = Sheets("LISTE CLIENTS").Range("G" & I)
       
        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...

MPi²
0
couette16 Messages postés 5 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 28 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! ;-)

en tout cas merci beaucoup pour ton aide
0
couette16 Messages postés 5 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 28 décembre 2007
28 déc. 2007 à 12:54
Qu'entend tu par change des contrôles textbox
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 déc. 2007 à 22:36
En fait, c'est plutôt dans "clientele"
Private Sub nom_Change()

Mets tout en commentaire ou efface tout... à ta guise

MPi²
0
Rejoignez-nous