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
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
mais il y a aucune feuille "bddcli" dans ton document!
Le nom de la feuille est "sheet1"
essaie comme ca
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