Excel - VBA - Nom de feuille

nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007 - 28 juin 2004 à 09:55
nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007 - 28 juin 2004 à 11:09
Et voila, le lundi c'est reparti....

Bijour tout le monde, mon problème est simple, j'ai un classeur excel qui contient des feuilles. Le nom d'une de ces feuille change tout le temps mais contient toujours une chaine de caractère précise. Je veux récupérer des données de cette feuille, et pour ce faire je fais un
sheets("Ma_Feuille").activate
Donc ma question :
Comment selectionner une feuille sans connaitre son nom mais en connaissant une chaine de caractère faisant partie de son nom ?

Merci d'avance !!

:-p :-p :-p :-p :-p :-p :-p :-p
Nag
ICQ# : 132028600
msn = giraudnba@msn.com
:-p :-p :-p :-p :-p :-p :-p :-p

3 réponses

juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
28 juin 2004 à 10:18
il fo recup l'indice de la feuille concernée

dim TaChaine 'contien ske le nom doit contenir
dim trouve as boolean

trouve=false
i=1 (1ere feuille)
while i <= activeworkbook.worksheets.count and trouve=false
if InStr(1,activeworkbook.worksheets(i).Name, TaChaine) <>0 then trouve=true
endif
i=i+1
Wend

l'indice de la feuille est = a i-1

sheets(i-1).activate

ou alors
nom=activeworkbook.worksheets(i-1).Name
sheets(nom).activate

fin voila je pense ke ta compris le principe

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
28 juin 2004 à 10:37
Bonjour,

tu peux faire comme cela :
For Each feuille In ActiveWorkbook.Sheets
If InStr(1, feuille.Name, "toto") Then feuille.Activate: Exit For
Next feuille


Fanny
0
nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007
28 juin 2004 à 11:09
Merci à vous tous pour vos réponses rapide, j'ai donc fait un mixe de tout ça, et pour ceux qui tomberaient sur la discution, ce la donne :

Sub Find_Sheet(class, what)

'On se met sur le classeur
Workbooks(class).Activate
nb_sheet = Sheets.Count

'On parcourt les feuilles pour trouver la bonne
For i = 1 To Sheets.Count
    'On recherche la chaine what dans les noms de feuilles
    If InStr(UCase(Sheets(i).Name), what) <> 0 Then Exit For
Next i

'On enregistre le nom de la feuille dans Sheet_Name (variable public)
Sheet_Name = Sheets(i).Name

End Sub


Merci encore...

:-p :-p :-p :-p :-p :-p :-p :-p
Nag
ICQ# : 132028600
msn = giraudnba@msn.com
:-p :-p :-p :-p :-p :-p :-p :-p
0
Rejoignez-nous