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 :

Continuer l'éxécution d'un script après un clique de sourie.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    automatitien
    Inscrit en
    Novembre 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2015
    Messages : 45
    Points : 23
    Points
    23
    Par défaut Continuer l'éxécution d'un script après un clique de sourie.
    Bonjour,

    J'aimerai exécuter un code qui se mettrai en pause à la fin d'une première action, le temps que je clique sur la cellule où je veux écrire le résultat final.

    en gros ça donne:
    je lance le script > "Action 1" > clique sur une cellule > "Action 2"

    Je n'ai pas trouvé d’exemple sur google.....

    Du coup si l'un d'entre vous peut me faire profiter de ses lumières ;-)

    Merci d'avance et bonne journée à vous.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    Je te laisse consulter le site suivant :

    Utilisation de "Inputbox"

    Il va t'expliquer comment, à l'aide de InputBox, demander à l'utilisateur de saisir une cellule ou une plage de cellule

    Si tu as des questions n'hésites pas,

    Bonne journée,

  3. #3
    Membre à l'essai
    Homme Profil pro
    automatitien
    Inscrit en
    Novembre 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2015
    Messages : 45
    Points : 23
    Points
    23
    Par défaut
    Bonjour Trystan441

    ça n'est pas tout à fais ce que j’espérai,
    j'ai modifié mon explication au dessus.

    c'est une genre de "Application.Wait" qui se débloquerai sur un clique plutôt que sur un temps.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Points : 341
    Points
    341
    Par défaut
    J'ai l'impression de ne pas saisir ce dont tu as besoin ?

    Dis moi si je me trompe. Tu cherches à pointer une cellule pour lui dire d'écrire le résultat dans celle-ci.

    Si c'est le cas, alors je te réinvite à suivre le lien que je t'ai envoyé et de lire la partie : Exemple2 :Saisir une adresse de champ

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    c'est un jeu dangereux interrompre une macro

    mais si tu y tien
    voici un exemple avec des cellule numérique
    le calcul se fait au 2d double click sur une cellule

    dans le module de la feuille concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    clique2fois
    End Sub
    dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim clic As Long
    Sub clique2fois()
    Static res As Long
    If clic = 0 Then clic = 1 Else clic = 2
    If clic = 1 Then res = ActiveCell.Value Else res = res + ActiveCell.Value
    If clic = 1 Then Exit Sub
    MsgBox res
    If clic = 2 Then clic = 0
    End Sub
    toute les deux fois tu aura le message avec le résultat de l'adition des deux cellule doublecliquées
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    en gros ça donne:
    je lance le script > "Action 1" > clique sur une cellule > "Action 2"
    n'est pas totalement clair.
    Qu'est Action 1 ? Une macro ou autre ? Si macro : comment est-elle exécutée (par une procédure ? manuellement ? ) ?
    Quel est le code depuis sa déclaration jusqu'à End Sub inclus ?
    Impossible de te répondre avec précision sans ces précisions.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Salut.

    Citation Envoyé par patricktoulon Voir le message
    bonsoir
    c'est un jeu dangereux interrompre une macro[...]
    Je ne vois pas trop en quoi "c'est dangereux" (ça mord, ça explose à la figure? ) et en plus, ça ne veut pas dire grand chose, dans la mesure où il n'est pas possible d'interrompre l'exécution d'une macro (sauf point d'arrêt, physique ou par Debug.Assert pour du débogage). En plus, il faut s'entendre sur le terme "macro"... Je préfèrerais procédure, fonction, propriété. (mais ok, je pinaille peut-être un peu).

    Soit la macro attend une saisie de l'utilisateur et la solution InputBox de Tristan est nickel, mais ça n'interrompt pas la macro, elle se déroule normalement et attend simplement une saisie dans un inputbox. Soit on met un Wait mais ça n'interrompt pas la macro, ça la suspend le temps du wait...

    Soit le code est scindé en deux procédures distinctes, la seconde étant éventuellement déclenchée par une action de l'utilisateur. Mais là encore, il n'y a pas d'interruption de la "macro"... puisqu'il y a deux "macro"

    Valery.petit: Pourrais-tu nous dire si tu as essayé la solution de Tristan et en quoi elle ne te satisfait pas?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    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 sûrement pas au même diapason que vous. Parce que moi, j'en suis encore à pourquoi ?

    Parce que, sauf pour vérifier que la première partie s'est bien déroulée, je n'en vois absolument pas l'intérêt.

    Ou bien la première partie a un effet de débordement sur d'autres plages, ou d'autres feuilles. Et là, je me demande si cela vaut la peine, de laisser tourner une macro dans le beurre ?

    Parce que tant qu'à cliquer quand même, deux macros séparées cela revient à la même chose.

    Ou bien, même si je ne suis pas sur que ce soit la meilleure solution; tu peux toujours essayer de remplacer l'InputBox par un contrôle RefEdit. Mais, cela me semble être un abus de ressources.
    À 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.

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    [...]

    Parce que tant qu'à cliquer quand même, deux macros séparées cela revient à la même chose.[...]
    Pour moi, cela ne revient pas au même. Si on place un inputbox ou un refedit (ne parlons pas ici de ressources, dans 99% des cas, on s'en fout un peu), on permet à l'utilisateur de saisir une info puis l'exécution continue. Si on scinde en deux procédures distinctes, rien ne dit, après la première, que l'utilisateur fera ce qui doit être fait pour lancer la seconde.

    Je pense donc qu'il est intéressant que le demandeur précise sa demande et en quoi la solution de l'inputbox ne convient pas. Sans cela, on théorise dans le vide, à mon avis.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Si on scinde en deux procédures distinctes, rien ne dit, après la première, que l'utilisateur fera ce qui doit être fait pour lancer la seconde.
    Rien ne dit non plus que l'utilisateur serait à forcer dans la "retenue" d'un résultat et son inscription dans une cellule.

    Ce qui interpelle et fait nécessairement penser à une décision purement humaine dont on ne connaît pas le contexte et la justification (jeu ? autre ? ...):
    J'aimerai exécuter un code qui se mettrai en pause à la fin d'une première action, le temps que je clique sur la cellule où je veux écrire le résultat final.
    J'attends donc la réponse aux questions que j'ai posées plus haut
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  11. #11
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour valery.petit,

    J'aimerai exécuter un code qui se mettrai en pause à la fin d'une première action, le temps que je clique sur la cellule où je veux écrire le résultat final.
    Exemple d'une action
    - Copier une valeur d'une cellule à une autre est une action
    - Donner le résultat à une variable par multiplication est un action : x = 3,14 * Range("A2").Value


    Bien sur ton code sera une action ou une suite d'actions =>
    "J'aimerai exécuter un code qui se mettrai en pause à la fin d'une première action …"

    …, le temps que je clique sur la cellule où je veux écrire le résultat final.
    ce qui veut dire que tu cherches à indiquer dans quel cellule le résultat final sera écrit
    dans ce cas là on a bien à faire à : Application.InputBox - on t a donc bien indiquer la solution à prendre
    une fois l'adresse de la cellule définit par le clic puis valider, on enverra donc encore une action ou une suites d'actions finalisant le processus

    Application.InputBox :
    Les paramètres :
    Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
    tous les paramètres ne sont pas forcément nécessaires, tu peux utiliser ce mis en rouge, les 2 1er donnant des informations, le dernier précisant le type de donnée voulu - ici se sera en l'ocurrence une Range : 8
    8 ----> Référence de cellule, sous la forme d’un objet Range.
    Voir le lien pour les paramètres et le type : Méthode Application.InputBox (Excel)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim CellResultat as Range
        ' code …
        ' … …
        Set CellResultat = Application.InputBox(prompt:= "Ton texte", Title:="Ton texte", Type := 8)
        ' suite du code
        ' … …
        ' à la fin
        Set CellResultat = Nothing ' on libère la mémoire concernant la variable
    Si ce n'est pas vraiment cela que tu veux il va falloir que tu sois plus explicite en donnant le détail des tenants et aboutissants, ainsi que le but final …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2008, 17h25
  2. Texte qui s'affiche aprés le clique sur un bouton radio
    Par Rekiem dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/04/2006, 17h32
  3. affichage image après passage de la souris sur bouton
    Par nerser dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/01/2006, 22h53
  4. Réponses: 4
    Dernier message: 04/12/2005, 20h58
  5. [VB6] menu contextuel sur clique droit souris
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/07/2003, 11h07

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