Afficher données dans USERFORM pour les modifier

Signaler
Messages postés
10
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
2 décembre 2006
-
Messages postés
303
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
29 juillet 2011
-
J'ai crée une feuille excel composée de plusieurs CommandButton. L'un deux m'affiiche un Userform qui alimente une base de données Excel sur une autre feuille du même classeur. J'ai crée un autre Command Button qui me permet d'afficher les données présentes dans la première colonne de la BDD. Après sélection de la valeur choisie et validation en cliquant sur un bouton, s'affiche un Usreform. Je voudrais que dans cette Userform (qui est identique à l'Userform ayant servi à alimenter la BBD) s'affiche les données correspondant à celle de la valeur choisie à l'étape précédente
EXEMPLE:
J'ai sélectionné  le de la personne dans l'Userform. En validant le nouvel Userform m'indique dans une TextBox ce nomadresse, son téléphone,etc...   
Naturellement toutes ces données ont été préalablement renseignés. Avec pour objectif final de pouvoir les modifier et bien sûr de mettre alors à jour la base de données.

Merci à vous
vbadébutant

13 réponses

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut, bonne description, ta question je suppose que c'est: comment procédé ?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
10
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
2 décembre 2006

Exact! et en saisissant quel code

vbadébutant
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Tout dépend de comment est organisé ta BDD!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
10
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
2 décembre 2006

Alors dans la premiére ligne j'ai les entêtes: colonne A = Nom, colonne B = prenom, Colonne C = telephone etc..... La feuille où se situe cette BDD est nommée LISTE
Ensuite sur les lignes suivantes il y a les données saisies par le biais de l'Userform

Merci
vbadébutant
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Essaye d'adapter ce code:

Dim i As Integer


Private Sub CmdRechercher_Click()


Sheets("Sociétés").Activate


Dim k As Integer


For k = 2 To i - 1


If CmbNom.Value = Range("A" & k) Then


TxtAdresse.Value = Range("B" & k).Value
TxtCodePostale.Value = Range("C" & k).Value
TxtVille.Value = Range("D" & k).Value
TxtPays.Value = Range("E" & k).Value
TxtTel.Value = Range("F" & k).Value
TxtFax.Value = Range("G" & k).Value
TxtMail = Range("H" & k).Value
TxtRemarque.Value = Range("I" & k).Value


End If


Next k


End Sub


Private Sub UserForm_Activate()


Sheets("Sociétés").Activate

i = PremiereLigneVide(1)


If i > 2 Then
Dim tableau()
Dim j As Integer


j = 2
Do
ReDim Preserve tableau(1 To j)
tableau(j) = Range("A" & j).Value
CmbNom.AddItem tableau(j)
j = j + 1
Loop Until (j = i)


CmbNom.ListIndex = 0


Else


MsgBox "Il n'y a pas encore d'entrée société"


End If


End Sub


Public Function PremiereLigneVide(Colonne As Integer) As Integer


    PremiereLigneVide = Columns(Colonne).Find("", , , , xlByRows, xlNext).Row
   
End Function







 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
10
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
2 décembre 2006

Merci,
j'essaye ce soir

vbadébutant
Messages postés
303
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
29 juillet 2011

bah normalement cest ca
moi je lai teste et cest bon
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Je n'ai pas vérifié, mais j'imagine que le code de DrikCe06 est correct

Par contre, lorsqu'on doit rechercher des personnes, on devrait vérifier le nom, mais aussi le prénom au cas où plusieurs personnes auraient le même nom. On pourrait aussi y aller avec d'autres détails au cas où il y aurait plusieurs personnes ayant les mêmes noms et prénoms...

Il faudrait donc changer la condition de départIf CmbNom.TextRange("A" & k) And CmbPrenom.Text Range("B" & k) Then

(Je préfère y aller avec .Text plutôt que .Value...)

MPi
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut MPI, c'est sur qu'il faudrai ajouter un prénom pour faire la différence, je me suis contenté de répondre à ce qu'il demandai!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Drickce06:
j'espère que tu ne voyais pas mon commentaire comme une critique à ton code.
Je voulais simplement lui mettre la puce à l'oreille... J'ai vu souvent ce genre question apparaître et les gens finissent presque toujours par demander ce qu'on fait lorsque des noms se répètent... Aussi bien partir sur le bon pied...

MPi
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
T'inquiètes pas MPI, je ne l'ai pas du tout pris comme une critique, effectivement, après il y aurai eu la question suppression de doublons au autre comme d'habitude! Et mon code est tout ce qu'il y a de plus basic, c'est ce que j'avais fais rapidement pour un autre membre, il y a beaucoup d'amélioration à y apporter; c'était juste pour le mettre sur la voie, pour qu'il sache un peu comment faire ce qu'il veut! Et je pense qu'il doit y avoir d'autres possibilités!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
10
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
2 décembre 2006

Bon j'ai essayé d'adapter le code, mais je n'y arrive pas: ôù dois-je saisir le code? Dans le code du bouton, dans celui du userfom s'ouvrant aprés validation du bouton, auquel cas ne dois-je pas mettre un truc de ce genre:  Private Sub Userform_Activate()
Bon bref voilà mes problèmes.

vbadébutant
Messages postés
303
Date d'inscription
mercredi 11 octobre 2006
Statut
Membre
Dernière intervention
29 juillet 2011

tu parle de ce code la If CmbNom.TextRange("A" & k) And CmbPrenom.Text Range("B" & k) Then
si oui il faut le remplacer


If CmbNom.Value = Range("A" & k) Then


TxtAdresse.Value = Range("B" & k).Value
TxtCodePostale.Value = Range("C" & k).Value
TxtVille.Value = Range("D" & k).Value
TxtPays.Value = Range("E" & k).Value
TxtTel.Value = Range("F" & k).Value
TxtFax.Value = Range("G" & k).Value
TxtMail = Range("H" & k).Value
TxtRemarque.Value = Range("I" & k).Value

par If CmbNom.TextRange("A" & k) And CmbPrenom.Text Range("B" & k) Then ton code a executer
TxtAdresse.Value = Range("B" & k).Value
TxtCodePostale.Value = Range("C" & k).Value
TxtVille.Value = Range("D" & k).Value
TxtPays.Value = Range("E" & k).Value
TxtTel.Value = Range("F" & k).Value
TxtFax.Value = Range("G" & k).Value
TxtMail = Range("H" & k).Value
TxtRemarque.Value = Range("I" & k).Value

je crois que cest ca je ne suis pas non plus un pro