Bouton rechercher d'un formulaire qui ne s'éxécute pas

Bonjour ou Bonsoir à tous

Merci à la communauté qui m'a déjà résolu pas mal de petits soucis VBA

Je suis en train de faire un formulaire en suivant un mix de vidéos-tutoriels sur YouTube. La plupart des codes fonctionnent à merveille.

Cependant, je sèche pour le code pour "rechercher" une donnée existante et mettre à jours mes champs de zone de texte lorsque la donnée est trouvée.

Voici le code

Dim isearch As Long, i As Long
isearch = Worksheets("sheet1").Range("a1").CurrentRegion.Rows.Count
For i = 1 To isearch

If Trim(sheet1.Cells(i, 1)) <> Trim(txtRecherche.Text) And i = isearch Then
MsgBox "La donnée recherchée n'existe pas. Veuillez rentrer une donnée valide !", vbOKOnly + vbCritical, "Confirmation Système"
txtRecherche.Text = ""
txtRecherche.SetFocus
End If
If Trim(sheet1.Cells(i, 1)) = Trim(txtRecherche.Text) Then
txtClient.Text = sheet1.cell(i, 1)
txtCivilite.Text = sheet1.cell(i, 2)
txtNom.Text = sheet1.cell(i, 3)
txtPrenom.Text = sheet1.cell(i, 4)
txtAdresse.Text = sheet1.cell(i, 5)
txtCode.Text = sheet1.cell(i, 6)
txtLocalite.Text = sheet1.cell(i, 7)
cbxFidelite.Text = sheet1.cell(i, 8)
txtAge.Text = sheet1.cell(i, 9)
txtRemise.Text = sheet1.cell(i, 10)
End If

Excel m'indique un debogage 424 , et me met en jaune cette ligne-ci

If Trim(sheet1.Cells(i, 1)) <> Trim(txtRecherche.Text) And i = isearch Then

Pour ceux qui sont motivés, il me reste deux choses secondaires à corriger à mon formulaire:

  • la vue de ma listbox avec une barre de défilement bcp trop grande par rapport aux données entrées (j'ai entré 100 données, mais ma rowsource compte aller jusque quasi 2000...)
  • le bouton rajouter, où les données elles ne s'affichent pas dans la base de données à la suite de la dernière ligne non-vide.

Merci pour votre aide. J'y adjoins un fichier.

Et si nécessaire, pour les deux autres problème, je peux créer un autre sujet pour chacun d'eux.

Cordialement,

Lucrob

22formufactu.xlsm (112.51 Ko)

Salut lucorb,

sheet1.Cells

et

sheet1.Cell

????

remplace les avec:

Feuil1.Cells

Pour le reste je ne suis pas assez motivé , c'est trop tôt pour moi

@++

bonjour,

corrigé en renommant ma feuille "bddcli", et en mettant des S aux "cell" pour qu'ils deviennent "cells" (Excel les a d'ailleurs reconnu), cependant, toujours le même souci, et Excel me souligne en jaune toujours le mode code.

Merci...

lucrob

renommer la feuille ne va pas regler le problème!

Dim isearch As Long, i As Long
isearch = Worksheets("bddcli").Range("a1").CurrentRegion.Rows.Count
For i = 1 To isearch

If Trim(Feuil1.Cells(i, 1)) <> Trim(txtRecherche.Text) And i = isearch Then
MsgBox "La donnée recherchée n'existe pas. Veuillez rentrer une donnée valide !", vbOKOnly + vbCritical, "Confirmation Système"
txtRecherche.Text = ""
txtRecherche.SetFocus
End If
If Trim(Feuil1.Cells(i, 1)) = Trim(txtRecherche.Text) Then
txtClient.Text = Feuil1.cells(i, 1)
txtCivilite.Text = Feuil1.cells(i, 2)
txtNom.Text = Feuil1.cells(i, 3)
txtPrenom.Text = Feuil1.cells(i, 4)
txtAdresse.Text = Feuil1.cells(i, 5)
txtCode.Text = Feuil1.cells(i, 6)
txtLocalite.Text = Feuil1.cells(i, 7)
cbxFidelite.Text = Feuil1.cells(i, 8)
txtAge.Text = Feuil1.cells(i, 9)
txtRemise.Text = Feuil1.cells(i, 10)
End If

Si tu veux travailler avec le nom de la feuille:

Dim isearch As Long, i As Long
isearch = Worksheets("bddcli").Range("a1").CurrentRegion.Rows.Count
For i = 1 To isearch

If Trim(Worksheets("bddcli").Cells(i, 1)) <> Trim(txtRecherche.Text) And i = isearch Then
MsgBox "La donnée recherchée n'existe pas. Veuillez rentrer une donnée valide !", vbOKOnly + vbCritical, "Confirmation Système"
txtRecherche.Text = ""
txtRecherche.SetFocus
End If
If Trim(Worksheets("bddcli").Cells(i, 1)) = Trim(txtRecherche.Text) Then
txtClient.Text = Worksheets("bddcli").Cells(i, 1)
txtCivilite.Text = Worksheets("bddcli").Cells(i, 2)
txtNom.Text = Worksheets("bddcli").Cells(i, 3)
txtPrenom.Text = Worksheets("bddcli").Cells(i, 4)
txtAdresse.Text = Worksheets("bddcli").Cells(i, 5)
txtCode.Text = Worksheets("bddcli").Cells(i, 6)
txtLocalite.Text = Worksheets("bddcli").Cells(i, 7)
cbxFidelite.Text = Worksheets("bddcli").Cells(i, 8)
txtAge.Text = Worksheets("bddcli").Cells(i, 9)
txtRemise.Text = Worksheets("bddcli").Cells(i, 10)
End If

J'ai tenté de copier le code, mais ne fonctionne toujours pas.

Erreur 9 cette fois ci, et Excel me souligne ce code

isearch = Worksheets("bddcli").Range("A1").CurrentRegion.Rows.Count

Une idée ?

J'ai renommé toutes les feuilles venant des tous les codes par "bddcli" pour garder la cohérence (car avec un mix de tout, forcément, ça n'ira jamais)

Merci de l'aide

Lucrob

4formufactu.xlsm (104.93 Ko)

mais il y a aucune feuille "bddcli" dans ton document!

Le nom de la feuille est "sheet1"

essaie comme ca

4formufactu-v1.xlsm (100.45 Ko)

fonctionne parfaitement , merci beaucoup

en outre, je vais créer d'autres post pour résoudre les problèmes énoncés en dessous dans le premier post (ajouter une donnée, et résoudre le problème d'affichage de listbox)

merci, bonne journée à vous

Rechercher des sujets similaires à "bouton rechercher formulaire qui execute pas"