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 :

Sauver classeur "avec" codes des boutons écrits dans les feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut Sauver classeur "avec" codes des boutons écrits dans les feuilles
    Bonjour,

    J'aimerais que ma macro génère un fichier avec des feuilles et des boutons qui permettent de naviguer entre ces feuilles, puis que tout cela soit enregistré avec les codes des boutons écrits dans chaque code de feuille.

    Pour créer le classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub CreerClasseur()
        Workbooks.Add
        Sheets("Sheet1").Select
        Sheets("Sheet1").Name = "Menu"
        ...
        ...
     
        MyFile = "F:\Mon_fichier.xlsm"
        ActiveWorkbook.SaveAs Filename:= _
            MyFile, _
            FileFormat:=52, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
     
    End Sub
    Ensuite le code crée les boutons.
    A la fin de la macro, le fichier est enregistré :

    Une fois la macro arrivée à la fin, le fichier généré reste ouvert et fonctionne parfaitement.
    Le menu permet d'aller directement à une feuille et le bouton présent sur cette feuille permet de revenir au menu.

    (Code d'un bouton présent dans le code de la feuille menu)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub CommandButton2_Click()
    Sheets("........").Select
    End Sub
    (Code d'un bouton présent dans le code de la feuille précédente)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub CommandButton1_Click()
    Sheets("Menu").Select
    End Sub
    Mais une fois sorti du classeur, si je rouvre le fichier, tous les codes des boutons ont disparu. Ils ne sont donc plus fonctionnels.

    En revanche, si à la fin de la macro, j'enregistre encore manuellement le fichier via le menu d'Excel, et qu'ensuite je sors du fichier, alors si je le rouvre, il fonctionnera encore parfaitement.

    Où est le problème ???
    Je n'ai rien trouvé sur internet pendant 2H.

    J'aimerais que la macro sauvegarde le fichier avec les codes présents dans les feuilles...

    Merci par avance pour votre aide.
    Cordialement,

    Christopher

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    avec l'enregistreur (sous excel 2007)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MyFile = "F:\Mon_fichier.xlsm"
    ActiveWorkbook.SaveAs Filename:=MyFile, FileFormat:= _
       xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Mais as-tu déclaré "MyFile" ?
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    Merci pour la réponse.

    Normalement, le format 52 correspond à xlOpenXMLWorkbookMacroEnabled.

    Quant à la définition de la variable, je ne l'ai pas fait.
    Mais je comprends pas pourquoi cela poserait un souci. Le fichier est bien sauvegardé sous le nom de fichier indiqué.

    Simplement, les codes des boutons cliquables ne sont pas sauvegardés.

    Une idée ?

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Vérifie si ton fichier est bien dans "F" comme tu n'as pas déclaré ta variable (ce qui est fort déconseillé), normalement pour plus de sécurité et moins de surprises
    en haut de module "Option Explicit" qui nous oblige à déclarer touts les variables, dans ton cas
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    Je n'ai pas le fichier sous la main, mais au bureau.
    Je ferai la déclaration de variable dès lundi (+ Option Explicit)

    En revanche, le fichier est bien sauvé à la bonne adresse, qui est bien même plus longue que cela (serveur réseau) :
    "F:\....\.....\Mon_fichier.xlsm"

    Si tu as une autre suggestion, je suis preneur.
    Car je ne sais vraiment pas d'où l'erreur peut provenir.

    Pour info, j'utilise Excel 2007.

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Pour le moment, je n'ai aucune autre idée mais je suivrai le sujet, peut-être apporteras-tu plus de précisions, style : en quel mode de sécurité tu te trouves pour accepter les macros ? ou donneras-tu un peu plus de code pour voir si ça peut venir d'autre chose.....

    Bonne nuit
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

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