Excel vba bouton recherche

Résolu/Fermé
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 - Modifié le 23 sept. 2022 à 12:44
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 6 oct. 2022 à 18:18

Bonjours a tout le forum,

D'abord merci le forum ça dépanne bien quand ont est dans la mouise.

voilà pourquoi je post, j'ai fait un formulaire de saisie pour alimenter une base de donnée faite avec EXCEL.

J'ai mis un bouton de recherche adhérent, mais je ne sais pas comment le faire fonctionner.

je vous demande juste  qu'on m' explique la procédure.

Moi je pensai que c' était l' inverse du bouton ajouter adhérent.

je vous joint un bout du  code que j'ai fait.

merci d' avance pour votre aide précieuse que vous m" apporterez.

If MsgBox("Confirmez-vous l'adhésion?", vbYesNo, "Demande d'ajout") = vbYes Then

For Each ctrl In frmCivilite.Controls 'Code pour faire fonctionner les boutons options'
If ctrl.Value = True Then

     L = Sheets("BaseDA").Range("A65536").End(xlUp).Row + 1
        
        Range("A" & L).Value = lblDateAdhe '1
        Range("B" & L).Value = ctrl.Caption '2
        Range("C" & L).Value = txtNom '3
        Range("D" & L).Value = txtPrenom '4
        Range("E" & L).Value = txtAdresse '5
        Range("F" & L).Value = txtPhone '6
        Range("G" & L).Value = txtEmail '7
        Range("H" & L).Value = txtDateNai '8
        Range("I" & L).Value = CCur(Me.txtCotisation) '9
        Range("J" & L).Value = CCur(Me.txtPayer) '10
        Range("L" & L).Value = MoisDu '12
        Range("M" & L).Value = cboMoyenPai '13
        
       
                Unload Me
             
    End If
    
        Next
  
    End If

End Sub
 
__________________________________________________________________________________________
         
'Bouton : Pour retrouver un adhérent par nom'

Private Sub btnChercher2_Click()


Do Until ActiveCell = CLng(Me.txtNom)
    ActiveCell.Offset(3, 0).Select

    Loop

        lblDateAdhe = Range("A" & L).Value  '1
        ctrl.Caption = Range("B" & L).Value '2
        txtNom = Range("C" & L).Value       '3
        txtPrenom = Range("D" & L).Value    '4
        txtAdresse = Range("E" & L).Value   '5
        txtPhone = Range("F" & L).Value     '6
        txtEmail = Range("G" & L).Value     '7
        txtDateNai = Range("H" & L).Value   '8
        Me.txtCotisation = Range("I" & L).Value  '9
        Me.txtPayer = Range("J" & L).Value    '10
        MoisDu = Range("L" & L).Value       '12
        cboMoyenPai = Range("M" & L).Value  '13
  
End Sub
A voir également:

18 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 sept. 2022 à 13:36

Bonjour,

Eviter au maximum les boucles pour une recherche

Méthode find dans VBA - Recherche de données sous Excel (commentcamarche.net)

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
Modifié le 23 sept. 2022 à 19:23

bonjour ,

Merci pour ta réponse je vais aller voir cet méthode find dans VBA et je revient  dire si ça ma aider.

Je joint une photo de mon formulaire

0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
25 sept. 2022 à 10:10

bonjour,

la valeur de L est indéterminée dans btnChercher2_Click().

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
Modifié le 26 sept. 2022 à 14:36

bonjour a tous ,

d'abord merci de bien vouloir vous pencher sur mon problème.

J'ai étudié la "méthode Find dans VBA"  comme on me l'a suggérer et j'ai fais le code ci-joint, mais j'ai une erreur de compilation " Membre de méthode ou de donnée introuvable j'ai le mot  "ctrl" surligner a la ligne " frmsaisie.ctrl.Caption = Range("B" & L).Value " , j'aimerais bien que l'on m'explique le pourquoi du comment , faut dire que je me débrouille moyennement en Excel VBA .

'Bouton : Pour retrouver un adhérent par nom'

Private Sub btnChercher2_Click()

