Donner focus à une cellule [Résolu]

Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 15 nov. 2006 à 11:35 - Dernière réponse : drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention
- 16 nov. 2006 à 11:09
Bonjour,

Dans une cellule j'ai entré les coordonnées d'un groupe de cellule sous la forme :
moulage!$AU$33:$AW$33 (ce sont des cellules fusionnées)
où moulage est le nom de ma feuille.

Maintenant je voudrais qu'en appuyant sur un bouton (dans un userform), je retrouve ma zone quelque soit la feuille du classeur ouverte. Je pensais pour ça donner le focus à la zone mais je ne trouve pas la bonne formule.

Si quelqu'un a une idée ça m'arrangerais..

Merci
Afficher la suite 

19 réponses

Répondre au sujet
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 16 nov. 2006 à 09:51
+3
Utile
Chez moi ça marche :
Worksheets(NomFeuille).Range(plage).Select
Mais si avec l'autre solution c'est bon!
N'oublie de valider la réponse qui a répondu à ton problème.

 Drikce 06
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 15 nov. 2006 à 11:44
0
Utile
C'est quelle language? VB6, VBA, VB.Net?
Worksheets("moulage").Select ou Activate
Range("AU33:AW33" )

 Drikce 06
Commenter la réponse de drikce06
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 15 nov. 2006 à 12:01
0
Utile
pardon c'est en VBA

le problème Drikce c'est que le nom de ma feuille ainsi que la cellule ne seront pas toujours les mêmes. Pour utiliser ta solution, il faudrait pouvoir extraire le nom de la feuille et les coordonnées de la cellule séparément et ça je ne sais pas le faire.
Commenter la réponse de Tidauph0
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 15 nov. 2006 à 12:11
0
Utile
Déplacé sur vbfrance !


















-Blog-
Commenter la réponse de cs_Bidou
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 15 nov. 2006 à 13:08
0
Utile
Nomme la plage de cellule et après range("NomDeLaCellule")

 Drikce 06
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 15 nov. 2006 à 13:20
0
Utile
Petites exemples:

'Nommer une cellule
Range("A1").Name = "NomDeLaCellule")

'Sélectionner une cellule nommée
Range("NomDeLaCellule").Select

'Supprimer le nom de la cellule
ActiveWorkbook.Names("NomDeLaCellule").Delete

 Drikce 06
Commenter la réponse de drikce06
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 15 nov. 2006 à 16:59
0
Utile
Donc si je comprends bien, je remplace "A1" de ta formule par la variable qui contient "moulage!$AU$33:$AW$33" ce qui me donne :

Range(Adresse).Name = "Cellule"
Range("Cellule").Select
ActiveWorkbook.Names("Cellule").Delete

Adresse = variable qui contient "moulage!$AU$33:$AW$33"
Cellule = nom que je veux donner temporairement au groupe de cellule que je recherche

Seulement VB plante et me dit : "La méthode select de la classe Range a échoué"

Sinon par rapport à ton précédent post, ça fonctionne en mettant simplement
Range(adresse).Activate
Mais que si je suis sur la page qui contient la cellule recherchée. Hors il faut que je puisse la trouver même si je suis sur une autre page.

Sinon comment récupérer simplement la partie "moulage" à l'intérieur de la variable adresse? Mais ça me semble difficilement possible.

Je viens de m'apercevoir qu'il faut peut-être que je précise que certaine cellules que je cherche sont dans la feuille "moulage", mais j'en ai d'autres qui se trouvent dans d'autres feuilles d'où la nécessité de pouvoir rechecher quelque soit la feuille affichée
ex : "assemblage!$G$6:$I$6" (où assemblage est une autre feuille)
Commenter la réponse de Tidauph0
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 15 nov. 2006 à 17:18
0
Utile
Je me penche sur ton probleme!
Tu fais un split sur ta variable addresse!
Essaye de voir avec cette fonction.

 Drikce 06
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 15 nov. 2006 à 17:23
0
Utile
Tiens avec ça tu obtiens NomFeuille = "moulage"

Dim Adresse As String
Dim Splitnomfeuille() As String
Dim NomFeuille As String


