[déplacé VB6 -> VBA] Selection de feuille excel avec une macro [Résolu]

charlotte26mai 6 Messages postés mercredi 3 février 2010Date d'inscription 4 février 2010 Dernière intervention - 3 févr. 2010 à 12:59 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 4 févr. 2010 à 12:50
Bonjour,

je debute en VB , mon probleme est le suivant :

je voudrais selectionner une feuille de classeur excel a partir d'une cellule dans laquelle on rentre le nom de la feuille.

je ne sais pas si je suis tres clair, en gros par exemple:

mes feuilles sont 6012,6013,6014 et...

en saisissant dans une cellule le n°6013 et en cliquant sur un bouton je veux me rendre à la feuille 6013 et je veux pouvoir le faire pour n'importe quelle feuille

j'ai commencé à ecrire un algorithme
B8 étant la cellule de saisie


if range("B8")=6013 then
sheets("6013").select
end if

ca marche pour cette feuille , mais moi je veux pour n'importe quel n°

Pouvez vous m'aider?
Peut on integrer une variable et la selectionner? en tant que feuille

merci
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2010 à 13:09
3
Merci
Bonjour,
1) développant sous VBA et non sous VB.Net, tu aurais dû (important) ouvrir cette discussion dans le thème VBA !
2) ta syntaxe est simple :
sheets(range("B8").text).select


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2010 à 16:49
3
Merci
POuvre ton aide en lkigne sur l'objet WorkBook
Lis !
Il y a de surcroît un exemple on ne peut plus clair

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2010 à 13:28
0
Merci
Et surtout : lorsque l'on développe une application, c'est d'abord à l'intention de l'utilisateur (à qui on doit s'efforcer de simplifier la vie) !
Ainsi (selon ce principe sacro-saint) : on le lui demande pas de renseigner une cellule puis de cliquer sur un bouton ! (ce serait d'ailleurs moins compliqué de cliquer simplement sur l'onglet souhaité dans le bandeau des onglets !) ===>> on lui propose une liste de choix toute faite et l'utilisateur clique sur son chois, tout simplement .


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
charlotte26mai 6 Messages postés mercredi 3 février 2010Date d'inscription 4 février 2010 Dernière intervention - 3 févr. 2010 à 15:04
0
Merci
merci pour la reponse
c'est ce que je vouolais nickel

Autre question je rallonge mon problème,
au lieu de saisir le numéro de feuille j'ai prévu une liste de choix ça c'est bon .

par contre mon problème c'est que je choisi le numéro de feuille dans un classeur mais c'est pour ouvrir la feuille dans un autre , je pense que ce doit être possible

mes lignes de commandes donnent ceci :

sheets(range("B8").Text).select

mais B8 est dans le premier classeur alors que la feuille est dans le deuxième, peut on préciser le nom du classeur ou se trouve la cellule B8 ? car lorsque ma ligne de comande arrive je suis deja dans le deuxieme classeur.

merci
Commenter la réponse de charlotte26mai
charlotte26mai 6 Messages postés mercredi 3 février 2010Date d'inscription 4 février 2010 Dernière intervention - 3 févr. 2010 à 17:20
0
Merci
Rebonjour,

je crois que vous n'avez pas compris ma requete ou alors je ne trouve pas , trop evident apparement.

je veux garder la valeur de ma cellule b8 du premier classeur mais comme je bascule dans le deuxieme la cellule B8 n'a plus de valeur

alors svp dites moi comment faire ?

tel que:

-je suis dans le 1er classeur ou est saisi B8
-je bascule dans le 2ème
-sheets(range("B8").Text).select
et la, ca ne marche pas car ca va rechercher la valeur de B8 dans le 2éme

merci
Commenter la réponse de charlotte26mai
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 3 févr. 2010 à 18:27
0
Merci
Il te suffit de préciser le nom de la feuille lorsque tu t'adresse au Range :
If Sheets("ma feuille 1").Range("B8") = 6013 Then 
    Sheets("6013").Select 
End If 
(à vérifier)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 3 févr. 2010 à 20:03
0
Merci
S'agissant de classeurs différents :
Je t'avais invité à ouvrir ton aide en ligne sur l'objet WokBook et à lire l'exemple qui accompagne cette rubrique de ton aide.
Tu y aurais découvert l'utilisation de la collection WorkBooks.
Tu n'en as apparemment rien fait, puisque je ne vois rien, dans ton code, qui permet de pointer vers un autre classeur ....
Et si tu commençais par ouvrir, comme je t'y ai invité, cette aide en ligne sur l'objet Worbooks ?
Je veux voir le mot WorkBooks dans ton code

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
charlotte26mai 6 Messages postés mercredi 3 février 2010Date d'inscription 4 février 2010 Dernière intervention - 4 févr. 2010 à 09:23
0
Merci
Salut ucfoutu,

je vous mets mes lignes de commande
DAED Vierge est le classeur ou je saisie B8
BUDGET est le classeur ou se trouve la feuille désignée par B8
Mais quand j'arrive sur BUDGET , B8 prend la valeur qui se trouve en B8 de BUDGET

