"bouton" rechercher d'un formulaire qui ne s'éxécute pas Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
l
lucrob
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 13 octobre 2019
Version d'Excel : 2016

Message par lucrob » 19 janvier 2020, 21:46

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
formufactu.xlsm
le formulaire concerné au problème s'appelle "frmform"
(112.51 Kio) Téléchargé 5 fois
m
m3ellem1
Membre impliqué
Membre impliqué
Messages : 1'815
Appréciations reçues : 163
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 20 janvier 2020, 03:29

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 :)

@++
À partir d'hier, j'ai décidé de ne plus expliquer les solutions proposées et de ne plus répondre aux MP!
l
lucrob
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 13 octobre 2019
Version d'Excel : 2016

Message par lucrob » 20 janvier 2020, 07:45

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
m
m3ellem1
Membre impliqué
Membre impliqué
Messages : 1'815
Appréciations reçues : 163
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 20 janvier 2020, 08:24

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
À partir d'hier, j'ai décidé de ne plus expliquer les solutions proposées et de ne plus répondre aux MP!
l
lucrob
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 13 octobre 2019
Version d'Excel : 2016

Message par lucrob » 20 janvier 2020, 08:40

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
formufactu.xlsm
(104.93 Kio) Téléchargé 1 fois
m
m3ellem1
Membre impliqué
Membre impliqué
Messages : 1'815
Appréciations reçues : 163
Inscrit le : 18 décembre 2018
Version d'Excel : 2016

Message par m3ellem1 » 20 janvier 2020, 08:43

mais il y a aucune feuille "bddcli" dans ton document!
Le nom de la feuille est "sheet1"

essaie comme ca
formufactu_v1.xlsm
(100.45 Kio) Téléchargé 3 fois
À partir d'hier, j'ai décidé de ne plus expliquer les solutions proposées et de ne plus répondre aux MP!
l
lucrob
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 13 octobre 2019
Version d'Excel : 2016

Message par lucrob » 20 janvier 2020, 11:01

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
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message