Récupérer une feuille du classeur actif.........

cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 - 18 juin 2004 à 10:18
cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 - 18 juin 2004 à 11:15
Salut à tous!

J'ai créé un workbook Excel dans lequel j'ai plusieurs feuilles dont une qui s'appelle "Liste". J'ai créé, dans l'éditeur VBA, une DialogBox qui sera accessible de n'importe laquelle de ces feuilles. Quand j'appuie sur le bouton "Générer", il faut que dans mon code VBA je récupère la feuille "Liste" pour lire certaines cellules. C'est une questions stupide mais comment on fait pour dire que je veux la feuille "Liste" du worbook actif? J'ai essayé ça :
ActiveWorkbook.Sheets("Liste")
Mais quand je mets un . à la suite, il ne me propose plus rien alors qu'il faudrait que je puisse mettre .Range(...) à la suite.

Si quelqu'un peut m'aider c'est cool!

Merci d'avance!

5 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
18 juin 2004 à 10:28
ben c'ezst comme ca au bout d'un moment vb ne propose plus de menu pour choisir tes attribut, "écrit ton 'range' au bout du sheets kom si de rien nété et ca marchera très bien...

ActiveWorkbook.WorkSheets("Liste").Range...

voila

++
juva

Retrouvez une équipe de développeurs confirmés sur le tchate:
serveur : bastia.zefunChat.net
port : 6667
chan : #programmation
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
18 juin 2004 à 10:31
Même avec rien de proposé tu n'as pas essayé de continué ?
Normalement ça doit marcher.

Si tu veux que le soft te propose les propriétés/méthodes possible, travaille directement sur un objet du bon type

Dim xlSht as WorkSheet
Dim xlRg as Range

Set xlSht = ActiveWorkbook.Sheets("Liste")
Set xlRg = xlSht.Range(...)

Néanmoins, ce n'est pas parce que tu n'as plus les propositions automatiques que tu ne peux plus rien faire sur ton objet.

Cette instruction marche très bien
Set xlRg = ActiveWorkbook.Sheets("Liste").Range(...)
0
cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 1
18 juin 2004 à 10:57
Merci pour vos réponses. Je pensais que si je n'avais plus de propositions automatiques c'était parce que je ne pouvais plus rien faire...
J'ai encore un problème quand même... Je veux parcourir toute la colonne C. Pour cela j'ai fait:
Set xlSheets = ActiveWorkbook.Worksheets
i = 1
While xlSheets("Body").Range("c" & i).Value <> ""
instruction = xlSheets("Body").Range("c" & i).Value
MsgBox (instruction)
i = i + 1
Wend
Quand j'exécute mon code il me met: "Error: Subscript out of range" pour la ligne du While. Est-ce que c'est parcequ'il n'aime pas ma concaténation du caractère c avec l'entier i?

Merci pour votre aide!
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
18 juin 2004 à 11:07
Bonjour,

En fait ton xlSheets doit correspondre à une feuille de ton classeur.
Or ici, tu initialises xlSheets avec aucune feuille, puis tu fais xlSheets("Body").

Voilà ce qu'il faut que tu mettes :

Set xlSheets =  ActiveWorkbook.Worksheets ("Body") 
i  = 1
While xlSheets.Range("c" & i).Value <> ""
instruction = xlSheets.Range("c" & i).Value
MsgBox (instruction)
i = i + 1
Wend


Autre chose, tu devrais plutôt utiliser :
While Not IsEmpty(xlSheets.Range("c" & i))


Et si tu veux parcourir la colonne c tu pourrais même faire :

Set cellule = ActiveWorkbook.Worksheets("Body").Range("C1")

While Not IsEmpty(cellule)
instruction = cellule.Value
MsgBox (instruction)
Set cellule = cellule.Offset(1,0)
Wend


J'espère que j'ai répondu à ta question (même si je sais que je ne suis pas très claire dans mes explications :blush) )

Fanny
0

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

Posez votre question
cs_cissou06 Messages postés 124 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 16 mai 2007 1
18 juin 2004 à 11:15
Merci!
0