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éclencher une macro si la longueur d'une cellule égal à six(6) caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut Déclencher une macro si la longueur d'une cellule égal à six(6) caractères
    Bonsoir,
    Est il possible qu'une macro se déclenche automatiquement si la longueur de la valeur entrée en [M4] atteint six(6) caractères, sans valider par ENTREE,TAB ou clic avec la souris
    merci par d'avance.

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonsoir, je ne pense pas que ça puisse se faire. En effet, une solution possible est d'utiliser l'évènement Worksheet_Change, mais il ne se déclenchera qu'à la sortie de la cellule par un enter ou clic souris. Si j'ai bien compris, tu voudrais qu'au moment où on entre le sixième caractère dans la cellule M4, la macro se déclenche mais il n'y a pas d'évènement pour suivre l'encodage au fur et à mesure.

  3. #3
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Bonsoir, Franc
    Citation Envoyé par Franc Voir le message
    tu voudrais qu'au moment où on entre le sixième caractère dans la cellule M4, la macro se déclenche.
    C'est exact oui tu as compris mon souhait.

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Ce n'est pas possible pour une cellule de la feuille. Par contre, tu pourrais insérer dans la cellule M4 un contrôle activeX "Zone de texte" et capturer son évènement _Change. Mets les macros ci-dessous dans le code de la feuille dont tu veux suivre la cellule M4:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub TextBox1_Change()
        If Len(TextBox1.Text) = 6 Then
            ' Appeler votre macro ici
            Call YourMacro
        End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub YourMacro()
        ' Votre code de macro ici
        MsgBox "La valeur dans M4 a atteint 6 caractères."
    End Sub
    Si tu dois récupérer la valeur du textbox dans M4, ajoute ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_LostFocus()
        Feuil1.Range("M4").Value = TextBox1.Text
    end Sub

  5. #5
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 264
    Par défaut
    Hello,

    une solution (simpliste) de contournement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        If Target.Address = "$M$4" Then
            Application.EnableEvents = False
            Range("M4") = Left(Range("M4"), 6)
            Application.EnableEvents = True
        End If
     
    End Sub

  6. #6
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Bonjour, merci à vous deux Franc et Nain porte koi
    pour Franc, solution détourner mais elle est bonne merci pour votre aide

    pour Nain porte koi c'est pas ça que j'ai cherché - sans valider par entrée ou TAB en tous cas merci pour votre aide

Discussions similaires

  1. executer une macro apres validation d'une cellule
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2007, 20h20
  2. macro excel : affectation d'une formule à une cellule
    Par titouneee dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/01/2007, 16h53
  3. [VBA-E] Associer une macro à une cellule
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2006, 14h50
  4. [VBA-E]contenu d'une cellule gestion erreur macro
    Par matou_aouh dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/03/2006, 11h18
  5. fixer la longueur d'une cellule
    Par Art19 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/08/2005, 13h22

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