Dim strFindWhat As String
 strFindWhat = txtNom.Text
  
    L = Sheets("BaseDA").Range("C2:C65536").End(xlUp).Row

    Cells.Find(What:=strFindWhat, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Select
            
    If MsgBox("Nom pas trouvé !", vbInformation + vbOKOnly, "CHERCHER") Then


        frmsaisie.lblDateAdhe = Range("A" & L).Value  '1
        frmsaisie.ctrl.Caption = Range("B" & L).Value '2
        frmsaisie.txtNom = Range("C" & L).Value       '3
        frmsaisie.txtPrenom = Range("D" & L).Value    '4
        frmsaisie.txtAdresse = Range("E" & L).Value   '5
        frmsaisie.txtPhone = Range("F" & L).Value     '6
        frmsaisie.txtEmail = Range("G" & L).Value     '7
        frmsaisie.txtDateNai = Range("H" & L).Value   '8
        frmsaisie.Me.txtCotisation = Range("I" & L).Value  '9
        frmsaisie.Me.txtPayer = Range("J" & L).Value    '10
        frmsaisie.MoisDu = Range("L" & L).Value       '12
        frmsaisie.cboMoyenPai = Range("M" & L).Value  '13
  
   End If
  
End Sub
0

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

Posez votre question
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
26 sept. 2022 à 18:03

Bonjour,

frmsaisie.ctrl.Caption = Range("B" & L).Value

C'est un objet de l'userform ou? 

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
Modifié le 26 sept. 2022 à 18:31

Bonjour,

c’est pour enregistrer dans la base de données  Mr ou Mme et c’est dans l’userform.

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 sept. 2022 à 10:47

Bonjour,

Tiut a fait Thierry, le nom de cet objet est bien ctrl?

A defaut pouvez vous mettre votre fichier a dispo

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES, mais des donnees quand meme
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 27 sept. 2022 à 14:55

Au fait, CTRL label  ou textbox ou checkbox?

0
ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
27 sept. 2022 à 15:27

Bonjour le fil,

J'ai l'impression que le ctrl est hérité de la boucle For Each et que potentiellement celui ci n'a rien a faire ici. 

Toute fois avec un exemple de fichier, on pourrait y voir plus clair. 


0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
27 sept. 2022 à 21:04

Bonjour Ozone

Ça roule ?

En effet CTRL est un reliquat de la procédure ajout. Sûrement un copier/coller de la dite procédure.

Pour les boutons option il doit mettre à true le bouton dont le caption est égal à range("B" & etc

Par contre L n'est pas la bonne ligne puisque c'est la ligne de la dernière cellule non vide.

La "bonne" ligne est le résultat du find si trouvé.

La logique de la procédure de recherche est à revoir

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
28 sept. 2022 à 16:08

Re-bonjour à tous.

Un grand merci à tous de vous pencher sur mon cas.

Comme suggérer j'ai mis mon fichier a l'adresse suivante :  https://www.cjoint.com/c/LICnSr42ZE6

Pour rappel, je n'arrive pas  à faire fonctionner le bouton Rechercher, peut-être que mon code  c'est pas ça que j'aurai du faire.

salutations cordiales.

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 28 sept. 2022 à 18:30

Bonjour,

Je recupere le fichier et regarde la chose

Suite:

Il est possible de valider un ajout avec un nom saisi, civilite et rien d'autre!

La recherche par find n'est pas la bonne

je vous arange ca 

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
28 sept. 2022 à 18:59

Re,

fichier modifie pour recherche et ajout sans for each

 https://www.cjoint.com/c/LICq4N2U5Mg

Z'avez pas,mal de boulot pour eviter les erreurs VBA et autres

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
29 sept. 2022 à 10:35

Bonjour,

le fichier que j'ai mis a dispo fait la recherche seulement avec le Nom.

C'est un peu different si Nom et Prenom

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
1 oct. 2022 à 18:14

Bonjour ,

Effectivement il y a plusieurs fois le même nom dans la base, ça serai bien d'ajouter le prénom si nécessaire.

Si t'a un bout de code je suis preneur, sinon ton code fonctionne très bien.

Faut dire que c'est la première fois que je fais un formulaire de saisie, d'ordinaire je tape directement les données dans la base.

Je crois que je vais prendre des cours Excel  VBA, car je m'y intéresse de plus en plus.

encore une fois je te remercie pour tes réponses pertinentes et ta patience.

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 2 oct. 2022 à 09:48

Bonjour,

je te remercie pour tes réponses pertinentes et ta patience

Y a pas de quoi

fichier avec nom et prenom pour le recherche: https://www.cjoint.com/c/LJchKHfm1Fg

Modif: code boutons ajout, recherche, modification, suppression

Dans l'Userform frmSaisie, j'ai ajoute une listview pour visualisation de la base histoire de s'amuser. 

Vous pouvez regarder dans l'Userform UF_Gestion_RDV_R_Tel_Val les possibiltes qu'une Listview apporte

Cette Userform fait parti d'un fichier que j'ai code pour une personne sur CCM

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
Modifié le 3 oct. 2022 à 01:19

Bonjour,

C'est super ce que tu as fais, je vais étudier attentivement ton code, mais il y a deux  problèmes :

1° > Maintenant quand je clic sur sur le bouton ajouter j'ai le message d'erreur suivant : 'Erreur de compilation : référence incorrect ou non qualifiée'

 2°> Quand je clic sur le bouton modifier ça efface la ligne.

 J'aimerai Une explication histoire de comprendre.

En attendant je vais essayer de trouver par moi-même.

Cordialement.

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 3 oct. 2022 à 11:50

Bonjour,

 2°> Quand je clic sur le bouton modifier ça efface la ligne.

Ben pas chez moi!

Fichier modifie pour 1, mise a jour base et mise a jour listview comprise:  https://www.cjoint.com/c/LJdjKvq54Ug

Actuelement vous pouvez ajouter x fois le meme adherent sur ajout ou apres recherche

0
patordi Messages postés 38 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 1 décembre 2022 1
6 oct. 2022 à 17:00

Bonjour,

Tout fonctionne parfaitement, sincèrement je te remercie, je vais clôturer la discutions et j’en ouvrirai une autre si nécessaire.

cordialement.

0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
6 oct. 2022 à 18:18

Bonjour,

Ok, ca roule

0