IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Selectionner un tab dans un StripTab en fonction d'une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Selectionner un tab dans un StripTab en fonction d'une variable
    Bonjour,

    J'ai crée un StripTab avec des onglets, je voudrai sélectionner / activer le tab qui aura pour intitulé le contenu d'une variable.

    par exemple, si la variable "nom_onglet" contient "MUR", je voudrai que l'onglet 'MUR' soit sélectionné :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim nom_onglet as String
    Dim i as byte
     
     
    For i = 0 To Me.TabStrip.Tabs.Count
     
        If Me.TabStrip.Tabs(i).Caption = nom_onglet Then
     
            Me.TabStrip.Value = i
     
        End If
     
    Next i

    Pour l'instant, j'ai l'erreur : 4argument ou appel de procédure incorrecte.
    La ligne suivante est pointée pour cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.TabStrip.Tabs(i).Caption = nom_onglet Then

    Pouvez vous m'indiquer ce qui pose problème svp ?
    Merci a vous,

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2022
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2022
    Messages : 141
    Par défaut
    Voici une procédure similaire, et qui fonctionne (sur office365:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub UserForm_Click()    
        Dim nom_onglet As String
        Dim i As Long
     
        nom_onglet = "Mur"
     
        For i = 0 To Me.MultiPage1.Pages.Count - 1
           If Me.MultiPage1.Pages(i).Caption = nom_onglet Then
     
               Me.MultiPage1.Value = i
               Debug.Print Me.MultiPage1.Value
     
           End If
        Next i
    End Sub

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    C'est curieux ça ne fonctionne toujours pas, je suis en Excel 2021.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Me.TabStrip.Tabs(i).Caption
    Cette ligne renvoi bien le nom du 1er onglet et c'est lorsque le code teste si le nom de l'onglet correspond à la variable que ça plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.TabStrip.Pages(i).Caption = nom_onglet Then
    Peut etre que la variable ne doit pas être déclarée comme String ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2022
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2022
    Messages : 141
    Par défaut
    Essayez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.TabStrip.Pages(i).Caption = "'" & nom_onglet & "'" Then
    'apostrophe entre guillemets

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Désolé mais ça la condition "if" ne se réalise toujours pas.

    On dirait qu'on ne peut pas comparer une string avec Tabs.Caption, pourtant lorsqu'on cherche à l'afficher via msgbox, la valeur attendue est bien présente

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Attention, il me semble que dans cette discussion, on mélange les contrôles TabStrip et MultiPage

    Voici un exemple de code dans un UserForm qui contient les deux contrôles et qui modifie la propriété Caption du deuxième onglet pour TabStrip et la deuxième page du MutlitPage et qui les sélectionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub UserForm_Initialize()
      With Me
       ' Contrôle d'onglet
       With .TabStrip1
       .Tabs(1).Caption = "Afrique"
       .Value = 1         ' Sélection
       End With
       ' Multipage
       With .MultiPage1
       .Pages(1).Caption = "Afrique"
       .Value = 1         ' Sélection
       End With
      End With
    End Sub
    Nom : 220927 dvp TabStrip - MutliPage.png
Affichages : 416
Taille : 3,0 Ko
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/02/2010, 14h29
  2. Réponses: 2
    Dernier message: 05/03/2008, 22h01
  3. Réponses: 0
    Dernier message: 18/02/2008, 22h05
  4. Réponses: 1
    Dernier message: 06/12/2007, 19h42
  5. Réponses: 4
    Dernier message: 12/06/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo