Comment activer une feuille de classeur à partir d'une combobox [Résolu/Fermé]

Signaler
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020
-
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020
-
Bonjour,
Je possède un classeur de 15 feuilles qui représentent mes références et j'aimerai savoir quel code je dois mettre pour activer la feuille sélectionnée dans ma liste déroulante combobox. Je possède Excel 2010 . Je n'arrive pas à trouver ce problème sur le forum.
Cordialement


Configuration: Windows / Internet Explorer 11.0

3 réponses

Messages postés
6824
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 juillet 2020
528
Bonjour,

Une autre manière de procéder au changement de sélection dans la ComboBox.

Il faut que les valeurs liées aux TextBox soient dans les même cellules de chaque feuille:

Option Explicit
Private Sub ComboBox1_Change()
Sheets(ComboBox1.Value).Activate
TextBox1.Text = ActiveSheet.Range("A1").Value 'on affiche les valeurs
TextBox2.Text = ActiveSheet.Range("A2").Value 'on affiche les valeurs
End Sub
Private Sub UserForm_Initialize()
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
ComboBox1.AddItem (f.Name) 'on rempli la ComboBox
Next f
ComboBox1.ListIndex = 0 'on affiche le 1er index de la ComboBox
End Sub


1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63718 internautes nous ont dit merci ce mois-ci

Messages postés
6824
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 juillet 2020
528
Le code que je t'ai donné fonctionne correctement. Il faut voir de ton coté le reste du code. Il se peut que ce soit une variable qui n'est pas déclaré ou avec un nom protégé (faisant partie de vba comme Date, Name etc.) .
Donc poste la totalité de ton code pour que l'on est une vue d'ensemble de ton problème.
Messages postés
6824
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 juillet 2020
528
En cherchant un peu, j'ai trouvé cela. Regarde si cela correspond à ton cas!

https://fr.wikiversity.org/wiki/Macros-commandes_VBA/D%C3%A9bogage#Erreur_d'ex%C3%A9cution_'70':_Acc%C3%A8s_refus%C3%A9


en lisant ces lignes, cela proviendrait de ta ComboBox qui n'est pas vide!

@+
Messages postés
6824
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 juillet 2020
528
Ta Combobox est déjà remplie!
Ce n'est pas nécessaire de la remplir de nouveau.

Tu as 2 fois l'évenement :

Private Sub UserForm_Initialize()


Il suffit de mettre cela:

Private Sub ComboBox1_Change()
  Sheets(ComboBox1.Text).Select
  Me.TextBox1.Value = ActiveSheet.Range("N5")
  Me.TextBox2.Value = ActiveSheet.Range("O5")
End Sub
'inscription du stock en cours O5 et adressage depot
Private Sub UserForm_Initialize()
 ComboBox1.ListIndex = 1
End Sub


Dans la feuille Listes à la ligne 6 changer 36 par 33

voilà pour l'instant ce qui te permettra de faire tourner tes macros
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Merci beaucoup de cette démarche. Je fais l'essais et vous confirme.
Encore merci
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Merci beaucoup de cette implication de votre part tout fonctionne correctement. Je ne savais pas cette finesse de ne pas répéter le code pour une même ComboBox dans 2 Userforms différents
Encore merci
Messages postés
8128
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
24 juin 2020
1 431
Bonjour

Pour activer une feuille d'un classeur :
   Workbooks("NomDuClasseur").Activate
   Workbooks("NomDuClasseur").Worksheets("NonDeLaFeuille").Activate


Avec VBA, il ne faut utiliser .Activate que lorsque c'est le but final.
Il absolument éviter d'activer inutilement des objets, notamment pour agir sur l'objet actif.
Il est bien plus efficace d'agir directement sur l'objet concerné sans l'activer.
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Voilà, d'après cette combobox je choisi une référence représentée par une feuille de calcul. Dans cette feuille je vais chercher une information dans une textBox qui s'affiche dans mon userform. Mais si je change de référence l'information de la première feuille de calcul reste affichée dans la référence suivante. Voilà pourquoi je pensais qu'il fallait activer le choix de chaque feuille de calcul mais je pense que le problème est ailleurs.
Merci
Messages postés
8128
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
24 juin 2020
1 431
Comment établis-tu la relation entre la référence et le nom de la feuille de calcul ?
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Mes références sont des diamètres de barres et chaque feuille de mon classeur porte le nom d'un diamètre.
Les noms de feuilles sont 20 - 26 - 30 - 36 etc...
Je vous explique le fonctionnement de mon classeur:
1 - Je choisi le diamètre de barre
2 - A l'ouverture de la feuille de calcul Excel m'affiche dans une textbox le stock de ce diamètre et les emplacements de rangement de ce diamètre dans une autre textbox
3 - Dans une autre textBox je modifie le stock avec des entrées ou sorties
4 - et je valide
Mais où le problème se situe est au niveau des 2 premières textbox où lorsque je change de diamètre les résultats affichés par Excel restent affiches en permanence voila pourquoi je pensais à une validation de mon choix de diamètre mais apparemment le mot "activate" ne correspond pas à cela
Merci
Messages postés
8128
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
24 juin 2020
1 431
Bonjour,

1) Il faut actualiser les deux textbox Stock et Emplacement lors de l'évènement Change du combox diamètre.
2) Il faut mettre à jour la cellule correspondante :
- soit lors de l'évènement Exit du textbox Stock (si pas de bouton valider)
- soit lors de l'évènement Clic du bouton Valider
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Bonjour,
Je ne fais pas d'actualisation de la cellule stock avec la textbox2 mais avec une autre textbox11 qui elle tiens compte des modification de stock avec un bouton entrée et un sortie.
Quand à la textBox1 pour les emplacements je modifie celle ci.
Apres j'ai un bouton de validation. Enfin j'ai 3 textBox pour mon userform et si je comprends bien 2 suffiraient
mais avec quels codes. Cela m'intéresse vivement car la personne qui va manipuler ce classeur est un peu allergique à l'informatique
Encore merci de cette implication
Messages postés
8128
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
24 juin 2020
1 431
Bonjour,

Bonjour,

2 jours que ce fil tourne en rond par manque d'information, pour répondre efficacement il serait plus simple de disposer de ton fichier, débarrassé des informations confidentielles s'il y lieu.

Déposes le fichier avec des commentaires explicatifs détaillés sur
https://mon-partage.fr/
et mets le lien obtenu dans ton prochain message.

Cordialement
Patrice
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Bonsoir,
Je vous ai fait suivre le fichier
Merci
Messages postés
8128
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
24 juin 2020
1 431
Où ça ???
Messages postés
222
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
13 janvier 2020

Voici le lien
https://mon-partage.fr/admin/fGWCKRjS/QMaxtvoC/