Remplissage de formulaire depuis une base de donnée
Bonjour à tous !
Voilà, je début en VBA sous excel et j'aurais besoin d'un peu d'aide pour un projet
Laissez moi vous expliquer :
L'utilisateur, après avoir cliqué sur le bon bouton, se trouve face à une interface (un formulaire) lui demandant de scanner un code barre qui remplira un champ vide (référence) et il lui suffira de cliquer sur valider pour que tout les autres champs de remplissent automatiquement.
Voilà comment je vois les choses :
Ce que je cherche est plutôt simple, on a une base de données (feuil3 du fichier joint, c'est une base de donnée d'exemple) où sont listé des informations sur une ligne et référencées.
D'un autre côté on a un formulaire (feuil2 en cliquant sur le bouton "renseigner des données"), un champ libre (le premier en haut) ou sera tapé (ou scanné) une référence.
En cliquant sur valider, une macro se lance et va chercher (dans la feuil3, base de donnée) toutes les infos des champs en dessous (lot, machine, segment, etc...) et remplit ces champs avec les données trouvées dans la base de donnée.
C'est relativement simple avec une fonction de recherche mais j'avoue ne pas trop savoir comment faire sur un formulaire...
Je ne cherche pas la réponse directement mais si vous pouvez au moins m'orienter vers la solution, je vous serez très reconnaissant
Bonne journée
Bonjour Arthi,
Voici le code à mettre dans le 1er bouton "Valider" de ton USF
Il faudra bien entendu le compléter pour remplir tous les champs
Private Sub CommandButton2_Click()
Dim LigF As Long
If TextBox1 = "" Then
CreateObject("Wscript.shell").Popup "Merci de saisir une référence", 3, "Erreur"
Exit Sub ' Evite un 2ème test
End If
With Sheets("Feuil3")
On Error Resume Next ' Si ligne non trouvée
LigF = 0
LigF = .Columns("A:A").Find(What:=Me.TextBox1.Value, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
On Error GoTo 0
' Si la ligne est trouvée, mettre à jour l'USF
If LigF <> 0 Then
Me.TextBox2.Value = .Cells(LigF, 2).Value
' Etc ...
End If
End With
End Sub
A+
Ho super BrunoM45 ! Merci, je vais voir ça
Juste une petite question bête mais je ne sais plus comment faire pour qu'un champ text d'un formulaire soit égal à un autre...
EDIT: J'ai essayé mais il ne se passe rien... Aucune erreur pourtant et le code est plus que clair
Re,
Est-ce que la feuille contenant ta base de donnée s'appelle bien "Feuil3"
Voici ton fichier avec le code modifié et la présentation de "Feuil3" également, ça doit être ça
A+
Je crois que ça doit venir de chez moi car le fichier que tu m'as envoyé ne marche pas non plus...
Je suis sous 97, ça peut avoir une incidence à ce point ?
Re,
Oups.. Excel 97
Je ne pourrais rien faire pour toi
Pourquoi ne pas utiliser Open Office ou Libre Office on peut faire pas mal de chose avec
et il me semble que ça sait gérer le VBA
A+
Donc c'est foutue ?
Bon... Malheureusement, je ne décide pas vraiment quel logiciel utiliser...
Merci tout de même de m'avoir aidé !
PS : je viens de tester sur mon portable perso équipé de la version 2010, tout marche impeccable et même d'autres fonctions que j'essayé depuis tout à l'heure... Donc merci encore une fois !