RechercheV sur userform (résolu)

pat40 pat40
86 contributions
Membre depuis le 04/03/2011
Envoyé le 11/12/2011 à 11:53


Bonjour,

Tout je remercie tous ceux qui prennent le temps de me répondre.

J'en suis toujours avec mon projet.J'ai un souci (pour pas dire autre chose) j'ai déjà mis sur un userform PV un code ( que j'ai eu grâce à l'un d'entre vous) pour faire de une rechercheV qui remplit les textbox puis la base après validation. Je reprend ce code pour faire une autre rechercheV sur le même userform PV à partir d'une source différente. Mais rien ni fait la recherchev ne s'effectue pas.Je joins le fichier cela sera plus clair.
Dans le bouton permission de voirie sur feuille de saise, j'ouvre l'userform PV avec lequel je complète la feuille base, la recherchev s'effectue pour les coordonnées "'mairie" mais pas pour les coordonnées demandeur concessionnaire

J'ai repris le code (que je ne maîtrise pas forcement comme il faut?)et transposé mais
Merci de votre aide et explication

Fichier : http://www.partage-fichiers.com/upload/1xjnlx62
Taille du fichier : 191.00
Utilisateur : eeeu9uxr
Mot de passe : ip3vkkv2

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 11/12/2011 à 12:51


Bonjour,
Je n'ai pas trouvé de code pour la récupération, dans le Userform PV, des informations de la table "concessionnaire demandeur".

Private Sub villecon_Change()
???? vide
End Sub

Ceci explique probablement cela.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
pat40 pat40
86 contributions
Membre depuis le 04/03/2011
Envoyé le 11/12/2011 à 18:25


Bonjour,

Bonjour,
Je n'ai pas trouvé de code pour la récupération, dans le Userform PV, des informations de la table "concessionnaire demandeur".

Private Sub villecon_Change()
???? vide
End Sub

Ceci explique probablement cela.



Merci, effectivement j'ai oublié de mettre le code lorsque j'ai fait une copie de ma base, mais cela ne fonctionne pas pour autant voici le code que j'ai fait mais sans succès
adresse.ControlSource = "base!EF2"
adresse.Text = ""
'Cellule liée au mandat du maire
mandat.ControlSource = "base!EG2"
mandat.Text = ""

'Cellule liée au code postal commune
cp.ControlSource = "base!EH2"
cp.Text = ""
'Cellule liée a la civilite du maire
civilite.ControlSource = "base!EI2"
civilite.Text = ""


'Plage des noms des demandeurs concessionnaires
Set rng = Worksheets("demandeur").UsedRange.Columns(1)
Set rng = rng.Resize(rng.Rows.Count - 1).Offset(1)
'Initialiser la liste déroulante des demandeurs
With Worksheets("demandeur")
nomcon.RowSource = "'" & .Name & "'!" & .UsedRange.Columns(1).Offset(1).Address
End With

'Cellule liée au nom du concessionnaire
nomcon.ControlSource = "base!U2"
nomcon.Text = ""
'Cellule liée à l'adresse du demandeur
adressecon.ControlSource = "base!EQ2"
adressecon.Text = ""
'Cellule liée CP du demandeur
cpcon.ControlSource = "base!EQ2"
cp.Text = ""
'Cellule liée à la ville du demandeur
villecon.ControlSource = "base!EQ2"
villecon.Text = ""

End Sub

encore merci

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 11/12/2011 à 20:50


Bonsoir,
J’ai écrit du code qui fonctionne, mais je ne garantit pas que les informations soient reportées dans les bonnes colonnes de la feuille « base », ni qu’elle y soient toutes. C’est à vous de voir en fonction du résultat souhaité.
En résumé :
1) J’ai créé une procédure Sub comme suit. C’est elle qui va afficher les détails du demandeur, dans le Userform pv, après le choix de celui-ci dans la liste déroulante. C’est sur le modèle de la procédure « ville1_Change() », utilisée pour la commune.

Private Sub nomcon_Change()
Dim rng As Range
Dim cel As Range
'Plage des noms des demandeurs concessionnaires
Set rng = Worksheets("demandeur").UsedRange.Columns(1)
'Chercher le demandeur choisi
On Error Resume Next
Set cel = rng.Find(nomcon.Text, lookat:=xlWhole)
If Not cel Is Nothing Then
'Cellule liée au titre du concessionnaire
titrecon.Text = cel.Offset(0, 1).Value
'Cellule liée à l'adresse du demandeur
adressecon.Text = cel.Offset(0, 2).Value
'Cellule liée CP du demandeur
cpcon.Text = cel.Offset(0, 3).Value
'Cellule liée à la ville du demandeur
villecon.Text = cel.Offset(0, 4).Value
Else
titrecon.Text = ""
adressecon.Text = ""
cp.Text = ""
villecon.Text = ""
End If
End Sub


2) J’ai modifié la procédure Sub « userform_Initialize() », dans toute sa partie finale pour écrire les informations du Userform sur la feuille « base » dans les colonnes P, Q, R et S. Si ce ne sont pas les bonne colonne, modifier la procédure Sub.
Voici le code de la fin de la procédure entre « With Worksheets("demandeur")
nomcon.RowSource = "'" & .Name & "'!" & .UsedRange.Columns(1).Offset(1).Address
End With » et “End sub”:

