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 :

Valider une box via macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut Valider une box via macro
    Bonjour à tous,

    Voici mon (nouveau) problème :
    J'ai une 50taine de fichiers avec la même structure. Dans chacun de ces fichiers, il y a un "bouton" qui execute une macro quand on clique dessus. A l'execution de cette macro, un message demande la confirmation ou pas à l'utilisateur de lancer le code MACRO, un genre : "Etes vous bien sur de vouloir faire cela ?"

    Le probleme, c'est que chaque fin de mois, je dois ouvrir chacun de ces fichiers, un par un, et cliquer sur le bouton pour mettre a jour les donnees.
    Alors j'ai pensé faire un petit fichier parallele qui ouvrirait chaque fichier l'un apres l'autre, lancerait automatiquement la macro qui est derriere le bouton, sauvegarderait le fichier, puis passerait au suivant.
    En gros, je clique sur un bouton, je vais prendre un café, je reviens, tous mes fichiers sont à jour, et j'ai gagné 1h de travail !!

    Le 2e probleme est que chaque fichier est en liaison avec une base de données. donc je dois egalement passer le message classique "Voulez vous mettre à jour les liaisons" (en cliquant "NON" cette fois !) à l'ouverture de chaque fichier.

    Merci d'avance à vous tous pour votre aide,

    Cordialement,

    Sb

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Pour éviter d'avoir les alertes générées par excel il faut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.displayalerts=false
    ne pas oublier de remettre à true ensuite.

    Ensuite, je pense que le plus simple est que tu fasse une copie de ta macro qui est executée par le bouton. Ensuite tu enlève la partie qui affiche le message. Et tu place ça dans une boucle. En entrée de boucle tu identifie le classeur dans lequel tu travail.

    Ce que je ne sais pas c'est comment selectionner plusieurs classeurs et tourner dessus.

    Je ne sais pas si tu peux faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Workbook in 'Fichier, je ne sais pas comment le dire
    'Executer ta macro
    Next Workbook

  3. #3
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Le problème du display alerte est qu'il répondra avec la réponse par defaut (celle qui est en surbriance) je ne suis pas sure que ce soit ce qui te convient

    Pour boucler sur les différent classeur d'un dossier regarde l'aide la faq et les tutos sur la fonction dir

    Pour boucler sur les classeur ouvert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim wb as workbook
    for each wb in workbooks
    'code
    next wb
    Mais je te conseille d'ouvrir un classeur faire ce que tu a as faire le fermer ouvrir le suivant.

    Commence a chercher comment ouvrir les classeur un a un

  4. #4
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    Mais je sais comment ouvrir chaque classeur, travailler dessus et les refermer. Mon probleme est que la macro que je lance dans chaque classeur attend de moi une validation d'une dialogue box. Ma question est :
    Comment lui envoyer le signal "OUI"'

  5. #5
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Une idée parmi d'autre regarde l'aide a propos de la fonction sendkeys
    Si la solution de diude ne convient pas

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Si tu as la possibilité de modifier la macro, tu peux lui ajouter un paramétre du style Auto as Boolean.
    Ensuite tu fais un test sur sa valeur
    1. True : Je passe a la suite
    2. False ; Je lance la msgbox

Discussions similaires

  1. Insertion d'une ligne via macro + copie de la mise en forme conditionnelle
    Par JustyDark dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2015, 08h43
  2. Supprimer une ligne via macro à partir d'une colonne donnée
    Par muzele dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2012, 10h47
  3. Exécuter une fonction via les Macro
    Par Kephuro dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/01/2008, 23h31
  4. Lancer une cmd via une macro
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/09/2007, 15h11
  5. Réponses: 2
    Dernier message: 04/07/2007, 17h10

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