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 :

Problème avec les macro supplementaires


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut Problème avec les macro supplementaires
    Bonjour tout le monde,

    Après avoir créer des macros pour un fichier Excel, j'essaie maintenant de les mettre dans une barre d'outils permettant de simplifier l'appel de ces macros, voila ma marco Comparaison2

    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
    Sub Comparaison2()
        Dim totauxP As Variant
        Dim totauxA As Variant
        
        totauxA = ThisWorkbook.Sheets("2").Range("H58").Value
        totauxP = ThisWorkbook.Sheets("3").Range("H50").Value
        
        Ecart = Abs(Round((totauxA - totauxP), 3))
        
        If Ecart <> 0 Then
            MsgBox ("Passif : " & totauxP & vbCrLf & "Actif est : " & totauxA & vbCrLf & "Ecart : " & Ecart)
        Else
            MsgBox ("Passif : " & totauxP & vbCrLf & "Actif est : " & totauxA & vbCrLf & "le compte est bon")
        End If
    End Sub
    avant elle marchait nikel mais après l'avoir mise comme macro supplémentaire une fois que je click sur le boutton créer pour l'appelé dans ma barre d'outil on me fait une erreur comme quoi l'indice n'appartient pas à la selection à ce niveau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    totauxA = ThisWorkbook.Sheets("2").Range("H58").Value
    je comprens pas pourquoi surtout que ça fonctionnait avant

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    je voudrais voir le code de ton bouton.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    bonjour,

    Voila carement mon workbook

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    Public Sub Workbook_Open()
        Dim CmdBar As CommandBar
        Dim Bouton As CommandBarButton
     
        'Création de la barre d'outils nommée 'MaBarrePerso'
    '    Set CmdBar = Application.CommandBars _
            .Add(Name:="MaBarrePerso", Position:=msoBarTop, Temporary:=True)
     
       Set CmdBar = Application.CommandBars _
            .Add(Name:="MaBarrePerso", Position:=msoBarFloating, Temporary:=True)
     
     
        'Ajout des boutons dans la barre d'outils
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
         .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "Vérification" '<-- texte du bouton
    '    .PasteFace '<-- collage de l'image issue du presse-papier
     
            'Définit "l'image" qui va s'afficher sur le bouton
            .FaceId = 3623
            'Définit quelle macro est associée au bouton.
            'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
            .OnAction = "Comparaison"
        End With
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
         .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "VérificationVraie" '<-- texte du bouton
    '    .PasteFace '<-- collage de l'image issue du presse-papier
     
            'Définit "l'image" qui va s'afficher sur le bouton
            .FaceId = 3623
            'Définit quelle macro est associée au bouton.
            'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
            .OnAction = "Comparaison2"
        End With
     
     
    'With ActiveSheet.Pictures.Insert("X:\fadoua\projet\p.bmp") '<-- insertion de l'image
     '   .Name = "Pic2" '<-- attribution d'un nom à l'image
      '  .Copy '<-- copie de l'image dans le presse-papier
    'End With
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
            .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "Passif" '<-- texte du bouton
    '    .PasteFace '<-- collage de l'image issue du presse-papier
     
            .FaceId = 134
            .OnAction = "Passif"
        End With
    'ActiveSheet.Pictures("Pic2").Delete '<-- suppression de l'image insérée sur la feuille
    'Application.ScreenUpdating = True '<-- réactivation du rafraîchissement de l'écran
     
     
     
    'With ActiveSheet.Pictures.Insert("X:\fadoua\projet\a.jpg") '<-- insertion de l'image
    '    .Name = "Pic3" '<-- attribution d'un nom à l'image
     '   .Copy '<-- copie de l'image dans le presse-papier
    'End With
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
        .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "Actif" '<-- texte du bouton
     '   .PasteFace '<-- collage de l'image issue du presse-papier
     
             .FaceId = 2810
        .OnAction = "Actif"
        End With
    'ActiveSheet.Pictures("Pic3").Delete '<-- suppression de l'image insérée sur la feuille
    'Application.ScreenUpdating = True '<-- réactivation du rafraîchissement de l'écran
     
     
     
    'With ActiveSheet.Pictures.Insert("X:\fadoua\projet\r.gif") '<-- insertion de l'image
     '   .Name = "Pic4" '<-- attribution d'un nom à l'image
      '  .Copy '<-- copie de l'image dans le presse-papier
    'End With
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
        .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "Compte résultat" '<-- texte du bouton
     '   .PasteFace '<-- collage de l'image issue du presse-papier
     
             .FaceId = 2810
            .OnAction = "CompteResultat"
        End With
    'ActiveSheet.Pictures("Pic4").Delete '<-- suppression de l'image insérée sur la feuille
    'Application.ScreenUpdating = True '<-- réactivation du rafraîchissement de l'écran
     
     
     
    'With ActiveSheet.Pictures.Insert("X:\fadoua\projet\r.gif") '<-- insertion de l'image
     '   .Name = "Pic5" '<-- attribution d'un nom à l'image
      '  .Copy '<-- copie de l'image dans le presse-papier
    'End With
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
        .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "La balance" '<-- texte du bouton
    '    .PasteFace '<-- collage de l'image issue du presse-papier
     
             .FaceId = 2810
            .OnAction = "FusionFeuilles"
        End With
    'ActiveSheet.Pictures("Pic5").Delete '<-- suppression de l'image insérée sur la feuille
    'Application.ScreenUpdating = True '<-- réactivation du rafraîchissement de l'écran
     
     
        CmdBar.Visible = True
    End Sub
     
    Public Sub Workbook_BeforeClose(Cancel As Boolean)
        On Error Resume Next
        Application.CommandBars("MaBarrePerso").Delete
    End Sub
    parce que là je trouve même un autre problème de tps en tps un fois ca marche une fois ca bug: dès fois on me dis que c'est impossible de trouver la macro alors qu elle est supplementaire

    Merci d'avance

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Re,

    je suppose donc que le bouton utilisé est celui-ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        With Bouton
         .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "VérificationVraie" '<-- texte du bouton
    '    .PasteFace '<-- collage de l'image issue du presse-papier
     
            'Définit "l'image" qui va s'afficher sur le bouton
            .FaceId = 3623
            'Définit quelle macro est associée au bouton.
            'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
            .OnAction = "Comparaison2"
        End With
    peux-tu mettre le module Comparaison2 en debug et quand ca plante me donner l'instruction + les variables (a afficher par exemple fans la fenêtre immédiate).

    Exemple si sa plante sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        totauxA = ThisWorkbook.Sheets("2").Range("H58").Value
    Tu me donnes :
    Thisworkbook.name
    ... hep hep hep : tu es sur que un Sheets du nom "2" existe et pas le sheet n° 2 qui est sheets(2)

    Pour etre sur,
    fais tourner ceci

    for i = 1 to sheets.count
    debug.print sheets(i).name
    next

    et tu me donnes la liste.
    Autrechose, des variables totaux en variant, c'est pas top. Mieux vaut des zones numériques (long, single,...) et éviter le .value

    cette instruction peut-etre donc simplifiée en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        totauxA = ThisWorkbook.Sheets("2").Range("H58")
    je t'atends pour la suite.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    J'espère que t'a passé un agréable week end sinon pour revenir à notre discussion en fait après plusireurs manip j'ai remarqué un problème plus grand: j'avais créé un nouveau classeur Excle ou j'avais aucune macro et ce qui se produit c'est que quand j'appele mes macro sup dans ce nouveau classeur on me dit que c'est Impossible de trouver la macro désirée. est ce que ça veut dire que pour tout nouveau classeur je dois recodé les macro dedans?? et que mes macro sup me permettent juste d'afficher la barre d'outils ou quoi??

    PS: dsl pour le retard mes mon PC commence à me faire des caprices

    amicalement

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut Rirourou,

    super week-end merci. festival Couleur-Café à Bxl (génial).


    La syntaxe à utiliser pour .OnAction est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LeBouton.OnAction = "'" & NomClasseur & "'!" & NomMacro
    Donc un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lebouton.OnAction= 'Monfichier.xls'!Comparaison2
    Attention a ne pas oublier les simples quotes.

    Si cela ne répond pas à ta question, continue à lire.



    Pour ta dernière question, est-ce que je comprends bien ton problème quand je dis que tu veux utiliser ta barre d'outil dans/pour un autre fichier excel que celui par lequel elle est créée ?

    Deuxième question : le fichier qui crée la barre d'outil (l'appel fichier du "code", laisse-t'il la barre d'outil permanente ?
    Troisième question : le fichier du code est-il ouvert (actuellement )chaque fois que tu veux utiliser son code ?

    Dernière qu'estion, peut-être simplifiant tout : les macros du fichier code, ainsi que les boutons doivent-ils être utilisables pour chaque fichier excel ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    re,

    Bon pour rien te caché j'ai rien compris du code que tu m'as demandé d'ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lebouton.OnAction= 'Monfichier.xls'!Comparaison2
    Le monfichier.xls ça représente quel fichier au juste?

    sinon pour repondre à tes questions, oui effectivement je cherche à utiliser mes macros sur n'importe quel nouveau fichier autrement dit oui je veux utiliser ma barre d'outil dans/pour un autre fichier excel que celui par lequel elle est créée.
    Pour la barre d'outils permanente ca depond de ce que tu veux dire pas cela mais ma barre d'outils s'affiche automatiquement une fois que j'ouvre un fichier Excle, n'importe le quel si c'est pas moi qui la ferme ben elle reste afficher. donc si c'est ca pour toi etre permanente oui mon Workbook permet cela.
    Pour le fichier du code que j'ai nommé resumé.xla, il n'est jamais ouvert sauf qu'à d'erreur (ce qui est le cas pour moi) ou j'ai accés carement au code VBA mais ça n'ouvre en aucun cas le fichier lui même
    Et pour repondre à la dernière question ben mon but est effectivement que les macros et les bouttons codé dans resume.xla soient utilisés pour tous autre fichier Excel

    Ps: heureuse pour toi pour ton super week end

    Amicalement

  8. #8
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    1)
    Ps: heureuse pour toi pour ton super week end


    2)
    Bon pour rien te caché j'ai rien compris du code que tu m'as demandé d'ajouter
    Code :

    lebouton.OnAction= 'Monfichier.xls'!Comparaison2

    Le monfichier.xls ça représente quel fichier au juste?
    Ca veut dire que ton code doit être adapté de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        With Bouton
         .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "VérificationVraie" '<-- texte du bouton
    '    .PasteFace '<-- collage de l'image issue du presse-papier
           
            'Définit "l'image" qui va s'afficher sur le bouton
            .FaceId = 3623
            'Définit quelle macro est associée au bouton.
            'Cette macro sera lancée à chaque fois que vous cliquez sur le bouton.
            .OnAction = "'resume.xla'!Comparaison2"
        End With
    3) Si tu veux que ton code et tes boutons fonctionnent pour tous tes classeurs excel,

    tu dois placer ton classeur resume.xla à un endroit précis. (Application.path & "\XLSTART"

    Lit ceci pour savoir comment faire : http://www.developpez.net/forums/sho...d.php?t=564717



    Si tu as de problèmes pour le mettre en place, regarde ici. http://www.developpez.net/forums/sho...d.php?t=570148

    J'espère que tu comprendras.... sinon reviens

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    Re,

    J'ai pas pu verifier car je bosse sur un PC géré par un serveur et que j'ai pas le droit d'administrateur donc j'ai pas eu le droit d'inserer mon resume.xla dans l'emplacement que tu m'as suggéréé mais bon ... je te fais confiance si ça a marché pour toi c'est que ca devrais surment marché pour moi je tenais qd meme à te remercier en attendant que je voie ce que ca donne pour moi j'espère que le cauchemar va enfin finir

    Amicalement

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    bonjour Godzestla;

    Enfin j'ai réussi à integrer mon code dans le serveur et je l'ai mi comme tu m'as conseillé a cet enplacement:
    c: Programme File-->Microsoft Office-->Office10-->XlStart

    Mais malheureusement ça donne rien même ma jolie barre d'outils à disparue. Que dois-je faire

  11. #11
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut ririrourou (ca me fait penser à un chat),

    procédont par étapes :

    0) Code intégré dans le serveur ? gasp !! Ca veut dire quoi ca ? c'est sur le pc ou ca tourne qu'il te le faut. !!
    1) Quelle version de excel as-tu ? Si c'est 2003, ton fichier est mal placé.
    2) Pour que ta barre d'outil soit permanente, il faut utiliser le paramettre Temporary =False avec Commandbar.add

    Exemple ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Application.CommandBars.Add("MyCutePDF", msoBarTop, MenuBar:=False, Temporary:=False).Protection = msoBarNoProtection

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    salut Godzestla;

    (oui t'as raiosn moi aussi ca me fait pensé a ca )

    0) ben je travaille sur mon PC mais pourle mettre dans XlStart il faut imperativement passé par le serveur qui gère toutle réseau autrement ça ne fonctionnera pas donc pourl'histoire du serveur c'est juste pour le placer

    1) je travaille avce Excel 2002

    2) c'est fait mais rien a donné je dois tjrs cliqué deux fois sur Résumé.xla qui est sur Xlstart pour que la barre d'outils s'affiche

    j'en peux pluuuuuuuuuusssssssss pitiééééééééééééééééééééééééééééééé

  13. #13
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Zen....camarede, on fait pas un en un jour.

    Donc excel 2002 ! Ok.

    Ca veut dire que sur ton pc, dans excel, dans VBA, dans la fenetre immediate quand tu tapes :
    tu obtiens
    C:\Program Files\Microsoft Office\OFFICE10
    yes or No ?

    Ca veut dire que ton fichier machin.xla est donc placén sur ton pc à
    C:\Program Files\Microsoft Office\OFFICE10\XLSTART
    yes or No ?

    Ca veut dire que dans excel, dans vba, dans la fenetre a gauche project, tu vois ton classeur dans la liste (comme dans la vignette que j'ai atatché on voit GSAPI_VBA.XLS qui pour moi est placé dans C:\Program Files\Microsoft Office\OFFICE11\XLSTART car j'ai excel 2003) yes or no ?

    Car veut dire que tu as bien lu ma précédente réponse et que tu as bien créé ta barre avec Temporary = false ? yes or no ?

    A toi féline !

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    un seul mot OUI mais ca marche tjrs pas et c'est ce qui me tue

  15. #15
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Je crois que tu mélanges 2 problèmes, car tu dis que ta barre d'outil n'est pas là.

    Ca ne veut pas dire que ton code machin.xla n'est pas juste ou n'est pas disponible mais seulement que ta barre d'outil n'est pas présente pour l'utiliser.

    Peux-tu essayer de lancer Comparaison2 via la fenetre d'exécution, histoire dêtre ceratin que ton resume.xla est bien ce qu'il prétend. Ca marche ?

    Histoire d'être ceratin que je comprends juste (et a propos sorry pour les fautes de frappe mais je trace car pas trop de temps), tu avais pensé quoi de ta barre d'outil ?

    Qu'elle doit se charger toute seule comme une grande sur ton pc quand tu ouvres excel ?

    Le code pour afficher cette fameuse barre, est-il dans Resume.xla ?
    C'est nécessaire si la barre est permanente ?

    moi je fait aurtrement (mais je ne suis pas la science infuse) : Je fai un petit programme de setup (excel) qui lance le code d'ajout de cette fameuse barre avec les boutons et tout le toutim..... et dans mon fichier de XLSTART, je met juste le code appelé par les boutons.

    Je lance le setup 1 seule fois, avec temporary=false pour la barre et ma barre reste jusqu'à ce que je la supprime (donc pour toujours s'il y a lieu).

    peux-tu essayer cela ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    bon je t explique mon problème:

    oui normalement le programme fait en sorte que Normalement la barre d'outils soit affiché une fois Excel est lancé j'ai essayé de voir si le code fonctionné et Hélas ca fonctionne pour tout sauf une la chose que je comprens pas et comme par hasard c'est la fameuse macro 'comparaison' (malgré que j'ai modifié le code et que j'ai mis le .OnAction = "'resume.xla'!Comparaison" la chose qui fonctionne super bien localement donc pour voir si ça marche j'ai cliqué pour ouvrir mon fameux fichier resume.xla dans XlStart et c'est la ou ma barre d'outil s'est affichée sinon ça ne s'affiche jamais et ppur finir dans résumé.xla il y a toutes mes macros aussi bien que ma barre d'outils pour les afficher

  17. #17
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    2 pistes :

    1) Ta macro d'affichage de la barre d'outil est-elle bien dans ThisWorkbook de résumé.xla et pas dans un module ou un sheet ?

    2) Tu n'as vraiment pas envie d'essayer mon systeme de créer un fois la barre d'outil, hors de resume.xla , car si cette barre est permanente, a quoi sert de la recréer chaque fois (tu me suis)
    (surtout que tu n'as pas facilement accès à XLSTART vu les droits....! si tu dois corriger qqchose.)
    Et le code est exactement le meme, sauf que tu le sort de ton XLA et que tu le tourne only once !

    Mais bon, tu fais comme tu le sens .

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    donc si j ai bien compris:

    tume demande de créer un autre fichier excle ou je vais mettre mon workbook mais je dois obligatoirement réécrire un autre fichier pour mes macros pour k elle fonctionne elle doivent exister non ??? et je dois aussi les mettre dans mon XlStart pour qu'elles puissent s'executer non ??? si c'est le cas je crée mon nouveau fichier sur le champ

  19. #19
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Juste un fichier excel qui reprend ton code d'ajout de ta barre d'outil, de ses boutons.... etc et qui fait la barre permamente avec temporary =false

    ce code se trouve tel quel dans resume.xla.

    Tu l'exécute, ta barre d'outil doit venir et comme ton resume.xla est normallement actif, la barre d'outil doit marcher.

    Et les boutons savent que le code est dans resume.xla grace à 'Resume.xla'!Comparaison. Tu te souviens ?

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Points : 76
    Points
    76
    Par défaut
    ouffff enfin la jolie barre d'outil s'affiche et je peux exécuter pas mal de macros enfin toutes sauf celle de Comparaison d'ailleurs je compren toujours pas pour quoi sinon j'étais obligée de supprimer mes jolie dessin de mon workbook que que ca marche sinon ca marché pas ca t'as déja fait ça toi??? enfin ce ke je veux dire c'est que avant j'utilisais

    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
     
     
    With ActiveSheet.Pictures.Insert("X:\fadoua\projet\p.bmp") '<-- insertion de l'image
       .Name = "Pic2" '<-- attribution d'un nom à l'image
      .Copy '<-- copie de l'image dans le presse-papier
    End With
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
        .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "Passif" '<-- texte du bouton
        .PasteFace '<-- collage de l'image issue du presse-papier
        .OnAction = "'C:\Program Files\Microsoft Office\Office10\XLStart\macro.xla'!Passif"
     
       End With
    ActiveSheet.Pictures("Pic2").Delete '<-- suppression de l'image insérée sur la feuille
    Application.ScreenUpdating = True '<-- réactivation du rafraîchissement de l'écran
    et mnt j'étais obligée de mettre que ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
        Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
        With Bouton
            .Style = msoButtonIconAndCaption '<-- bouton avec icône + texte
        .Caption = "Passif" '<-- texte du bouton
     
            .FaceId = 134
            .OnAction = "'C:\Program Files\Microsoft Office\Office10\XLStart\macro.xla'!Passif"
     
        End With

Discussions similaires

  1. Parser CDT : problème avec les macros
    Par bpy1401 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 05/01/2010, 07h22
  2. [XL-2003] problème avec les macros vba
    Par jess59 dans le forum Excel
    Réponses: 6
    Dernier message: 27/05/2009, 13h28
  3. [Macro] [Débutant] Problème avec les Indice colonne
    Par BenoitM dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/11/2008, 11h30
  4. Réponses: 2
    Dernier message: 07/08/2008, 08h24
  5. Problème avec les macros _RPT et _RPTF
    Par pikatshu dans le forum C++Builder
    Réponses: 0
    Dernier message: 12/11/2007, 12h31

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