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 :

[VBA-E]Collection de bouton ...


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut [VBA-E]Collection de bouton ...
    Je reviens à l'attaque sur notre problème de creation dynamique de boutons en VBA Excel...

    Créer les bouton ne pose pas de problème particulier si ce n'est dans le fait de pouvoir leur attribuer des evènements ...
    En efft la methode qui consiste à ecrire le code dynamiquement n'est pas satifaisante ...

    En VB on peut créer une collection de bouton qui répond à une seule sub click par exemple ...
    Comment faire la même chose sous VBA ?
    En plus le tag n'existant pas pour les boutons sous VBA nous sommes obligés de passer per le caption pour le paramètre passer dans la sub click ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Utilises des Shapes au lieu de controle ActiveX, passes ta procédure dans le OnClick et utilises Application.Caller pour connaitre l'appelant.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    oullà bidou ..; ok pour les shapes mais après je suis largué ???

    heu quoi que j'ai testé les shapes et je vois pas ou tu veux en venir ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    je te fais un exemple pour 17 h

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    cool bidou
    mille merci !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    par exemple, je crée autant de bouton que de fichier Excel dans mon répertoire, un clic sur le bouton ouvre le fichier

    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
    Public Sub CreerBouton()
     
        Dim Test As String, cmpt As Integer, Bouton As Button
     
        cmpt = 1
        Test = Dir("C:\Documents and Settings\jmarc\Mes documents\" & "*.xls")
        While Test <> ""
            Set Bouton = ActiveSheet.Buttons.Add(Cells(cmpt, 1).Left, Cells(cmpt * 2, 1).Top, 86.25, 18)
            With Bouton
                .OnAction = "ProcActionBouton"
                .Name = Left(Test, Len(Test) - 4)
            End With
            cmpt = cmpt + 1
            Test = Dir
        Wend
     
     
    End Sub
     
    Private Sub ProcActionBouton()
     
    Workbooks.Open "C:\Documents and Settings\jmarc\Mes documents\" & Application.Caller & ".xls"
     
    End Sub

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut

    je savais que je pouvais compter sur toi ...

    onAction ... encore fallait il savoir à quoi ça sert


    heu sinon tout a fait autre chose tu te rappelle du bouquin ?

    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Tien, je l'avais oublié celui-là.
    Je vais fouiller dans mes cartons

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    pas pressé bidou

    take your time !

    encore merci !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    question subsidiaire biou dsl j'ai pas tout saisi ...


    si j'ai besoin de passer une param dans la fonction ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "findWorddocs("&  XlsFiles(i) &"  ) "
    ne marche pas ...
    je pense que la solution est liée à application.caller ...
    c'est le name du bouton ?

    et le nom de fonction ... faut utiliser celui là ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    normal, le nom du bouton est le nom du fichier dans le code de bidou
    sinon supprime les parenthèses - OnAction n'attend pas de retour.

  12. #12
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    oui application.Caller c'est le nom de l'objet appelant la fonction. Dans mon cas c'est le nom du fichier sans extension.

  13. #13
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    bonjour

    le code passe mais me renvoi une erreur "argument non facultatif" quand je click dessu..( sur le bouton) une idée de la raison ??

    merci
    c'est des choses qui arrivent, c'est la vie...(>_<)!

  14. #14
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    quelle version d'Excel ???

  15. #15
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    excel 2003..
    c'est des choses qui arrivent, c'est la vie...(>_<)!

  16. #16
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    et ca plante sur le open ?

  17. #17
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    sa plante quand je clique sur le bouton..
    c'est des choses qui arrivent, c'est la vie...(>_<)!

  18. #18
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Oui mais c'est quoi le code de la procédure attachée au bouton ?

  19. #19
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Points : 196
    Points
    196
    Par défaut
    code de la procedure...
    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
    Public Function findWorddocs(MonDoc As String)
        Dim DocFiles() As String
        DocFiles = FindFiles("C:\Documents and Settings\avaysse\Mes documents\", "doc")
        Dim preuve As Boolean
        preuve = False
        MsgBox Application.Caller
        For i = 0 To UBound(DocFiles) - 1
            If DocFiles(i) = FicDoc Then preuve = True
        Next
        If preuve = True Then
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''Ouvrir un document Word existant à partir d'Excel
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'necesite d'activer la reference Microsoft Word xx.x Object Library
            Dim appWrd As Word.Application
            Dim DocWord As Word.Document
            Dim DocPath
            Set appWrd = CreateObject("Word.Application")
            appWrd.Visible = True
            DocPath = "C:\Documents and Settings\avaysse\Mes documents\" & FicDoc & ".doc"
            Set DocWord = appWrd.Documents.Open(DocPath, ReadOnly:=True)
        Else
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''Créer un nouveau document Word à partir d'Excel
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'necesite d'activer la reference Microsoft Word xx.x Object Library
    ' Dim appWrd As Word.Application
    ' Dim docWrd As Word.Document
            Set appWrd = CreateObject("Word.Application")
    ' Dim DocPath
            appWrd.Visible = True
            Set docWrd = appWrd.Documents.Add
            DocPath = "C:\Documents and Settings\avaysse\Mes documents\" & FicDoc & ".doc"
            docWrd.SaveAs (DocPath)
     
        End If
    End Function
    c'est des choses qui arrivent, c'est la vie...(>_<)!

  20. #20
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    tu ne peux pas lui passer cela ainsi, ca doit être une procédure sans paramêtre je pense. Il faut ruser avec Application.Caller pour définir le fichier Word

Discussions similaires

  1. [VBA][Excel]Mettre un bouton d'aide sur un userform
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/01/2006, 18h30
  2. [VBA excel] Probleme sur bouton commande
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/11/2005, 10h10
  3. [VBA-W] Créer un bouton de commande
    Par maketossss dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/11/2005, 17h07
  4. [VBA Excel]collection et type
    Par Tan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/02/2005, 18h22
  5. Réponses: 5
    Dernier message: 04/04/2003, 15h02

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