Workbooks.Open Filename:="BUDGET.xls"
Windows("DAED Vierge.xls").Activate
Windows("BUDGET.xls").Activate
Workbooks(DAEDVierge(Sheets(Range("B8").Text).Select
Rows("7:7").Select
Selection.Insert Shift:=xlDown

Quelle commande dois je taper pour que B8 garde sa valeur de départ?

merci
Commenter la réponse de charlotte26mai
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 4 févr. 2010 à 09:41
0
Merci
Tes explications me laissent assez rêveur :
- tu dis :
DAED Vierge est le classeur ou je saisie B8

et plus haut, tu dis que tu veux pointer vers une feuille d'un autre classeur !
et cependant, tu cherches à pointer vers la feuille où tu es, par :

Workbooks(DAEDVierge(Sheets(Range("B8").Text).Select 


syntaxe au demeurant assez sur^prenante et non conforme à l'exemple de pointage que tu aurais trouvé dans ton aide en ligne, si tu l'avais enfin ouverte !
Workbooks(DAEDVierge(
ne veut rien dire,
pas plus, d'ailleurs, que Workbooks(DAEDVierge) ne voudrait dire quoi que ce soit !
Existent 2 possibilités :
soit : Workbooks(index_du_classeur)
soit : Workbooks("nom_du_classeur")
et je passe sur le reste de ta syntaxe000 elle montre que tu n'as pas encore commencé à lire et à comprendre que le signe . doit être utilisé entre un objet et ses propriétés... (or la collection WorkBooks est une collection d'objets WorkBook et donc (par exemple) : Workbooks("nom_du_classeur") est un objet ...
Tu as besoin d'apprendre les rudiments avant de continuer à développer .
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
charlotte26mai 6 Messages postés mercredi 3 février 2010Date d'inscription 4 février 2010 Dernière intervention - 4 févr. 2010 à 10:41
0
Merci
quand je dis que je debute c'est vrai c'est pas pour rien

Apparement à la premiere syntaxe que j'ai demandé la réponse à été immédiate car vous connaissiez la réponse , je vous demande un changement dse classeur et la vous me dites que je ne lis pas l'aide en ligne , je vopus dis que je n'ai pas compris et vous me dites de'apprendre les rudiments , je vous dmande juste une solution.

si vous ne la connaissez pas dites le , il me semble que les forums sont la pour s'aider mais bon merci je vais me débrouiller apprement


cordialement
Commenter la réponse de charlotte26mai
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 4 févr. 2010 à 10:50
0
Merci
Excuse-moi, mais je t'abandonne là !
Bien sûr que je connais la réponse !
Et bien sûr que tu la connaîtrais également si tu t'étais servi, comme je te le demandais, de ton aide en ligne !
Et bien sûr que j'estime que mon message précédent était plus qu'une simple piste
Et enfin et surtout : bien sûr que je n'aime pas agir ainsi : donner une syntaxe qu'il suffira ensuite de copier-coller (sans même chercher à comprendre !
Désolé, ami, vraiment ...
Bonne chance.

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 4 févr. 2010 à 10:57
0
Merci
Un dernier mot :
Voilà, entre autres, ce que tu aurais trouvé dans ton aide en ligne :
L'exemple suivant montre comment activer la feuille Sheet1 dans le classeur intitulé Cogs.xls (le classeur doit être déjà ouvert dans Microsoft Excel).

Visual Basic pour Applications
Workbooks("Cogs.xls").Worksheets("Sheet1").Activate


Là, il est question d'activer toute une feuille.
Le reste (pour ce que toi, tu cherches à faire) est vraiment trop simple et trop évident pour qui a bien voulu s'intéresser un tant soit peu aux rudiments de VBA/Excel (et permets-moi d'insister sur ce point fondamental)
Tu es débutant ? Pour ton information : moi également sous VBA (promis juré) et je suis déjà mille fois plus loin !
Voilà !

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
charlotte26mai 6 Messages postés mercredi 3 février 2010Date d'inscription 4 février 2010 Dernière intervention - 4 févr. 2010 à 12:44
0
Merci
je suis debutant mais pas au point de ne pas savoir ouvrir une feuille d'un autre classeur, la je pense que vous me prenez pour un guignol.
Alors votre syntaxe je la connais, je l'ai deja utilisé plusieurs fois, mais je ne vois pas comment faire pour oouvrir une feuille d'un classeur avec les donnees d'un autre c'est tout.

Et pour votre gouverne, je ne fais pas que du copier coller comme vous dites , sinon ca ne sert a rien de vouloir programmer si on ne fait que recopier.

Sur ce, je vous souhaite une bonne journée!
Commenter la réponse de charlotte26mai
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 4 févr. 2010 à 12:50
0
Merci
Désolé, mais quand on écrit ceci :
Workbooks(DAEDVierge(Sheets(Range("B8").Text).Select 

on ne peut prétendre cela ;
Alors votre syntaxe je la connais, je l'ai deja utilisé plusieurs fois


Bref ...
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.