Adresse = "moulage!$AU$33:$AW$33"
Splitnomfeuille() = split(Adresse, "!", -1, vbTextCompare)
NomFeuille = Splitnomfeuille(0)

 Drikce 06
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 15 nov. 2006 à 17:28
0
Utile
Ce qui nous donne pour sélectionner cette feuille et la plage :

Dim Adresse As String
Dim Splitnomfeuille() As String
Dim NomFeuille As String
Dim Plage As String


Adresse = "moulage!$AU$33:$AW$33"
Splitnomfeuille() = split(Adresse, "!", -1, vbTextCompare)
NomFeuille = Splitnomfeuille(0)


Plage = Replace(Splitnomfeuille(1), "$", "", 1, -1, vbTextCompare)


Worksheets(NomFeuille).Range(Plage).Select

 Drikce 06
Commenter la réponse de drikce06
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 16 nov. 2006 à 00:01
0
Utile
Je te remercie. J'étais parti du boulot quand tu m'a répondu donc je ne pourrais tester tout ça que demain. En tout cas, de vue comme ça, ça à l'air de coller même si je ne connais pas la fonction split (c'est d'autant plus interessant.. )

Je te donne des nouvelles demain

merci
Commenter la réponse de Tidauph0
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 16 nov. 2006 à 09:38
0
Utile
salut,
ça bloque toujours. Sur la derniere ligne il me dit que la méthode select de la classe range a échoué.

J'ai essayé de remplacer la variable nomfeuille dans la formule par Feuil8.name (feuil8 étant la feuille moulage) et ça plante aussi.
Commenter la réponse de Tidauph0
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 16 nov. 2006 à 09:47
0
Utile
J'ai compris!! Il faut le faire en 2 temps :

Worksheets(NomFeuille).Select
Range(plage).Activate

c'est super je vais pouvoir continuer...
Commenter la réponse de Tidauph0
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 16 nov. 2006 à 09:49
0
Utile
Le dernier code que j'ai mis ne fonctionne pas chez toi? Parce que chez moi si je nomme une feuille moulage il marche très bien! Donne le code que tu as mis pour voir!

 Drikce 06
Commenter la réponse de drikce06
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 16 nov. 2006 à 09:53
0
Utile
je ne t'envoi que la partie qui nous interesse :

   Adresse = Worksheets(feuille).Cells(Ligne, colonne + 30)
   Splitnomfeuille() = Split(Adresse, "!", -1, vbTextCompare)
   NomFeuille = Splitnomfeuille(0)
   plage = Replace(Splitnomfeuille(1), "$", "", 1, -1, vbTextCompare)
   Worksheets(NomFeuille).Select
   Range(plage).Activate
Commenter la réponse de Tidauph0
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 16 nov. 2006 à 09:55
0
Utile
Je vais valider la réponse. En tout cas merci pour ton aide
Commenter la réponse de Tidauph0
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 16 nov. 2006 à 10:04
0
Utile
  Réessaye avec ça: j'ai pas testé mais cela doit fonctionner:

Adresse = Cstr(Worksheets(feuille).Cells(Ligne, colonne + 30).Value)
Splitnomfeuille() = Split(Adresse, "!", -1, vbTextCompare)
NomFeuille = Splitnomfeuille(0)
plage = Replace(Splitnomfeuille(1), "$", "", 1, -1, vbTextCompare)
Worksheets(NomFeuille).Range(plage).Select

 Drikce 06
Commenter la réponse de drikce06
Tidauph0 19 Messages postés jeudi 16 mars 2006Date d'inscription 17 novembre 2006 Dernière intervention - 16 nov. 2006 à 10:19
0
Utile
Je suis déolé mais ça plante toujours sur la méthode select. Peut-être que ça vient de la version d'Excel.. J'ai Excel 2002 SP3
Commenter la réponse de Tidauph0
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 16 nov. 2006 à 11:09
0
Utile
Oui peut être que c'est du à ça! Mais si ça marche avec:
   Worksheets(NomFeuille).Select
   Range(plage).Activate

C'est bon!

 Drikce 06
Commenter la réponse de drikce06

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.