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 :

Selection qui ne se voit pas


Sujet :

Macros et VBA Excel

  1. #41
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    le projet (exercice) et de pouvoir avoir le maximum de possibilité d'action sans interface (userform) et d'utiliser des ctrls existants dans CMbars

    maintenant si le fait de devoir cliquer droit a chaque fois te gène
    il y a une chose a faire très simple

    en dernière ligne du before tu réaffiche la barre ainsi on a l'impression qu'elle est toujours la en dehors bien sur d'un laps de temps pour se reconstruire

    j'ai le mêmefichier avec un userform et tout les controls faisant la même chose
    résultat le fichier avec userform pèze 376 kilos c'est pas rien quand on sait que c'est pas fini
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #42
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    et comment on fait pour le faire buggé.

  3. #43
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    et bien en fait il bug plus je ne comprends pas

    c'est bien la première fois qu'on entends quelqu'un se plaindre que ca bug pas

    il est vraiment tordu ce toulonnais

    re
    bonc le click droit répétitif peut en agacer plus d'un

    alors mettons tout ca dans le ruban
    et la je demarre déjà avec un soucis

    les boutons se pose les uns a coté de l'autre et pas l'un en dessous de l'autre
    quelqu'un a une idée pour ca
    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
    Sub Creation_Cbar()
        Dim Cbar As CommandBar, boutMenu(1 To 3), bandeau
     
        Supp_Cbar
     
        Set Cbar = CommandBars.Add(Name:="MaBarre", Position:=msoBarLeft)
     
        bandeau = Array(, "bandeau 1 (Mois et Année", "Bandeau 2 (titre des jours)", "bandeau 3 (vignettes des jours)")
        'titre = Array(, "Couleur Fond", "Couleur Texte", "Couleur Bordures")
        'titremode = Array(, "Cfond", "Ctexte", "Cbordures")
        With Cbar
            .Visible = True
                  For i = 1 To 3
                Set boutMenu(i) = .Controls.Add(msoControlButton)
                With boutMenu(i)
                    .Caption = bandeau(i)
                .FaceId = 226
                .Style = msoButtonIconAndCaption
                .BeginGroup = True
       End With
            Next i
        End With
    End Sub
    Sub Supp_Cbar()
        On Error Resume Next    '<-- gestion d'erreur au cas où la barre n'existe pas
        Application.CommandBars("Mabarre").Delete
    End Sub
    aperçu de la position actuelle
    Pièce jointe 175483
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #44
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour Patrick,
    essaie comme ça

    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
    Sub Supp_Cbar()
        On Error Resume Next    '<-- gestion d'erreur au cas où la barre n'existe pas
     
        bandeau = Array(, "bandeau 1 (Mois et Année)", "Bandeau 2 (titre des jours)", "bandeau 3 (vignettes des jours)")
    For i = 1 To 3
       With Application.CommandBars("Worksheet Menu Bar")
          .Controls(bandeau(i)).Delete
       End With
    Next
    On Error GoTo 0
    End Sub
     
     
     
    Sub Creation_Cbar()
     
    Dim objPopUp As CommandBarPopup
    Dim objBtn As CommandBarButton
    Supp_Cbar
    bandeau = Array(, "bandeau 1 (Mois et Année)", "Bandeau 2 (titre des jours)", "bandeau 3 (vignettes des jours)")
     
    For i = 1 To 3
     
       With Application.CommandBars("Worksheet Menu Bar")
          Set objPopUp = .Controls.Add(Type:=msoControlPopup, before:=.Controls.Count, temporary:=True)
       End With
       objPopUp.Caption = bandeau(i)
       Set objBtn = objPopUp.Controls.Add
       With objBtn
          .Caption = "Couleur Fond"
          '.OnAction = "bla bla bla"
          '.Style = msoButtonCaption
       End With
       Set objBtn = objPopUp.Controls.Add
       With objBtn
          .Caption = "Couleur Contour"
          '.OnAction = "bla bla bla"
          '.Style = msoButtonCaption
       End With
    Next
    End Sub

  5. #45
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Merci gnain tu m'a mis sur la voix
    par contre pourquoi je peut pas ajouter une barre plutôt que d'utiliser le worksheetMenuBar

    les bouton bandeau ne sont plus des popup dans cette version

    ensuite pour remettre la commandbars a l'origine je fait un reset
    voila mon code
    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
    Sub Supp_Cbar()
        Application.CommandBars("Worksheet Menu Bar").Reset
    End Sub
     
    Sub Creation_Cbar()
        Dim objPopUp    'As CommandBarPopup
        Dim objBtn As CommandBarButton
        Supp_Cbar
        bandeau = Array(, "bandeau 1 ", "Bandeau 2 ", "bandeau 3 ")
        With Application.CommandBars("Worksheet Menu Bar")
             For i = 1 To 3
                Set boutonband = .Controls.Add(Type:=msoControlButton, before:=i, temporary:=True)
                With boutonband
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                End With
            Next
            For e = 1 To 4
            Set bout = .Controls.Add(Type:=msoControlButton, before:=e, temporary:=True)
            With bout
                .Caption = "toto  " & e
                .Style = msoButtonIconAndCaption
                .BeginGroup = True
            End With
    Next
        End With
    End Sub
    le soucis par exemple c'est que je voudrais les toto dans un autre carré pas dans le meme
    une idée ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #46
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    en fait il faut créer une nouvelle commandbars et la positionner en msoBarTop

    je te laisse customiser

    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
     
    Sub Creation_Cbar()
        Dim objPopUp    'As CommandBarPopup
        Dim objBtn As CommandBarButton
        Supp_Cbar
        bandeau = Array(, "bandeau 1 ", "Bandeau 2 ", "bandeau 3 ")
        With Application.CommandBars("Worksheet Menu Bar")
             For i = 1 To 3
                Set boutonband = .Controls.Add(Type:=msoControlButton, before:=i, temporary:=True)
                With boutonband
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                End With
            Next
        End With
     
        With Application.CommandBars.Add("Barre 1", msoBarTop)
            .Visible = True
            For e = 1 To 4
            Set bout = .Controls.Add(Type:=msoControlButton, before:=e, temporary:=True)
            With bout
                .Caption = "toto  " & e
                .Style = msoButtonIconAndCaption
                .BeginGroup = True
            End With
            Next
        End With
    End Sub

  7. #47
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    salut joe
    et oui Mais!!!! c'est pas aussi simple sinon tu pense bien

    j'ai les totos placés horizontalement
    Pièce jointe 175596
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #48
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    le soucis par exemple c'est que je voudrais les toto dans un autre carré pas dans le meme
    une idée ?
    j'ai répondu à ton souci, tes toto sont dans un autre carré non ?

    ils en ont jamais assez ces toulousains

    bon allez, je m'y met aussi, plus on est de fous, plus on rit

  9. #49
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    re
    ben au depart on était sur une sélection par contrôles dans commandbars qui se faisait mal
    ensuite on trouve que cliquer a chaque fois que l'on veut changer une option c'est barbant
    ok alors mettons tout dans le ruban

    les trois bouton bandeau(1,2,3) devront rendre visible ou invisible les menu 1 , 2 3
    les menu 1,2,3 seront soit des commandbars supplémentaires soit des groupe de control supplémentaires
    mais je les veux par trois (c'est le max) posée verticalement

    et oui les toulonnais ils sont comme ca

    j'en suis pas a mon coup d'essai en ce qui concerne les commandbars mais il est vrai que quand je bricole avec 2003 c'est beaucoup plus facile 2007 c'est un peu plus complexe je te parle même pas de 2013 64 je suis en train de le décortiqué j'suis rond comme une queue d'pelle j'ai les tempes qui jouent des castagnettes

    ils en ont jamais assez ces toulousains

    et en plus!!! il me traite de saucisse!!!!!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #50
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    me revoici.
    et voilà!

    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
    Sub Creation_Cbar()
        Dim Btn As CommandBarButton
        Dim Btn2 As CommandBarButton
     
        bandeau = Array(, "bandeau 1 (Mois et Année)", "Bandeau 2 (titre des jours)", "bandeau 3 (vignettes des jours)")
        For i = 1 To 3
            DeleteCommandBar bandeau(i)
            Application.CommandBars.Add bandeau(i)
     
            Set Btn = Application.CommandBars(bandeau(i)).Controls.Add
     
            With Btn
                .caption = bandeau(i)
                .Style = msoButtonIconAndCaption
                .faceId = 226
                '.OnAction = "bla bla bla"
     
            End With
     
            With Application.CommandBars(bandeau(i))
                .Visible = True
                .Position = msoBarTop
            End With
        Next
        For e = 1 To 3
            DeleteCommandBar "toto" & e
            Application.CommandBars.Add "toto" & e
     
            Set Btn2 = Application.CommandBars("toto" & e).Controls.Add
     
            With Btn2
                .caption = "toto  " & e
                .Style = msoButtonIconAndCaption
                '.OnAction = "bla bla bla"
            End With
     
            With Application.CommandBars("toto" & e)
                .Visible = True
                .Position = msoBarTop
            End With
     
        Next
     
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub DeleteCommandBar(ByVal Nom_Bouton As String)
        On Error Resume Next
        Application.CommandBars(Nom_Bouton).Delete
        On Error GoTo 0
    End Sub

  11. #51
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour a tous

    OK une commandbar pour chaque bouton si je veux les avoir alignés verticalement
    ca fait un peut lourd non?

    je pense que je vais rester sur le worksheetMenubar

    et mettre un bouton sans texte avec juste un icon pour séparer les menu car visiblement le séparation n'existe pas dans cette barre

    puré c'est coton avec ses restrictions

    a quand un controlgrid faconable hein!!!!!

    c'est ardu quand même
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #52
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    re
    Bon mon intuition était la bonne

    je viens de faire une découverte des plus surprenante mais vraiment très surprenante

    dans le model popup qui semble assez pénible pour certains
    j'ajoutais les bouton outils texte existants(gras aligner,italic,etc.....)
    le problème avec ces boutons c'est que l'on pouvait pas leur attribuer un (.onaction) ;cette action étant prédéterminée par l'application

    je viens de les mettre dans ma barre
    et dans un élan d'espoir je lui est attribué un (.oncation)
    et a ma grande surprise ca fonctionne
    voila qui résout mon problème d'impossibilité d'utiliser le beforerigthclick puisque les boutons sont dans le ruban
    non vraiment ce toulonnais alors ......
    tester le bouton "gras"
    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
    Sub Supp_Cbar()
        Application.CommandBars("Worksheet Menu Bar").Reset
    End Sub
     
    Sub Creation_Cbar()
        Dim objPopUp    'As CommandBarPopup
        Dim objBtn As CommandBarButton
        Dim P(1 To 6)
        Supp_Cbar
        bandeau = Array(, "bandeau 1 ", "Bandeau 2 ", "bandeau 3 ")
        popupB = Array(, "Outil texte", "Outil couleur", "outil 3")
        With Application.CommandBars("Worksheet Menu Bar")
            For i = 1 To 3
                Set boutonband = .Controls.Add(Type:=msoControlButton, before:=i, temporary:=True)
                With boutonband
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                End With
            Next
            For e = 1 To 3
                Set cpoptexte = .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)
     
                With cpoptexte
                    .Caption = "outils texte bande " & e
                    Set P(1) = .Controls.Add(Type:=msoControlButton, ID:=113)
                    Set P(2) = .Controls.Add(Type:=msoControlButton, ID:=114)
                    Set P(3) = .Controls.Add(Type:=msoControlButton, ID:=115)
                    Set P(4) = .Controls.Add(Type:=msoControlButton, ID:=120)
                    Set P(5) = .Controls.Add(Type:=msoControlButton, ID:=121)
                    Set P(6) = .Controls.Add(Type:=msoControlButton, ID:=122)
                    P(1).OnAction = "'miseengras" & Chr(34) & "bande" & e & Chr(34) & "'"
                End With
            Next
        End With
    End Sub
    Sub miseengras(bandeau)
        MsgBox "mise en gras du bandeau " & bandeau
    End Sub
    re
    Bonsoir a tous
    et voila 2 heures que je plombes la dessus
    j'essai d'intégrer maintenant les combos fonts et palette couleur

    et celles ci ne s'affiche pas je n'ai pas de message d'erreur pourtant

    une idée ?

    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
    56
    57
    58
    Sub Supp_Cbar()
        Dim Cbar As CommandBar
        Application.CommandBars("Worksheet Menu Bar").Reset
        For Each Cbar In CommandBars
            If Cbar.BuiltIn = False Then Cbar.Delete
        Next
    End Sub
    Sub Creation_Cbar()
        Dim objPopUp    'As CommandBarPopup
        Dim objBtn As CommandBarButton
        Dim P(1 To 6)
        Dim ccomb, ccomb1
        Supp_Cbar
        bandeau = Array(, "bandeau 1 ", "Bandeau 2 ", "bandeau 3 ")
        popupB = Array(, "Outil texte", "Outil couleur", "outil 3")
        With Application.CommandBars("Worksheet Menu Bar")
            For i = 1 To 3
                Set boutonband = .Controls.Add(Type:=msoControlButton, before:=i, temporary:=True)
                With boutonband
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                End With
            Next
            For e = 1 To 3
                Set cpoptexte = .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)
                With cpoptexte
                    .Caption = "outils texte bande " & e
                    Set palette3 = .Controls.Add(Type:=msoControlGrid, ID:=1927, before:=1, temporary:=True)
                    Set P(1) = .Controls.Add(Type:=msoControlButton, ID:=113)
                    P(1).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "gras" & Chr(34) & "'"
                    Set P(2) = .Controls.Add(Type:=msoControlButton, ID:=114)
                    P(2).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "italic" & Chr(34) & "'"
                    Set P(3) = .Controls.Add(Type:=msoControlButton, ID:=115)
                    P(3).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "souligné" & Chr(34) & "'"
                    Set P(4) = .Controls.Add(Type:=msoControlButton, ID:=120)
                    P(4).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne gauche" & Chr(34) & "'"
                    Set P(5) = .Controls.Add(Type:=msoControlButton, ID:=121)
                    P(5).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne droite" & Chr(34) & "'"
                    Set P(6) = .Controls.Add(Type:=msoControlButton, ID:=122)
                    P(6).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne centrer" & Chr(34) & "'"
                    Set ccomb = .Controls.Add(Type:=msoControlComboBox, ID:=1728)    '<-- combofont
                    Set ccomb2 = .Controls.Add(Type:=msoControlComboBox, ID:=1731) '<---combo font size
                End With
            Next
            For a = 1 To 3
                Set cpopcoul = .Controls.Add(Type:=msoControlPopup)
     
                With cpopcoul
                    .Caption = "couleur texte " & a
                    Set palette3 = .Controls.Add(Type:=msoControlGrid, ID:=1927)
                End With
            Next a
        End With
    End Sub
    Sub action(bande, acte)
        MsgBox "operation " & acte & " sur le bandeau " & bande
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #53
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    je ne sais pas pourquoi mais je crois qu'on ne peut mettre un msoControlComboBox, ID:=??? dans
    un "Worksheet Menu Bar".

    Pourtant dans un CommandBars.add il n'y a aucun problème....

    mystère!

    Je crois que tu n'aie d'autre choix que d'avoir une barre d'outil personnalisé (CommandBars.Add(Name:="MaBarre" & i, Temporary:=True))
    au lieu d'une "Worksheet Menu Bar"

    dans le message numéro 62 je t'ai proposé une commandbar pour chaque bouton.
    C'est vrai que ça fait un peut lourd.

    voici une autre version qui contient seulement 3 commandbar qui contient tout, et un au dessus le l'autre comme tu le veux.

    essaie ça!


    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
    56
    57
    58
    59
    60
    61
     Sub Creation_Cbar()
      Dim Cbar As CommandBar, boutMenu(1 To 3), bandeau
      Dim P(1 To 6)
        bandeau = Array(, "bandeau 1", "Bandeau 2", "bandeau 3")
        Supp_Cbar
        For i = 1 To 3
            Set Cbar = CommandBars.Add(Name:="MaBarre" & i, Temporary:=True)
     
            With Cbar
                .Visible = True
     
                Set boutMenu(i) = .Controls.Add(msoControlButton)
                With boutMenu(i)
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                    .BeginGroup = True
                End With
     
                Set cpoptexte = .Controls.Add(Type:=msoControlPopup, Temporary:=True)
                With cpoptexte
                    .Caption = "   outils texte bande " & i
                    Set palette3 = .Controls.Add(Type:=msoControlGrid, ID:=1927, Temporary:=True)
                    Set P(1) = .Controls.Add(Type:=msoControlButton, ID:=113)
                    P(1).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "gras" & Chr(34) & "'"
                    Set P(2) = .Controls.Add(Type:=msoControlButton, ID:=114)
                    P(2).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "italic" & Chr(34) & "'"
                    Set P(3) = .Controls.Add(Type:=msoControlButton, ID:=115)
                    P(3).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "souligné" & Chr(34) & "'"
                    Set P(4) = .Controls.Add(Type:=msoControlButton, ID:=120)
                    P(4).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne gauche" & Chr(34) & "'"
                    Set P(5) = .Controls.Add(Type:=msoControlButton, ID:=121)
                    P(5).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne droite" & Chr(34) & "'"
                    Set P(6) = .Controls.Add(Type:=msoControlButton, ID:=122)
                    P(6).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne centrer" & Chr(34) & "'"
     
                End With
     
                Set cpopcoul = .Controls.Add(Type:=msoControlPopup)
     
                With cpopcoul
                    .Caption = "    couleur texte " & i
                    Set palette3 = .Controls.Add(Type:=msoControlGrid, ID:=1927)
                End With
     
                With Cbar.Controls
                    .Add Type:=msoControlComboBox, ID:=1728
                    .Add Type:=msoControlComboBox, ID:=1731
                End With
     
            End With
        Next
     End Sub
     
     
    Sub Supp_Cbar()
        Dim Cbar As CommandBar
        For Each Cbar In CommandBars
            If Cbar.BuiltIn = False Then Cbar.Delete
        Next
    End Sub

  14. #54
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Essayez avec votre code modifié
    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
    56
    57
    58
    59
    60
    61
    62
    Sub Supp_Cbar()
        Dim Cbar As CommandBar
        Application.CommandBars("Worksheet Menu Bar").Reset
        For Each Cbar In CommandBars
            If Cbar.BuiltIn = False Then Cbar.Delete
        Next
    End Sub
    Sub Creation_Cbar()
        Dim objPopUp    'As CommandBarPopup
        Dim objBtn As CommandBarButton
        Dim P(1 To 6)
        Dim ccomb, ccomb1
        Supp_Cbar
        bandeau = Array(, "bandeau 1 ", "Bandeau 2 ", "bandeau 3 ")
        popupB = Array(, "Outil texte", "Outil couleur", "outil 3")
        With Application.CommandBars("Worksheet Menu Bar")
            For i = 1 To 3
                Set boutonband = .Controls.Add(Type:=msoControlButton, before:=i, temporary:=True)
                With boutonband
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                End With
            Next i
     
            For e = 1 To 3
                Set cpoptexte = .Controls.Add(Type:=msoControlPopup, before:=1, temporary:=True)
                With cpoptexte
     '/// Ajout/Modif
    Dim CBB As CommandBarButton
    Set CBB = .Controls.Add(Type:=msoControlButton)
    CBB.FaceId = 401
    CBB.Caption = "Format de la police"
    CBB.OnAction = "'ProcAction " & Chr(34) & CBB.Caption & Chr(34) & "," & e & "'"
     
    Set CBB = .Controls.Add(Type:=msoControlButton)
    CBB.FaceId = 1728
    CBB.Caption = "Format de la sélection"
    CBB.OnAction = "'ProcAction " & Chr(34) & CBB.Caption & Chr(34) & "," & e & "'"
    '///
                End With
            Next e
        End With
    End Sub
     
    '/// Ajout
    Sub ProcAction(myControlCaption As String, myBande As Long)
    Select Case myControlCaption
      Case Is = "Format de la police"
        CommandBars.ExecuteMso ("FormatCellsFontDialog")
      Case Is = "Format de la sélection"
        If TypeName(Selection) = "Range" Then
          CommandBars.ExecuteMso ("FormatCellsDialog")
        Else
          CommandBars.ExecuteMso ("ObjectFormatDialog")
        End If
    End Select
     
    MsgBox "Bande " & myBande 'pour visualiser (à virer)
     
    End Sub
    '///

  15. #55
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Salut PMO

    vraiment pas mal ton model 1 point

    il y a juste une chose qui cloche

    ca remet en cause mon virage a 360 ° quand a l'utilisation de mon popup (1 clic pour faire un choix a chaque fois )

    non la condition c'est que tout soit dans le ruban

    cela dit je suis pas mal intéressé ou tu va chercher les noms des boite de dialog
    je parais très exigeant mais c'est le but de l'exercice trouver ce qui ne c'est pas fait en vba

    je dis en vba car avec customUI j'ai réussi a la faire mais ca n'a pas d'intérêt dans le cadre de cet exercice

    re
    bon j'ai une petite idée

    mais j'ai oublié ou j'ai vu ca
    comment rendre visible/invisible un groupe de control sans boucle
    sachant que j'utilise "begingroup=true"

    je l'ai lu ca quelque part je me souviens plus ou

    une idée ???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #56
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    je suis pas mal intéressé ou tu va chercher les noms des boite de dialog
    Voir le fichier joint.
    Fichiers attachés Fichiers attachés

  17. #57
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    nickel merci PMO

    il faudra que j'assaie plutard si on peut récupérer les controls de la meme facon que pour les commandsbars
    ce sera peut etre mon prochain exercice


    mais pour le moment je suis coincé

    il y a vraiment beaucoup de restriction avec le worlsheetmenubars

    visiblement a part l'alignement vertical des controls je gagne rien a rester sur ce projet

    j'ai donc repris tout a zero
    je repart donc avec mes 3 boutons bandeau
    ca ca va c'est nickel
    je voudrais cependant que
    quand je clique sur l'un d'entre eux il reste en apparence enfoncé
    pour cela j'ai
    monbouton.state= msoButtonDown
    m
    ais rien y fait il semble que ca soit en lecture seule tout du moins cet état doit être déclaré l'ors de la création du bouton

    moi je me dis que parfois ils s'ennuient chez Microsoft

    a quoi bon avoir la possibilité de cette fonction si elle est inutilisable dynamiquement

    donc ma seconde question sera: quelle est la propriété du bouton que l'on pourrait éventuellement changer lors de son clic et que ce soit visible

    ma 1 ere question
    restant toujours d'actualité rendre invisible /visible un groupe de control( dynamiquement ) sans boucle
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #58
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour Patrick,

    petite parenthèse
    on peut avoir les contrôles un au dessus des autres avec une barre d'outil personnalisé
    identique à ce que tu as fait avec le worlsheetmenubars même mieux.
    avec tout les contrôle que tu veux avec seulement 3 commandbar.

    une barre d'outil personnalisé est beaucoup plus flexible qu'un worlsheetmenubars.
    je t'ai fait un exemple au message numéro 67.
    ce code est simple et facile à comprendre.
    Est-ce que tu l'as essayé?

  19. #59
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    gnain bonsoir

    oui je l'avais vu

    ce que j'aurais aimer c'est pouvoir avoir les trois bouton bandeau et au clic de l'un d'entre eux afficher la barre complète de la bande

    mais tu a raison vu les restriction je vais être obligé de passer comme ca c'est moins joli

    ca y est je me rappele pourquoi je ne l'avais pas garder celle la

    pour les outils texte par exemple (les font et size il faut absolument quelle soit dans un popup
    le onaction de celui ci me permettait de choisir le bandeau

    hors dans un popup il veulent pas rentrer j'ai essayer
    au lieu de les mettre dans cbar je les met dans le popup parent des outils texte ils y sont pas j'ai pas d'erreur pourtant
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #60
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    ce que j'aurais aimer c'est pouvoir avoir les trois bouton bandeau et au clic de l'un d'entre eux afficher la barre complète de la bande
    Bonjour,
    si j'ai bien compris, au départ il y a seulement 3 bouton qui s'appelle bandeau1,2 et 3 et au click de l'un d'entre eux s'affiche le reste.

    si c'est ça, Facile, en plus il y a une séparation entre les 3 boutons bandeaux et le reste,

    copie tout ce code et click sur un des bouton bandeau.

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Sub Supp_Cbar()
        Dim Cbar As CommandBar
        For Each Cbar In CommandBars
            If Cbar.BuiltIn = False Then Cbar.Delete
        Next
    End Sub
     
    Sub Affiche_1()
     Application.CommandBars("MaBarre1").Visible = True
    End Sub
     
    Sub Affiche_2()
     Application.CommandBars("MaBarre2").Visible = True
    End Sub
     
    Sub Affiche_3()
     Application.CommandBars("MaBarre3").Visible = True
    End Sub
     
     Sub Creation_Bandeau_et_Commandbar()
      Dim Cbar As CommandBar, boutMenu(1 To 3), bandeau
      Dim P(1 To 6)
        bandeau = Array(, "bandeau 1", "Bandeau 2", "bandeau 3")
        Supp_Cbar
        For i = 1 To 3
            Set Cbar = CommandBars.Add(Name:="Bandeau" & i, temporary:=True)
     
            With Cbar
                .Visible = True
     
                Set boutMenu(i) = .Controls.Add(msoControlButton)
                With boutMenu(i)
                    .Caption = bandeau(i)
                    .FaceId = 226
                    .Style = msoButtonIconAndCaption
                    .OnAction = "'Affiche_" & i & "'"
                End With
            End With
        Next
     
        For i = 1 To 3
            Set Cbar2 = CommandBars.Add(Name:="Mabarre" & i, temporary:=True)
     
            With Cbar2
                .Visible = False
                Set cpoptexte = .Controls.Add(Type:=msoControlPopup, temporary:=True)
                With cpoptexte
                    .Caption = "   outils texte bande " & i
                    Set palette3 = .Controls.Add(Type:=msoControlGrid, ID:=1927, temporary:=True)
                    Set P(1) = .Controls.Add(Type:=msoControlButton, ID:=113)
                    P(1).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "gras" & Chr(34) & "'"
                    Set P(2) = .Controls.Add(Type:=msoControlButton, ID:=114)
                    P(2).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "italic" & Chr(34) & "'"
                    Set P(3) = .Controls.Add(Type:=msoControlButton, ID:=115)
                    P(3).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "souligné" & Chr(34) & "'"
                    Set P(4) = .Controls.Add(Type:=msoControlButton, ID:=120)
                    P(4).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne gauche" & Chr(34) & "'"
                    Set P(5) = .Controls.Add(Type:=msoControlButton, ID:=121)
                    P(5).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne droite" & Chr(34) & "'"
                    Set P(6) = .Controls.Add(Type:=msoControlButton, ID:=122)
                    P(6).OnAction = "'action " & Chr(34) & e & Chr(34) & "," & Chr(34) & "aligne centrer" & Chr(34) & "'"
     
                End With
     
                Set cpopcoul = .Controls.Add(Type:=msoControlPopup)
     
                With cpopcoul
                    .Caption = "    couleur texte " & i
                    Set palette3 = .Controls.Add(Type:=msoControlGrid, ID:=1927)
                End With
     
                With Cbar2.Controls
                    .Add Type:=msoControlComboBox, ID:=1728
                    .Add Type:=msoControlComboBox, ID:=1731
                End With
     
            End With
        Next
     End Sub

    Citation Envoyé par patricktoulon Voir le message
    au lieu de les mettre dans cbar je les met dans le popup parent des outils texte ils y sont pas j'ai pas d'erreur pourtant
    effectivement!

Discussions similaires

  1. boutton qui ne se voit pas a chaque profil
    Par mario94 dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2012, 17h28
  2. Select qui n'existe pas
    Par daijoubu dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/01/2006, 18h34
  3. Demarer un vieil IBM qui ne voit pas le cdrom
    Par jean christophe dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 14/04/2005, 08h37
  4. Pb de selection qui ne se fait pas
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/08/2004, 10h54
  5. 2 SELECT Qui ne s'entendent pas très bien entre eux :(
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/08/2004, 16h46

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