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 :

Copie de Tabstrip


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Clavardeur en tout genre
    Inscrit en
    Août 2019
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Clavardeur en tout genre

    Informations forums :
    Inscription : Août 2019
    Messages : 64
    Par défaut Copie de Tabstrip
    Bonjour,

    j'ai deux Tabstrip : TabStrip Incident, et un Tabstrip Action qui est imbriqué dans TabsTrip Incident. Il est possible d'avoir plusieurs actions dans un incident, en gros plusieurs TabStripAction pour un TabStrip Incident.
    Lors du clic sur un bouton pour ajouter un Incident, cela copie le Tabstrip Incident mais également le TabStripAction avec le nombre d'onglets créés.

    Je souhaiterai que lors du clic pour ajout un TabStripIncident cela fasse une copie mais avec un seul onglet dans le TabStripAction.

    J'espère avoir été assez clair, je vous partage mon code et une capture d'écran pour éclaircir tout cela.
    Auriez vous une solution pour creer un tabstripAction avec un seul onglet ? Est lié à un problème de contexte ? J'ai tenté de supprimé les onglets avec une boucle mais cela supprime même dans les premiers onglets Incidents.

    Merci d'avance.
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Private Sub CommandButtonAjoutIncident_Click()
     
        ' Étape 1 : Ajouter un nouvel onglet à TabStrip2
        Dim nouvelOnglet As MSForms.Tab
        Dim nouvelIndex As Integer
        Dim nouvelIndex3 As Integer
        Dim newTabStrip As MSForms.tabStrip
     
        With Me.TabStrip2
            ' Calculer l'index du nouvel onglet
            nouvelIndex = .Tabs.Count
     
            ' Ajouter un nouvel onglet
            Set nouvelOnglet = .Tabs.Add
            nouvelOnglet.Caption = "Incident " & (nouvelIndex + 1)
     
            ' Sélectionner automatiquement le nouvel onglet
            .Value = nouvelIndex
        End With
     
        With Me.TabStrip3
            nouvelIndex3 = .Tabs.Count
     
         End With
     
           ' Supprimer tous les onglets sauf le premier dans le nouveau TabStrip3
        With TabStrip3
            ' Si TabStrip3 a plus d'un onglet, supprimer tous les onglets sauf le premier
            If .Tabs.Count > 1 Then
                For i = .Tabs.Count - 1 To 1 Step -1
                    .Tabs.Remove i
                Next i
            End If
        End With
    End Sub
    Nom : Capture.PNG
Affichages : 80
Taille : 15,5 Ko

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 336
    Par défaut
    Bonjour,

    Juste pour vous donner quelques idées un petit exemple où les contrôles onglets sont ajoutés et/ou masqués. A adapter pour prendre en compte le nombre d'actions par incident.
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Option Explicit
     
    Private Sub ButtonAjoutIncident_Click()
        Dim n As Long, i As Long
        With Me.TabStrip1
            n = .Count - 1
            '--- affiche premier des onglets masqués
            For i = 0 To n
                If .Tabs(i).Visible = False Then
                    .Tabs(i).Visible = True
                    .Value = i
                    TabStrip1_Click i
                    Exit For
                End If
            Next i
            '--- si nécessaire, ajoute un oonglet
            If i > n Then
                .Tabs.Add "Tabstrip1", "Incident " & i + 1
                .Value = i
            End If
        End With
    End Sub
     
    Private Sub ButtonSupprimeIncident_Click()
        '--- masque le dernier onglet visible (aucune suppression d'onglet)
        Dim i As Long
        For i = Me.TabStrip1.Count To 1 Step -1
            If Me.TabStrip1.Tabs(i - 1).Visible Then
                Me.TabStrip1.Value = i - 2
                TabStrip1_Click i - 2
                Me.TabStrip1.Tabs(i - 1).Visible = False
                Exit For
            End If
        Next i
    End Sub
     
    Private Sub TabStrip1_Click(ByVal Index As Long)
        Debug.Print "TabStrip1.Index: " & Index
        If Index = 0 Then
            Me.TabStrip2.Tabs(1).Visible = True
        ElseIf Index = 1 Then
            Me.TabStrip2.Tabs(1).Visible = False
        End If
    End Sub
     
    Private Sub TabStrip2_Click(ByVal Index As Long)
        Debug.Print "TabStrip2.Index: " & Index
    End Sub
     
    Private Sub UserForm_Initialize()
        TabStrip1.Tabs(0).Caption = "Incident 1"
        TabStrip1.Tabs(1).Caption = "Incident 2"
        TabStrip2.Tabs(0).Caption = "Action 1"
        TabStrip2.Tabs(1).Caption = "Action 2"
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre confirmé
    Homme Profil pro
    Clavardeur en tout genre
    Inscrit en
    Août 2019
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Clavardeur en tout genre

    Informations forums :
    Inscription : Août 2019
    Messages : 64
    Par défaut
    Merci pour l'idée et merci d'avoir pris le temps de répondre.
    Je vais analyser votre approche

Discussions similaires

  1. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 11h42
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 11h33
  3. Copier et afficher une copie d'ecran
    Par Bobx dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2002, 23h20
  4. Copie de fichier
    Par Bjorn dans le forum C
    Réponses: 4
    Dernier message: 11/06/2002, 16h23
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 17h20

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