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 :

[EX-XP] lancer un USERFOM depuis un menu personnalisé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut [EX-XP] lancer un USERFOM depuis un menu personnalisé
    Voici ce que je fais pour creer mon menu personnalisé et j'ai beau mettre "show UsFNote" pour lancer mon userform et ca ne fonctionne pas

    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
    Sub Menu_Close()
        Dim MenuName As String
        MenuName = "Fonctions Supplémentaire"
    '   Delete the menu before closing
        On Error Resume Next
        MenuBars(xlWorksheet).Menus(MenuName).Delete
    End Sub
    Sub Menu(Action As String)
    On Error GoTo Gesterr
        Dim Label As Variant
        Dim Labels As String
        Dim Count_Label As Integer
        Dim Macro As Variant
        Dim Macros As String
        Dim Count_Macro As Integer
        Dim MenuName As String
     
        Action = LCase(Action)
     
        MenuName = "Fonctions Supplémentaire"
     
        Select Case Action
            Case "ouverture"
                Labels = "*Imprimer Lettres placements,*Nouvelle Mise à jour des cours,*Suppression des Chèques,Mise à jour des cours,Mise à jour fiches,Note de trésorerie,Edition lettres placements,UsFNote"
                Macros = "Controle_vente_ou_achat_Sicav,majoursVia,SuppressionCheque,majcours,majfiches,note,wordplacementtxt,show UsFNote"
     
                Label = Split(Labels, ",")
                Macro = Split(Macros, ",")
                Count_Label = UBound(Label) + 1
                Count_Macro = UBound(Macro) + 1
     
                If Count_Label + Count_Macro Then
     
                    '   supprimer le menu s'il exist
                     MenuBars(xlWorksheet).Menus(MenuName).Delete
     
                    '   Add the menu
                        MenuBars(xlWorksheet).Menus.Add Caption:=MenuName, before:="Help"
     
                        Dim x As Integer
                        x = 0
                        Do While x < Count_Label
                            MenuBars(xlWorksheet).Menus(MenuName).MenuItems.Add Caption:=Label(x), OnAction:=Macro(x)
                            x = x + 1
                        Loop
                End If
            Case "fermeture"
                 MenuBars(xlWorksheet).Menus(MenuName).Delete
            Case Else
                Err.Raise vbObjectError + 1, "probleme dans la création des menus", "les menus supplémentaire ne fonctionnerons pas correctement" & vbNewLine & "Merci de contacter l'Informatique"
        End Select
     
    FinProg:
     
        Exit Sub
     
    Gesterr:
    Select Case Err.Number
            Case 1004
                Resume Next
            Case vbObjectError + 1
                MsgBox Err.Source & vbNewLine & Err.Description, vbCritical
            Case Else
                'message générique
                MsgBox "Erreur inattendu n° " & Err.Number & vbNewLine & Err.Description
                Resume FinProg
    End Select
    End Sub
    je sais que je peux passer par un sub supplementaire mais si je peux faire sans c'est mieux.

    merci d'avance
    Via

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Par défaut
    Je comprends pas trop ce que tu cherches à faire vu que je n'appelle jamais de macros dans mon code VBA mais pour ouvrir une UserForm tu peux faire tout simplement:

    ou en plus propre car ça te permet ensuite de manipuler l'instance de ton form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim TonForm as NomDeTonForm
     
    Set TonForm = new NomDeTonForm
     
    TonForm.Show
    J'espère que ça pourra t'aider.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    ok, ca ca fonctionne mais si je fais ca, il me faut un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub lance_USF()
     
    ton code
     
    end sub
    mais moi je veux ouvrire monn USF en cliquant sur un bouton de mon menu personnalisé

    sans passer pas cette ecriture

    merci en tous ca de ton aide

    Via

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Citation Envoyé par viavba Voir le message
    ok, ca ca fonctionne mais si je fais ca, il me faut un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub lance_USF()
     
    ton code
     
    end sub
    mais moi je veux ouvrire monn USF en cliquant sur un bouton de mon menu personnalisé

    sans passer pas cette ecriture

    merci en tous ca de ton aide

    Via
    ben non tiens.

    Change cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
               Macros = "Controle_vente_ou_achat_Sicav,majoursVia,SuppressionCheque,majcours,majfiches,note,wordplacementtxt,show UsFNote"
    en remplaçant ton "show UsFNote" par "UsFnote.Show" et cela devrait faire le truc.

    NB : original ton code.....mais intéressant.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    ok, apres changement j'ai un message d'erreur avec ce texte la !!

    "impossible de trouver la marco'NOMduFICHIER!UsFnote.Show'."

    donc ca ne fonctionne toujours pas.

    mais bien vu pour la correction de lancement de usf

    cette macro me permet de faire evoluer la personnalisation plus rapidement en fonction de mes avancement dans le code.

    merci
    Via

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Au temps pour moi.
    Vu ta technique de programmation, ton code de .SHOW du userform doit être dans une macro.

    Ajoute donc une simple sub dans un module, du genre de celui indiqué par Kyria.

    je suppose que la sub s'appelle lance_USF

    Et puis tu change ta fameuse ligne en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Macros = "Controle_vente_ou_achat_Sicav,majoursVia,SuppressionCheque,majcours,majfiches,note,wordplacementtxt,lance_USF"

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

Discussions similaires

  1. [10g] Lancer report depuis le menu Forms
    Par tunis71187 dans le forum Forms
    Réponses: 14
    Dernier message: 03/04/2014, 16h34
  2. Lancer une vidéo depuis un menu
    Par darkteam dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2011, 10h00
  3. [AC-2007] Lancer une requete depuis le menu principal
    Par sebtis dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/09/2010, 13h36
  4. lancer des videos depuis un menu xml
    Par charlie koller dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 18/01/2008, 12h58
  5. [web] lancer page HTML depuis un script perl
    Par lilou0210 dans le forum Web
    Réponses: 7
    Dernier message: 05/11/2004, 16h04

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