Problème de variable dasn la selection d'une listbox

Résolu
Signaler
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
-
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
-
Bonjour,j'ai une userform avec 2 listbox listbox 1 et listbox2.
La premiere listbox est pour sélectionner une région de France
La deuxieme est pour selectionner Mr ,Mme ou Mlle
quand je sélectionne un item de listbox1 la variable qui en résulte est le nom de la région sélectionnée mais entre guillemets, exemple: "Aquitaine" et donc l'ordinateur ne peut pas ouvrir la feuille excel nommée Aquitaine.
SVP quelqun peut'il maider.
Voici quelques lignes de ma macro

Private Sub Enregistrer_Click()
Dim Myarray2 As String
Dim Myarrray1 As String
Myarray1 = listbox1.value
Myarray2 = listbox2.Value
Sheets(Myarray1).Select( réponse de l'ordinateur erreur 13)
end sub
Merci

8 réponses

Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Salut Henrry2,
2 eme idée si c'est un pb de variable met
myarray1 dans une variable déclaré en string

As tu essayé de faire dans la boucle
Dim M as string
M=myarray1
if feuille.name=m then feuille.select

Amicalement CGSI3
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Salut henrry02,
J'ai pas verifié mais je te donne une réponse rapide
je pense que tu devrai utiliser la propriétée sheets(1..).name
soit:
for each sheet in activeworkbook.sheets
if sheet.name=myarray1 then

end if
next
(j'espere qu'il n'y a pas d'erreur)
Si tu n'as pas trouvé d'ici ce soir, n'hesite pas a m'écrire,
Bonne prog CGSI3
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2010

merci CGSI3 pour ta réponse mais malheureusement cela ne fonctionne pas et j'ai le message cette fois-ci Nº9.
Il me semble que c'est un problème de variable mais je ne sais pas le résoudre
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Salut Henrry2,
Juste pour t'aider,

'Affichage des index et du nom de chaque feuilles du classeur actif (fichier excel)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For Each Feuille In ActiveWorkbook.Worksheets
MsgBox (Feuille.Index & " " & Feuille.Name)
Next
End Sub

tu colles ça dans le module d'une feuille et tu regardes ensuite en déboguant les propriétes dans fenetre variable local.
tu y trouveras tous ce que tu cherche
A bientot CGSI3
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2010

Merci pour ton aide et effectivement j'obtiens les nº des feuilles que je dois sélectionner avec le nom. également les noms des différentes variables mais quand il s'agit de sélectionner la feuille correspondante à la sélection de la listbox j'ai le même message d'erreur nº 13.
merci beaucoup.
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2010

j'ai peut être fait une mauvaise manip en t'envoyant la réponse à ton dernier message donc voici la réponse.
Merci de ton aide mais encore une fois cela ne fonctionne pas car le résultat de listbox1 ou Myarray1 est une variable entourée de "" exemple
Myarray1 = "EST" et comme le feuille est nommée EST cela ne peut pas fonctionner.
Merci de ton aide mais je suis sur le problème depuis 3 jours.
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Bonsoir henrry2,
Dernière pistes
3 choses pour t'aider dans ton problème:
- essai de faire la meme chose avec feuille.name et de l'ajouter dans une variable avant de la comparer
- on peut découper un string avec la fonction mid
soit a="babar"
b=mid(a,2,len(a)-2)
soit b=babar
- Il me semble que l'on peut ajouter d'un coté ou l'autre de la condition entre les 2 string le caractere " soit par la fonction chr(code ascii que je ne connait pas) soit par """

Mais pour être franc, je ne pense pas que cela vienne de la.
Je me rappele avoir fais exactement ce que tu fais sans Pb majeur, alors je pense qu'une solution existe.
Bonne soirée CGSI3
Messages postés
14
Date d'inscription
dimanche 4 novembre 2007
Statut
Membre
Dernière intervention
26 mai 2010

Bonjour,CGSI3 franchement un grand merci pour ton temps, malheureusement pour la 1ère solution je retombe toujours sur la variable entre guillemets et pour la 2ième solution j'ai reussi à découper la variable mais sans pouvoir supprimer les guillemets.
Il me semble que cela vient de la déclaration de mes variables entre "string" ou "variant" ou la lecture du résultat de ma listbox en .value ou en .text
En tout cas merci encore pour ton aide