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 :

Démarrage d'une macro par Enter ou par Tabulation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 55
    Par défaut Démarrage d'une macro par Enter ou par Tabulation
    Bonjour,

    Encore une fois l'homme de l'Est a un problème.

    Je voudrais et je n'arrive pas à faire déclencher une macro par Enter ou par tabulation.
    J'explique :
    j'ai 2 feuilles nommés tout simplement A et B
    J'ai 2 listes qui se trouvent touts les deux en colonne A
    Je souhaiterai que lorsque je tape un nombre dans la colonne A cela déclenche la macro, qui va comparer si dans la feuille B colonne A ce nombre se trouve.
    Soit avec Enter (numérique) soit par tabulation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for toto = 0 to 100
    If cellactive.value=worksheets("B").range("A1").offset(toto,0) then msgbox "Alerte"
    else
    ens if
    next toto
    Merci par avance de votre aide.

    Cordialement

    Norbert

  2. #2
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Bonsoir l'homme de l'Est
    Teste ce code dans le module de feuille de la feuille A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    ' si la colonne est la colonne A (1) et qu'il n'y a qu'une cellule de sélectionnée alors
    If Target.Column = 1 And Target.Count = 1 Then
       'recherche valeur feuille B (formule EQUIV)
       If Not IsError(Application.Match(Target.Value, Sheets("B").Columns(1), 0)) Then
          MsgBox "la valeur existe feuille B, cellule A" & Application.Match(Target.Value, Sheets("B").Columns(1), 0)
       Else: MsgBox "Aucune correspondance."
       End If
    End If
     
     
     
    End Sub
    cordialement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 55
    Par défaut
    Bonsoir Fred65200,

    C'est parfait mais une autre petite demande
    si je veut prendre la valeur de la colonne B
    par exemple :

    si je tape 124 dans la feuille A et que dans la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("B").Columns(1), 0)) = 124
    est ce que je peux par un offset prendre la valeur de la ligne à droite sur la colonne B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaValeur = Sheets("B").range(Columns(1), 1))
    Merci
    A+
    Norbert

  4. #4
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Bonsoir,

    tu n'as qu'à changer le code comme ci-dessous.
    Je t'ai ajouté quelques commentaires. Tu dis si tu as besoin d'explications supplémentaires

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    ' si la colonne est la colonne A (1) et qu'il n'y a qu'une cellule de sélectionnée alors
    If Target.Column = 1 And Target.Count = 1 Then
       'recherche valeur feuille B (formule EQUIV)
       ' la ligne  de code suivante pourrait se traduire par
    ' Si la recherche de la valeur de cellule à l'intérieur de la feuille B colonne B ne donne pas d'erreur, on donne la position de la valeur trouvée.
    If Not IsError(Application.Match(Target.Value, Sheets("B").Columns(2), 0)) Then
          MsgBox "la valeur existe feuille B, cellule B" & Application.Match(Target.Value, Sheets("B").Columns(2), 0) & vbLf & _
    "La valeur de la cellule à droite est """ & _
    Sheets("B").Cells(Application.Match(Target.Value, Sheets("B").Columns(2), 0), "C") & """" & vbLf & vbLf & _
    "Application.Match(Target.Value, Sheets(""B"").Columns(2), 0) donne la position de la valeur trouvée dans la zone de recherche."
       Else: MsgBox "Aucune correspondance."
       End If
    End If
    end sub
    cordialement

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 55
    Par défaut
    Bonjour fred65200,

    TU EST UN CHAMPION, C'EST VRAIMMENT CE QUE JE VOULAIS.Au départ j'ai eu du mal à comprendre ta démarche mais
    en la découpant pas à pas, je l'ai compris.

    JESZCZE RAZ WIELKI DZIEKUJE (ENCORE UNE FOIS UN GRAND MERCI)


    Amicalement

    Norbert l'Homme de l'Est

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

Discussions similaires

  1. exécuter une macro 1 seule fois par semaine ?
    Par deby23 dans le forum VBA Access
    Réponses: 9
    Dernier message: 20/12/2012, 11h22
  2. [WD-2003] Lancer une macro de template personnalisé par ligne de commande
    Par ilive dans le forum VBA Word
    Réponses: 4
    Dernier message: 16/04/2009, 09h28
  3. Réponses: 5
    Dernier message: 25/08/2008, 14h36
  4. appeler une macro sans devoir passer par "outils"->"macro"->"macro"
    Par ririrourou dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 30/06/2008, 15h39
  5. Démarrage d'une macro par SQL Server
    Par PiercingDegree dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/09/2005, 09h13

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