Recherche sur une feuil du classeur et non sur tous les onglets

Résolu
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012 - 17 nov. 2011 à 18:49
 Utilisateur anonyme - 18 nov. 2011 à 21:38
Bonsoir le forum,
J'ai trouvé ce morceau de code qui boucle une recherche sur tous les onglets du classeur actif. Hors je souhaiterais effectuer ma recherche sur la feuil3 uniquement. Voici le code :

[color=green]Private Sub CommandButton1_Click()
Dim F As Worksheet
Dim Plage As Range, C As Range
Dim T As String, Firstaddress As String
Dim x As Integer
ListBox1.Clear
T = Me.TextBox1
If T = "" Then Exit Sub
For Each F In Worksheets
With F
Set Plage = Application.Intersect(.UsedRange.Cells, .Range(.Cells(1, 1), .Cells(.Rows.Count, .Columns.Count)))
End With
Set C = Plage.Find(T, LookIn:=xlValues, LookAt:=xlPart)
If Not C Is Nothing Then
Firstaddress = C.Address
Do
With ListBox1
.AddItem F.Name
For x = 2 To 8
.List(.ListCount - 1, x - 1) = F.Cells(C.Row, x).Text
Next x
.List(.ListCount - 1, 8) = C.Address(False, False)
End With
Set C = Plage.FindNext(C)
Loop While Not C Is Nothing And C.Address <> Firstaddress
End If
Next F

If ListBox1.ListCount = 0 Then
MsgBox "Le Texte " & T & " n'a pas été trouvé" & vbLf & "Faites un essai sur une partie du nom", vbCritical, Sign
End If
End Sub


J'avoue avoir du mal à comprendre cette partie du code "Set Plage = Application.Intersect(.UsedRange.Cells, .Range(.Cells(1, 1), .Cells(.Rows.Count, .Columns.Count)))"
Peut-être est-ce la d'ou vient mon problème...

Merci de m'aider sur le sujet

eric

10 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2011 à 18:58
Bonjour,

Veux-tu bien t'efforcer dorénavant de présenter tes bouts de code indentés et entre balises code ? (c'est important).


Pour ta question :
Bé ! au lieu de boucler sur tes feuille, n'en traite qu'une seule !
For Each F In Worksheets
   With F


   end with
Next

devient

With sheets("le_nom_de_ta_feuille")


End with


je suis assez surpris car ta question révèle que tu copies sans réellement comprendre, voire analyser.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
Utilisateur anonyme
17 nov. 2011 à 19:09
Salut,

Quand tu fais:
For Each F In Worksheets


Veut dire qu'il lit toutes les feuilles.
Une manière "grossière" de le faire fonctionner serait:
For Each F In Worksheets
if f.name = "feuil3" then
.....
end if
next f




CF2i - Guadeloupe
Ingénierie Informatique
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2011 à 21:14
bé !
si tu es dans le bloc With sheets("le_nom_de_ta_feuille") ,
remplace donc F. par . (le F et le point par un point) !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2011 à 21:16
Veux-tu bien ouvrir ton aide VBA sur l'instruction With ?
Fais-le et tout devrait devenir clair dans ton esprit


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3

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

Posez votre question
Utilisateur anonyme
18 nov. 2011 à 13:07
Re:

C'est pas un truc du genre:
TreeView1.Nodes.Item(TreeView1.Nodes.Count - 1).Selected = True


Regarde un peu dans les codes du site tu vas surement trouver des exemples.

Cordialement

CF2i - Guadeloupe
Ingénierie Informatique
3
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
17 nov. 2011 à 21:09
Merci pour vos réponses.
Il est vrai que copier un morceau de code nécessite qu'on le comprenne avant de s'en servir. Le prb, c'est que j'ai essayé de le faire... Par exemple en essayant ceci en début de code :Dim F As ("feuil3") etc...
Je sais,je sais, petit joueur....
Par contre, en portant vos correction, je comprends maintenant un peu mieux le problème, bien que le code bloque à ce niveau :.AddItem F.Name
Il ne reconnait pas la variable!
Je sais également que...je suis nul... Mais je m'accroche
Bien à vous et merci encore


eric
0
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
18 nov. 2011 à 09:28
Merci pour vos réponses.
Il faut croire que ton ucfoutu est beaucoup moins foutue que la mienne !! J'y suis enfin arrivé grâce à vous. En effet, on pinaille souvent pour des broutilles et lorsque l'on a la solution, elle paraît évidente... Je vais donc pouvoir finaliser mon projet.
Pour info, je vais rechercher aujourd'hui comment récupérer le numéro de ligne ou se trouve la cellule active de ma feuil3 (activée par le code de recherche ci-dessus) pour renvoyer cette info à mon treeview. Le code suivant fonctionne, mais il faudrait que je l'affecte pour chaque cellule en changeant la valeur d'Item du treview ... Je pense qu'il y a plus simple..:

1) Private Sub Worksheet_SelectionChange(ByVal Target As Range)
2)If Selection.Value = "Nom recherché" Then UserForm1.TreeView1.Nodes.Item(46).EnsureVisible
3) End sub

Merci pour votre aide et merci à ucfoutu qui malgré son agacement reste de bon service !!!
eric
0
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
18 nov. 2011 à 10:26
Bon j'y suis arrivé avec cette simple ligne de code :
1)If Selection.Select Then UserForm1.TreeView1.Nodes.Item(ActiveCell.Row).EnsureVisible

Par contre, comment peut-on activer la ligne du treeview par code comme si l'on cliquait dessus?

Hum, j'espère avoir été compris....

eric
0
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
18 nov. 2011 à 21:25
Merci Acive d'avoir pris la peine de me répondre.
Après avoir bien cherché, une partie de mon code était mal placée. Antérieure au déroulement du treeview au lieu de postérieure...
Une petite usine à gaz en somme mais qui fonctionne vraiment bien.
Un merci ne suffit pas pour votre aide, mais une profonde reconnaissance s'impose.
A bientôt
eric
0
Utilisateur anonyme
18 nov. 2011 à 21:38
Salut,

Tu vois? et nous sommes tous bénévoles en plus.

une profonde reconnaissance s'impose

Juste le fait que tu utilises les balises quand tu nous envoie du code suffit (troisième icône à partir de droite)



CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous