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 :

mouseup qui ne répond pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut mouseup qui ne répond pas
    Bonjour,
    voici un code placé dans une feuille et non dans un userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheets_MouseUp()
        initial
    End Sub
    que je n'arrive pas à faire marcher.
    Je souhaiterais que chaque fois que la souris est activée, une initialisation se fasse dans la routine 'intial' qui ne se trouve pas appelée.
    Merci si vous pouvez m'aider.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il ne me semble pas que cette procédure existe pour une feuille Excel.

    Que veux-tu dire par activée ? Que la souris bouge ? Que l'on clique sur un bouton de celle-ci ?

    Philippe

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut

    ouvre l'aide VBA sur le mot Mouseup. Regarde à quoi cet évènement s'applique.
    Tu n'y trouveras pas un feuille de calcul et encore moins la collection des feuilles de calcul !

  4. #4
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Merci.

    Je souhaiterais qu'après avoir entrer une valeur dans une cellule donnée,
    une routine se trouve appelée pour une mise à jour.
    Je pensais que l'évènement 'mouseup' pouvait marcher.
    Y a-t-il une autre solution ?

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Aucun évènement pendant que tu saisis.
    En quittant la cellule, par contre : utilisation de l'évènement SelectionChange

    Tu peux également utiliser l'évènement Change

    Dans un cas comme dans l'autre, ne peut concerner qu'une Feuille et non la collection (WorkSheets) des feuilles !

  6. #6
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Comment placer Selectionchange ?

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Regarde ce que fait cet exemple rudimentaire (exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Not IsNumeric(Target.Value) Then
       MsgBox "pas un numérique"
       Target.Activate
     End If
    End Sub
    puis essaye de frapper une lettre dans une cellule puis d'aller vers une autre cellule

  8. #8
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Merci.
    voici ce que j'ai mis et qui marche ! grâce à ton conseil.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As range)
       initial
    End Sub
    Je pense pouvoir encore limiter l'action en précisant ce qui est 'Target'

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Citation Envoyé par flamel Voir le message
    Je pense pouvoir encore limiter l'action en précisant ce qui est 'Target'
    Bien sûr.

    Bon !
    Regarde maintenant comment réagit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private anc As Range
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If anc Is Nothing Then Set anc = Target
      If Not IsNumeric(anc.Value) Then
       MsgBox "pas un numérique"
       anc.Activate
      Else
        Set anc = Target
     End If
    End Sub
    C'est un peu moins rudimentaire et plus efficace en raison de divers aspects.
    Analyse et comprends.

  10. #10
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    J'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target As range)
        If Target = range("G12") Then
            initial
        End If
    End Sub
    et ça va.
    Le dernier proposé ne marche pas.

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Citation Envoyé par flamel Voir le message
    Le dernier proposé ne marche pas.
    Tiens donc !
    Je l'ai testé et retesté et viens de le tester encore ===>>> pas de faille
    T'as donc probablement mal recopié, ou recopié incomplètement, etc
    Allez : montre le code de ton module Worksheet ! (tout le code de ce module, de A à Z)

  12. #12
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Ton nouveau code permet de vérifier si c'est un nombre.
    Ai-je bien compris ?

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    oui
    et il fonctionne mieux que le premier car "il ne lâche rien" alors que le 1er peut te lâcher ...
    Le deuxième est impitoyable tant que la cellule ne contient pas un numérique.
    Mais j'attends ce que je t'ai demandé (on va bien voir)

  14. #14
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    Voici :
    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
     
    ' Feuille 2 ,
     
    Dim ScrollSaved As Integer
    Dim x As String
    Dim y As String
    Dim z As String
    Dim xN As Variant
    Dim xA As Variant
    Dim a As Variant
    Dim xRouge As Integer
    Dim xGrun As Integer
    Dim xBleu As Integer
    Private anc As range
     
    Sub initial()
    Beep
        xNumPal = range("numPal").Value
        Worksheets("Feuil2").range("H12").Value = xNumPal
    End Sub
     
     
    Sub chiffres()  ' numéros de correspondance des couleurs de 1 à 7 (ou 4 ou 8 ou autre)
    Application.ScreenUpdating = False
            For iLin = 1 To 47
            For iCol = 1 To 40
                x = Worksheets("Feuil3").Cells(iLin, iCol).Value
     
        For iListe = 5 To 11 ' zListe
            y = Worksheets("Feuil7").Cells(iListe, 1).Value
            If y = x Then
            xN = Worksheets("Feuil7").Cells(iListe, 4).Value
            End If
             nX = Worksheets("Feuil5").Cells(iLin, iCol).Value
          '   Worksheets("Feuil4").Cells(iLin, iCol).Value = "  =," & nX
       Next iListe
     
     
     '           Worksheets("Feuil5").Cells(zListe, 2).Value = iCol
      '          Worksheets("Feuil5").Cells(zListe, 3).Value = iLin
    zListe = zListe + 1
    suite:
             Next iCol
        Next iLin
    End Sub
     
    Private Sub ScrollBarR_Change()
        xRouge = ScrollBarR.Value
      '  Worksheets("Feuil2").Range("D13").Value = xRouge1
      '  Worksheets("Feuil2").Range("H13").Value = xRouge
        couleurChoisiePara
        couleurChoisie
    End Sub
    Private Sub ScrollBarG_Change()
        xGrun = ScrollBarG.Value
     '   Worksheets("Feuil2").Range("D14").Value = xGrun1
        couleurChoisiePara
        couleurChoisie
    End Sub
    Private Sub ScrollBarB_Change()
        xBleu = ScrollBarB.Value
     '   Worksheets("Feuil2").Range("D15").Value = xBleu1
        couleurChoisiePara
        couleurChoisie
    End Sub
     
    Sub couleurChoisie()
        Worksheets("Feuil2").range("zonCarCoul").Cells(1, 1).Interior.Color = RGB(xRouge, xGrun, xBleu)
        Worksheets("Feuil2").range("D13").Interior.Color = RGB(xRouge, 0, 0)
        Worksheets("Feuil2").range("E13").Interior.Color = RGB(0, xGrun, 0)
        Worksheets("Feuil2").range("F13").Interior.Color = RGB(0, 0, xBleu)
    '  Worksheets("Feuil4").Range("AR39:AT41").Value = xRouge1 & ", " & xGrun1 & ", " & xBleu1
    End Sub
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As range)
      If anc Is Nothing Then Set anc = Target
      If Not IsNumeric(anc.Value) Then
       MsgBox "pas un numérique"
       anc.Activate
      Else
        Set anc = Target
     End If
    End Sub
    Private Sub Worksheet_Change(ByVal Target As range)
        If Target = range("G12") Then
        initial
        End If
    End Sub
    Private Sub CheckBox1_Change()
    Beep
            initial
    End Sub
     
     
    Sub couleurChoisiePara()
        ActiveWorkbook.Colors(1) = RGB(xRouge, xGrun, xBleu)
        Worksheets("Feuil2").range("zonCarCoul").Cells(1, -4).Interior.ColorIndex = 1
     
        Worksheets("Feuil2").range("zonCarCoul").Cells(1, 1).Interior.Color = RGB(xRouge, xGrun, xBleu)
        Worksheets("Feuil2").range("H13").Value = xRouge
        Worksheets("Feuil2").range("I13").Value = xGrun
        Worksheets("Feuil2").range("J13").Value = xBleu
    '  Worksheets("Feuil4").Range("AR39:AT41").Value = xRouge1 & ", " & xGrun1 & ", " & xBleu1
    End Sub
    Je souhaite créer une palette de couleurs avec les trois ascenseurs.
    Ce n'est pas terminé !
    Je bloquais seulement sur une valeur, le numéro choisi pour 'ColorIndex', mis dans "G12" (avec un nom)

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    1) je t'avais demandé de faire un test (pour comprendre) sur un exemple, c'est tout.
    2) dans ce test, on n'utilise plus du tout l'évènement Change, mais l'évènement SelectionChange
    Quand tu l'adapteras (çà, ce sera ton seul travail) à ton cas, ce sera dans l'évènement SelectionChange que tu devras donner tes instructions ! (et pas utiliser l'évènement Change à cette fin)
    Bon ....

  16. #16
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2002
    Messages : 391
    Par défaut
    D'accord.
    Merci pour tous tes renseignements.
    Je suis toujours heureux quand j'apprend du nouveau... et il y en a beaucoup !
    Cordialement.

  17. #17
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Problème résolu?
    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!

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

Discussions similaires

  1. onclick qui ne répond pas de manière aléatoire
    Par dubitoph dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/12/2009, 17h30
  2. [AJAX] Destruction d'objet ajax qui ne répond pas
    Par boubacach dans le forum AJAX
    Réponses: 4
    Dernier message: 27/05/2009, 10h12
  3. Dossier qui "ne répond pas"
    Par Hyoga dans le forum Windows XP
    Réponses: 8
    Dernier message: 09/07/2008, 23h48
  4. C# Tuer une application qui ne réponds pas
    Par mayekeul dans le forum C#
    Réponses: 5
    Dernier message: 11/01/2008, 16h08
  5. [VB.NET]Form qui ne répond pas
    Par Pocel dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/07/2006, 10h42

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