'Cellule liée au nom du concessionnaire
nomcon.ControlSource = "base!U2"
nomcon.Text = ""
'Cellule liée au titre du demandeur
titrecon.ControlSource = "base!EP2"
adressecon.Text = ""
'Cellule liée à l'adresse du demandeur
adressecon.ControlSource = "base!EQ2"
adressecon.Text = ""
'Cellule liée CP du demandeur
cpcon.ControlSource = "base!ER2"
cp.Text = ""
'Cellule liée à la ville du demandeur
villecon.ControlSource = "base!ES2"
villecon.Text = ""


Bon courage.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
pat40 pat40
86 contributions
Membre depuis le 04/03/2011
Envoyé le 12/12/2011 à 13:29


Bonjour,

Bonsoir,
J’ai écrit du code qui fonctionne, mais je ne garantit pas que les informations soient reportées dans les bonnes colonnes de la feuille « base », ni qu’elle y soient toutes. C’est à vous de voir en fonction du résultat souhaité.
En résumé :
1) J’ai créé une procédure Sub comme suit. C’est elle qui va afficher les détails du demandeur, dans le Userform pv, après le choix de celui-ci dans la liste déroulante. C’est sur le modèle de la procédure « ville1_Change() », utilisée pour la commune.

Private Sub nomcon_Change()
Dim rng As Range
Dim cel As Range
'Plage des noms des demandeurs concessionnaires
Set rng = Worksheets("demandeur").UsedRange.Columns(1)
'Chercher le demandeur choisi
On Error Resume Next
Set cel = rng.Find(nomcon.Text, lookat:=xlWhole)
If Not cel Is Nothing Then
'Cellule liée au titre du concessionnaire
titrecon.Text = cel.Offset(0, 1).Value
'Cellule liée à l'adresse du demandeur
adressecon.Text = cel.Offset(0, 2).Value
'Cellule liée CP du demandeur
cpcon.Text = cel.Offset(0, 3).Value
'Cellule liée à la ville du demandeur
villecon.Text = cel.Offset(0, 4).Value
Else
titrecon.Text = ""
adressecon.Text = ""
cp.Text = ""
villecon.Text = ""
End If
End Sub


2) J’ai modifié la procédure Sub « userform_Initialize() », dans toute sa partie finale pour écrire les informations du Userform sur la feuille « base » dans les colonnes P, Q, R et S. Si ce ne sont pas les bonne colonne, modifier la procédure Sub.
Voici le code de la fin de la procédure entre « With Worksheets("demandeur")
nomcon.RowSource = "'" & .Name & "'!" & .UsedRange.Columns(1).Offset(1).Address
End With » et “End sub”:

'Cellule liée au nom du concessionnaire
nomcon.ControlSource = "base!U2"
nomcon.Text = ""
'Cellule liée au titre du demandeur
titrecon.ControlSource = "base!EP2"
adressecon.Text = ""
'Cellule liée à l'adresse du demandeur
adressecon.ControlSource = "base!EQ2"
adressecon.Text = ""
'Cellule liée CP du demandeur
cpcon.ControlSource = "base!ER2"
cp.Text = ""
'Cellule liée à la ville du demandeur
villecon.ControlSource = "base!ES2"
villecon.Text = ""


Bon courage.



Bonjour
Merci pour ton aide, en fait le code que j'utilise est le bon (à un poil près) sauf qu'en faisant copier coller je n'ai pas réfléchi je l'avais mis au mauvais endroit (textbox villecon au lieu de nomcon). Comme d'habitue à se lire et relire on finit par être persuadé que c'est bon sans voir l'évidence

Merci encore et vraisemblablement à une prochaine

pat40 pat40
86 contributions
Membre depuis le 04/03/2011
Envoyé le 12/12/2011 à 13:37


Bonjour,

Re bonjour

j'ai vu que certains indiquaient la question résolue, merci de me dire comment il faut faire, cela peut aider donc internaute

merci

Claude40 Claude40
1 533 contributions
Membre depuis le 24/03/2010
Envoyé le 12/12/2011 à 13:41 Modifié par Claude40


Bonjour,

La notion de "résolue" est indiquée par les administrateurs du site en général à la lecture du dernier post de chaque sujet. Mais pour celà, il faut qu'il y ait un retour positif du demandeur. Dans notre cas, on peut aussi noter "résolu" pour le sujet "Bouton Option" sur ce même forum.
En cas de nouveau pb, il faudra donc ouvrir un nouveau sujet.
Bonne continuation.
Un bon exposé du problème, c'est déjà un grand pas vers la solution. Dans la mesure du possible, mes solutions sont testées, sur mon système actuel (W10 Pro version 1909), mais peuvent ne pas fonctionner sur tous les Pc
J_D J_D
10 736 contributions
Membre depuis le 12/11/2001
Envoyé le 12/12/2011 à 18:53


Bonjour,
Je marque le topic en résolu, il reste de toute manière ouvert [;)]
Je ne réponds pas aux messages privés non sollicités ! C'est pas toujours facile...
pat40 pat40
86 contributions
Membre depuis le 04/03/2011
Envoyé le 12/12/2011 à 19:11


Bonjour,

Bonjour,
Je marque le topic en résolu, il reste de toute manière ouvert [;)]



OK merci

Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum