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 :

Affectation de macro à un bouton


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Affectation de macro à un bouton
    Bonjour,

    J'ai créé une macro et je l'ai affectée un bouton (bouton créé via Insertion > Formes > Rectangle).
    J'ai également créé un raccourci clavier pour ce bouton.

    Je le fais souvent, et d'habitude ça marche très bien.
    Problème : Excel plante systématiquement quand je clique sur le bouton, alors que le raccourci clavier, lui, fonctionne très bien.
    En mode pas à pas : aucun bug.
    Je travaille sur la version Excel 2010.

    Ma macro consiste à faire des copier/coller d'une feuille à l'autre, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("Feuille1").Select
    Range("A1").Select
    Selection.Copy
    Sheets("Feuille2").Select
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    J'ai perdu beaucoup de temps à essayer de trouver des infos sur le sujet, mais sans succès...

    Une idée ?
    Merci.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Je ne suis pas prêt à jurer que c'est à cause de cela, mais on entend dire que des mises à jour récentes d'Office font souffrir les utilisateurs de contrôles ActiveX :

    Tu peux toujours jeter un œil sur ce sujet-là:

    http://www.developpez.net/forums/d14...feuille-excel/
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    merci pour la rapidité de ta réponse.
    Sujet intéressant en effet... mais qui ne résout pas mon problème.
    Car je ne suis pas passé par les contrôles ActiveX : j'ai uniquement créé une macro affectée à une illustration.

    Je n'ai pas non plus effectué de mises à jour sur Office.

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir

    Citation Envoyé par darcmu Voir le message
    Problème : Excel plante systématiquement quand je clique sur le bouton, alors que le raccourci clavier, lui, fonctionne très bien.
    Ca veut dire quoi en l'occurrence. Une erreur est levée ? Rien n'est exécuté ? L'exécution ne s'arrête plus ?

    Citation Envoyé par darcmu Voir le message
    Je le fais souvent, et d'habitude ça marche très bien.
    Là tu parles de l'affectation d'une macro à une forme ou du raccourci?

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    - Concernant le plantage : immédiatement après avoir cliqué sur le bouton, Excel m'affiche : "Microsoft Excel a cessé de fonctionner" et il s'ensuit et redémarrage du logiciel.
    - Pour la précision : affecter une macro à une forme est quelque chose que je fais régulièrement sans que ça ne pose de soucis.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Vu que le raccourci clavier fonctionne, je ne serais pas étonné que le problème provienne des Select utilisés dans ton code.

    Supprime-les pour les remplacer par le traitement direct des objets concernés.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    Comme vient de le dire Alain, supprime tes .Select, ils sont inutiles.

    Tu peux utiliser ce code (qui est plus propre):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sheets("Feuille1").Activate
    Range("A1").Copy
    Sheets("Feuille2").Activate
    Range("B2").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Avec ce code ça ne devrait plus poser de problèmes.

    Slooby.

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    Ah non, ce n'est pas propre non plus : tout peut se faire en une seule ligne sans Activate
    Suffit pourtant juste de lire l'aide VBA intégrée concernant la méthode Range.Copy

    Un bon code : sans Activate ni Select !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir à tous, entièrement d'accord avec Marc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuille2").Range("B2") = Sheets("Feuille1").Range("A1").Value
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur 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...)

Discussions similaires

  1. Affecter une macro à un bouton
    Par Cercle dans le forum VBA Word
    Réponses: 7
    Dernier message: 08/12/2010, 08h44
  2. affecter une macro à un bouton
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/02/2008, 17h33
  3. Affecter une macro à un bouton
    Par billy78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/11/2007, 10h58
  4. affecter une macro à un bouton dans une feuille
    Par gu000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2007, 14h04
  5. Affectation de macros à des boutons créés dynamiquement
    Par JM_Cholet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/07/2007, 14h09

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