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

A voir également:Comment activer une feuille de classeur à partir d'une comboboxEXCEL VB - activer une feuille à nom variable ✓ - Forum - Excel Création de documents classeurs à partir d'une liste ✓ - Forum - Excel Recherche dans feuilles de classeur ✓ - Forum - Excel Rechercher feuille différents classeurs et reporter données ✓ - Forum - VB / VBA Activer une feuille lors d'un double click sur une cellule ✓ - Forum - Excel

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

Forum

A voir également:Comment activer une feuille de classeur à partir d'une comboboxEXCEL VB - activer une feuille à nom variable ✓ - Forum - Excel Création de documents classeurs à partir d'une liste ✓ - Forum - Excel Recherche dans feuilles de classeur ✓ - Forum - Excel Rechercher feuille différents classeurs et reporter données ✓ - Forum - VB / VBA Activer une feuille lors d'un double click sur une cellule ✓ - Forum - Excel

Web: www.shapebootstrap.net

3 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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 


Merci cs_Le Pivert 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM a aidé 31504 internautes ce mois-ci

Reply
réponses:
  • auteur

  • auteur

    Bonjour,
    Il n'y a pas de problème car toutes les feuilles de mon classeur sont identiques. Je fais l'essai et te confirme.
    Encore merci cela fait au moins une semaine que je cherche une solution

  • auteur

    Jai copie ce code et maintenant j'ai le message Erreur d'exécution '70' . Accès refusé
    Ai je fait une mauvaise manip je ne comprends pas. Je recherche pourquoi ce message mais pas de chance
    Merci

  • auteur

    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.

  • auteur

    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!

    @+

  • auteur

    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

  • auteur

    Merci beaucoup de cette démarche. Je fais l'essais et vous confirme.
    Encore merci

  • auteur

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • auteur

  • auteur

    Bonsoir,
    Je ne comprends pas bien votre réponse ma combobox est dans mon userform ce qui me permet de choisir la référence à traiter mais je pense que cette référence soit activée pour pouvoir effectuer des macro VBA sur cette référence choisie.
    Merci

  • auteur

    Hein ?????

  • auteur

    Je sais que je suis pas un ingénieur en programmation mais votre réaction me surprend. Heureusement que nous ne sommes pas comme cela en mécanique.
    Merci quand même de votre réponse.

  • auteur

    Je ne suis pas informaticien. ce que je ne comprend pas c'est :
    « je pense que cette référence soit activée pour pouvoir effectuer des macro VBA sur cette référence choisie. »

    Ma première réponse concerne la question initiale :
    « j'aimerai savoir quel code je dois mettre pour activer la feuille sélectionnée dans ma liste déroulante »

  • auteur

    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

  • auteur

    Comment établis-tu la relation entre la référence et le nom de la feuille de calcul ?

  • auteur

    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

  • auteur

    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

  • auteur

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed