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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    c'est a dire ?

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    je me suis servi de ton code pour faire un autre bouton.. dans le meme genre
    code du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     butTop = Range("k" & lastline + 7).Top
                butLeft = Range("k" & lastline + 7).Left
                butHeight = Range("k" & lastline + 7).Height
                butWidth = Range("k" & lastline + 7).Width
                Set Bouton = ActiveSheet.Buttons.Add(Left:=butLeft, Top:=butTop, Width:=butWidth, Height _
                :=butHeight * 2)
            With Bouton
                .OnAction = "SaveFiles"
                 .Name = "ouvrir page world "
            End With
    code de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function SaveFiles(MonXls As String)
     
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" _
        & MonXls & ".xls", "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" _
        & MonXls & ".xls"
     
     
    End Function
    meme probleme puisque c'est une fonction avec des parametre..

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ne peux-tu pas lancer une Sub qui lance une fonction avec tes paramètres ?

    Juste une idée comme ça mais je remarque que tu n'utilises même pas le paramètre (MonDoc)...

    A+

    Edit
    Je parle du code se trouvant deux posts en arrière

    Edit 2
    Bidou t'a donné
    Workbooks.Open "C:\Documents and Settings\jmarc\Mes documents\" & Application.Caller & ".xls"

    Application.Caller donne, si j'ai bien compris, le nom du bouton et du fichier : NomFich = Application.Caller (moins le .xls)
    Quand tu click sur ton bouton, tu lances une sub qui s'appelle du nom du fichier, toujours si j'ai bien compris
    Tu récupères le nom du bouton qui celui du fichier, et avec ce nom tu lances la fonction vue plus haut.

    Je dis des bêtises ?

    A+

    NB - Je n'ai pas VBA 2003 et ne peux donc pas le tester

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    j'ai pas tout compris a se que tu me propose...

    NomFich = Application.Caller
    dans mon code ou dans ma fonction ?

    merci

  5. #5
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    suppose que ton bouton qui correspond à toto.xls doit ouvrir toto.doc.

    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
    Public Sub OpenWorddocs()
     
    Dim DocPath As String
    Dim appWrd As Word.Application 
    Dim DocWord As Word.Document
     
        Set appWrd = New Word.Application
        DocPath = "C:\Documents and Settings\avaysse\Mes documents\" & Application.Caller & ".doc"
        If Dir(DocPath) <> "" Then
            Set DocWord = appWrd.Documents.Open(DocPath, ReadOnly:=True)
        Else
            Set docWrd = appWrd.Documents.Add 
            docWrd.SaveAs DocPath
        End If
        appWrd.Visible = True 
     
    End Sub

  6. #6
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    et ton code remplacerai ma fonction
    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
    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
            Set appWrd = CreateObject("Word.Application")
            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
    ??????? : :

  7. #7
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    j'espère

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    voila le code tout bidouillé que te m'a donné plus haut...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                butTop = Range("i" & lastline + 7).Top
                butLeft = Range("i" & lastline + 7).Left
                butHeight = Range("i" & lastline + 7).Height
                butWidth = Range("i" & lastline + 7).Width
     
     
            Set Bouton = ActiveSheet.Buttons.Add(Left:=butLeft, Top:=butTop, Width:=butWidth, Height _
                :=butHeight * 2)
            With Bouton
     
                .OnAction = "OpenWorddocs"
                 .Name = Application.Caller
            End With
    il aime pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Name = Application.Caller
    c'est surement normal..mais quoi metre a la place..


    EDIT : dans le doute j'ai remplacé par mais sa me fait la meme erreur

  9. #9
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    .Name = le nom de ton fichier

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    avec ou sans l'extention ?

  11. #11
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    sans

  12. #12
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut


    sa marche du tonnere.. parcontre le fichier doc.. s'apelle bouton 1350...le com qui est marqué sur le bouton enfait..

  13. #13
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    une derniere question.. comment modifier se code..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public function SaveFiles(MonXls)
     
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" _
        & MonXls & ".xls", "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" _
        & MonXls & ".xls"
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _
        & MonXls & ".xls"
     
    End fonction
    pour qu'il fonctionnne avec exactement le meme bouton..

  14. #14
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    pour changer le nom du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            With Bouton
                .OnAction = "ProcActionBouton"
                .Name = Left(Test, Len(Test) - 4)
                .Caption = .Name
            End With
    pour ton code, tu le mets dans ta fonction de bouton sous forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" _ 
        & Application.Caller & ".xls", "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" _ 
        & Application.Caller& ".xls" 
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _ 
        & Application.Caller & ".xls"

  15. #15
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    il me fait une erreur comme quoi il ne trouve pas les fichiers pour la seconde fonction..

    et le caption ne marche pas

    EDIT : parcontre si je fait

    il me met bien le nom du fichier mais avec l'extention..

    mais
    me renvoi un bouton vide..

  16. #16
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    remontre moi ton code parce que je ne sais plus ou tu en es

  17. #17
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     butTop = Range("i" & lastline + 7).Top
                butLeft = Range("i" & lastline + 7).Left
                butHeight = Range("i" & lastline + 7).Height
                butWidth = Range("i" & lastline + 7).Width
     
     
            Set Bouton = ActiveSheet.Buttons.Add(Left:=butLeft, Top:=butTop, Width:=butWidth, Height _
                :=butHeight * 2)
            With Bouton
     
                .OnAction = "OpenWorddocs"
                .Name = Repertoire
                .Caption = XlsFiles(i)
            End With

  18. #18
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055

  19. #19
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    sa ne marche pas... sa me renvoi un boutton sur lequel il est ecrit
    boutton 1733

  20. #20
    Expert confirmé
    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 : 58
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    montre moi toute la fonction alors (celle qui ajoute les boutons)

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, 19h30
  2. [VBA excel] Probleme sur bouton commande
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/11/2005, 11h10
  3. [VBA-W] Créer un bouton de commande
    Par maketossss dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/11/2005, 18h07
  4. [VBA Excel]collection et type
    Par Tan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/02/2005, 19h22
  5. Réponses: 5
    Dernier message: 04/04/2003, 16h02

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