Capturer le nom d'une feuille à l'aide de Application.Inputbox

Résolu
nairolftessub Messages postés 7 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 26 octobre 2007 - 6 déc. 2005 à 14:46
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 8 déc. 2005 à 10:22
Bonjour. Je cherche à récupérer le nom d'une feuille avec la commande Application.InputBox dans VBA, mais je me heurte à un message d'erreur "Votre formule contient une référence externe non valide". Il s'agit certainement d'une erreur de "type", mais je ne trouve pas lequel. Quelqu'un peut-il m'aider ? Merci d'avance.

Exemple raccourci:

sub test()
NomFeuille = Application.InputBox("Nom de la feuille ?",,Type:=0)
Sheets(NomFeuille).Select
end sub

10 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
7 déc. 2005 à 15:39
ok je comprend mieux ton probleme

je croyais que l'utilisateur devait saisir a la main le nom de la feuille.

d'apres ce que je comprend, tu veux qu'il clique directement sur la feuille a supprimer.

je pense que le inputbox n'est pas trop fait pour ca.
il attend une valeur, et tu lui place une reference (le R1 corespondant a la reference d'une cellule)

si tu veux vraiment proceder ainsi, a la rigueur e recupere pas le contenu de ta inputbox, mais supprime directement la feuile active apres.

enfin c'est pas terrible comme solution.

soit tu invite l'utilisateur a rentrer le nom de la feuille a la main, soit tu crée une forme avec un menu déroulant qui contient toutes les feuille, et l'utilisateur doit choisir avant de valider. si tu as le temps je pense que cette deuxieme solution est la mieux
3
nostra78 Messages postés 137 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 6 décembre 2005
6 déc. 2005 à 15:03
Set NomFeuille = ...
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
6 déc. 2005 à 15:25
salut

je t'ai fait cette fonction, elle te permet de verifier aussi que le nom de la feuille saisi existe bien.
tu peux l'adapter a ta sauce...

Public Function SelectionneFeuille(nomFeuille As String) As Boolean
'tente de selectionner la feuille dont le nom est placé en parametre, et renvoi TRUE si l'opération a réussi
Dim feuille As Worksheet


SelectionneFeuille = True
For Each feuille In ThisWorkbook.Worksheets
If feuille.Name = nomFeuille Then
feuille.Select
Exit Function
End If
Next
MsgBox "La feuille " & nomFeuille & " n'existe pas !"
SelectionneFeuille = False
End Function
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
6 déc. 2005 à 16:01
Bonjour,

C'est ta macro qui n'est pas bonne.Celle-ci fonctionne.



Sub test()

Dim NomFeuille

NomFeuille = InputBox("Nom de la feuille ?")

Sheets(NomFeuille).Select

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0

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

Posez votre question
nairolftessub Messages postés 7 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 26 octobre 2007
7 déc. 2005 à 08:36
Bonjour,
Merci à tous pour vos réponses. Après tests, aucune ne convient. Celle de [auteurdetail.aspx?ID=35535 aieeeuuuuu] m'a montré comment créer une fonction. Méthode que je n'avais pas encore utilisée.
Je ré-explique mieux mon problème:
J'affiches des résultats de calculs dans plusieurs feuilles.
J'aimerai pouvoir supprimer ces résultats uniquement dans une de ces feuille, en sélectionnant celle-ci dans le classeur.
En utilisant : Application.InputBox , je peux sélectionner la feuille, mais le résultat affiché dans l'InputBox est: ='R1'! et me donne une erreur si je valide, alors que moi j'aimerai avoir comme résultat, uniquement R1.
Merci pour vos réponses.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
7 déc. 2005 à 11:18
qu'entends tu par :
le resultat affiché par la inputbox est ='R1'
c'est dans ton programme que tu défini le contenu de ta inputbox

essaie de nous definir clairement ce que tu veux faire, et eventuellement mets nous un peu de code qu'on comprenne ce qui va pas, car la je vois pas trop quel est ton probleme. en fait je ne comprends pas d'ou sort le ='R1'
0
nairolftessub Messages postés 7 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 26 octobre 2007
7 déc. 2005 à 11:40
Il s'agit de la fonction "Application.InputBox" qui affiche une InputBox dans Excel et permet de pointer une cellule ou un onglet en fonction du type défini. Dans mon cas, lorsque je clique sur l'onglet, la réponse indiquée dans la InputBox est 'R1'!.
Voici le code utilisé:

Dim NomFeuille As String
' Sélection de la feuille à supprimer
NomFeuille = Application.InputBox("Indiquez la feuille de résultat à supprimer !", "Indiquer feuille", "R1")
SelectionneFeuille (NomFeuille)
On Error GoTo Fin
Sheets(NomFeuille).Select
Fin:
Range("A1").Select
Sheets("1").Select
End Sub

Public Function SelectionneFeuille(NomFeuille As String) As Boolean
Dim Feuille As Worksheet
SelectionneFeuille = True
For Each Feuille In ThisWorkbook.Worksheets
If Feuille.Name = NomFeuille Then
Feuille.Select
Exit Function
End If
Next
MsgBox "La feuille " & NomFeuille & " n'existe pas !"
SelectionneFeuille = False
End Function
0
nairolftessub Messages postés 7 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 26 octobre 2007
7 déc. 2005 à 13:53
Petite précision: La réponse indiquée dans la InputBox est : ('R1'!). Le point d'exclamation n'est pas la fin de ma phrase.
J'ai aussi essayé avec la ligne de code suivante:

Set NomFeuille = Application.InputBox("Indiquez la feuille de résultat à supprimer !", "Indiquer feuille", Type:=0)

Idem en variant le type:

Type:=3 ou 10

Rien n'y fait !
0
nairolftessub Messages postés 7 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 26 octobre 2007
7 déc. 2005 à 16:13
Merci a toi aieeeuuuuu .
Effectivement, l'entrée a la main ne pose pas de probleme, mais l'entree sous une forme, beaucoup plus.
En fait, je ne l'ai jamais fait. Je vais donc me replonger dans mon bouquin.
Mais tu as raison, la solution sous menu déroulant aura surement un aspect plus pro.
Merci de tes conseils avises.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
8 déc. 2005 à 10:22
de rien :)
0
Rejoignez-nous