Find, sur toutes les feuilles du classeur
Résolu
LeDebutantVBAFou
-
LeDebutantVBAFou -
LeDebutantVBAFou -
Bonjour à tous,
Mon projet avance, doucement, mais avance! Me voilà face à un nouveau problème!
Grâce à mes recherches sur le forum j'ai réussi à faire un code qui me convient presque!
J'essaye d'apporter des modifications à un tableau (aux lignes du tableaux) via un userform.
Pour cela j'effectue la recherche sur la REF qui est en colonne A, ensuite je rempli les combobox et textbox du userform avec les valeurs de la ligne trouvée.
Ca fonctionne, mais la recherche ne se fait uniquement si la feuille active, j'aimerais que la recherche se fasse sur toutes les feuilles du classeur.
J'ai trouvé plusieurs piste sur les forums, mais impossible de l'adapter à mon cas.
Voici le code que j'utilise pour le moment.
Merci d'avance pour l'aide!!!!
Mon projet avance, doucement, mais avance! Me voilà face à un nouveau problème!
Grâce à mes recherches sur le forum j'ai réussi à faire un code qui me convient presque!
J'essaye d'apporter des modifications à un tableau (aux lignes du tableaux) via un userform.
Pour cela j'effectue la recherche sur la REF qui est en colonne A, ensuite je rempli les combobox et textbox du userform avec les valeurs de la ligne trouvée.
Ca fonctionne, mais la recherche ne se fait uniquement si la feuille active, j'aimerais que la recherche se fasse sur toutes les feuilles du classeur.
J'ai trouvé plusieurs piste sur les forums, mais impossible de l'adapter à mon cas.
Voici le code que j'utilise pour le moment.
Private Sub TextBox1_Afterupdate() 'Faire la recherche par REF
Dim ligne As Long
Set ws = ActiveSheet
Dim REF As Range 'Vérifier que la REF existe
Set REF = ([A2:A1048576].Find(what:=TextBox1.Value, LookAt:=xlWhole))
If REF Is Nothing Then
MsgBox "La REF n'existe pas"
TextBox1 = ""
Exit Sub
End If
ligne = ([A2:A1048576].Find(TextBox1.Value).Row) 'Trouve la Ligne ou se trouve la REF
TextBox2 = ws.Cells(ligne, 4)
TextBox3 = ws.Cells(ligne, 6)
TextBox4 = ws.Cells(ligne, 7)
TextBox5 = ws.Cells(ligne, 9)
TextBox6 = ws.Cells(ligne, 13)
TextBox7 = ws.Cells(ligne, 8)
ComboBox1 = ws.Cells(ligne, 2)
ComboBox2 = ws.Cells(ligne, 3)
ComboBox3 = ws.Cells(ligne, 5)
ComboBox4 = ws.Cells(ligne, 10)
ComboBox5 = ws.Cells(ligne, 11)
ComboBox6 = ws.Cells(ligne, 12)
End Sub
Merci d'avance pour l'aide!!!!
A voir également:
- Find, sur toutes les feuilles du classeur
- Comment faire un livret avec des feuilles a4 - Guide
- Bruler les feuilles de laurier - Guide
- Find and mount - Télécharger - Récupération de données
- Fusionner feuilles excel - Guide
- Imprimer un classeur excel sur mac - Guide
4 réponses
Bonjour
Essaies ceci
Cdlmnt
Essaies ceci
Private Sub TextBox1_Afterupdate() 'Faire la recherche par REF Dim ligne As Long, ws As Worksheet Dim REF As Object 'Vérifier que la REF existe For Each ws In ActiveWorkbook.Sheets Set REF = ws.[A2:A1048576].Find(what:=TextBox1.Value, LookAt:=xlWhole) If REF Is Nothing Then MsgBox "La REF n'existe pas" TextBox1 = "" Exit Sub End If ligne = REF.Row 'Trouve la Ligne ou se trouve la REF TextBox2 = ws.Cells(ligne, 4) TextBox3 = ws.Cells(ligne, 6) TextBox4 = ws.Cells(ligne, 7) TextBox5 = ws.Cells(ligne, 9) TextBox6 = ws.Cells(ligne, 13) TextBox7 = ws.Cells(ligne, 8) ComboBox1 = ws.Cells(ligne, 2) ComboBox2 = ws.Cells(ligne, 3) ComboBox3 = ws.Cells(ligne, 5) ComboBox4 = ws.Cells(ligne, 10) ComboBox5 = ws.Cells(ligne, 11) ComboBox6 = ws.Cells(ligne, 12) Exit for ' REF a été trouvé, on quitte Next ws End Sub
Cdlmnt
Bonjour,
tes ref sont numériques et un Textbox, comme son nom l'indique, te retourne une chaine.
Il faut donc la convertir :
eric
tes ref sont numériques et un Textbox, comme son nom l'indique, te retourne une chaine.
Il faut donc la convertir :
Set REF = ws.[A2:A1048576].Find(what:=cdbl(TextBox1.Value), LookAt:=xlWhole)
eric
Bonjour,
J'ai appliqué votre code mais malheureusement ça ne résout pas le problème.
La recherche ne se fait que sur la première page.
J'ai remarque que même si je lance depuis la 2ème page la recherche se fait également sur la première. Du coup je cherche un peu de ce coté la!
Merci pour l'aide en tout cas!!
J'ai appliqué votre code mais malheureusement ça ne résout pas le problème.
La recherche ne se fait que sur la première page.
J'ai remarque que même si je lance depuis la 2ème page la recherche se fait également sur la première. Du coup je cherche un peu de ce coté la!
Merci pour l'aide en tout cas!!
Bonjour,
Comment ça, ça ne résoud pas ton pb ?
Ta question était Ça m'indique que la référence n'existe pas. Autrement dit, REF is nothing dans tout les cas, même quand elle existe.
Ce pb est-il résolu ?
Maintenant si tu as 2 types de ref (textes ou numériques) il faut que tu fasses 2 find pour pouvoir dire que la ref n'existe pas.
J'ai remarque que même si je lance depuis la 2ème page la recherche se fait également sur la première.
C'est normal puisque c'est ce que tu as demandé :
j'aimerais que la recherche se fasse sur toutes les feuilles du classeur.
Ce que ccm t'a fait
eric
Comment ça, ça ne résoud pas ton pb ?
Ta question était Ça m'indique que la référence n'existe pas. Autrement dit, REF is nothing dans tout les cas, même quand elle existe.
Ce pb est-il résolu ?
Maintenant si tu as 2 types de ref (textes ou numériques) il faut que tu fasses 2 find pour pouvoir dire que la ref n'existe pas.
J'ai remarque que même si je lance depuis la 2ème page la recherche se fait également sur la première.
C'est normal puisque c'est ce que tu as demandé :
j'aimerais que la recherche se fasse sur toutes les feuilles du classeur.
Ce que ccm t'a fait
eric
Bonjour erric,
Merci pour ton intérêt!
08:32 j'étais pas encore bien réveillé il faut croire je me suis mal exprimé. J'ai dis également sur la première feuille mais je voulais dire UNIQUEMENT.
La recherche se fait bien sur la première mais pas du tout sur les autres feuilles. REF is nothing.
Dans le fichier ou je fais le test toutes les REF sont numériques.
Un exemple ci-joint: https://www.cjoint.com/c/ICfjGvFCs1d
Merci encore.
Merci pour ton intérêt!
08:32 j'étais pas encore bien réveillé il faut croire je me suis mal exprimé. J'ai dis également sur la première feuille mais je voulais dire UNIQUEMENT.
La recherche se fait bien sur la première mais pas du tout sur les autres feuilles. REF is nothing.
Dans le fichier ou je fais le test toutes les REF sont numériques.
Un exemple ci-joint: https://www.cjoint.com/c/ICfjGvFCs1d
Merci encore.
Tout d'abord merci pour ton aide! Tu m'as déjà aider à surmonter un soucis, donc vraiment un grand merci.
Pour ta solution cette fois ça ne fonctionne pas au premier coup!
Ça m'indique que la référence n'existe pas. Autrement dit, REF is nothing dans tout les cas, même quand elle existe.
J'ai essayé sur un fichier vierge avec le minimum nécessaire pour voir si cela venait d'un détail de mon projet, mais non, toujours la même réponse.
C'est d'ailleurs déjà le problème que j'avais lorsque j'ai essayé de comprendre via les réponses dans le forum, je m'étais dis que je n'arrivais pas à appliquer le code.
Aurais-tu une idée d'ou serait l'erreur?
Cordialement.
LeDebutantVBAFou qui en sait un peu plus à chaque fois grâce à vous!
Finalement, sur un fichier "vierge" ça fonctionne mais uniquement sur la première page, les REF que je met dans les autres pages ne sont pas trouvées.
Dans mon projet, la colonne à n'a aucun format spécial. Format Standard.
La méthode find fonctionne quand je fais la recherche uniquement sur une feuille