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 :

[VBA-E]controle de saisie dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 118
    Points : 57
    Points
    57
    Par défaut [VBA-E]controle de saisie dans une cellule
    bonjour,

    je voudrais autoriser de taper que les chiffres 1,2,3,4 et 5 dans une cellule de mon tableau excel...
    pour le faire dans un formulaire, j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBoxNbrePosesTour_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     Dim allowedKeys As String
     allowedKeys = "12345" & Chr(8)
     If InStr(allowedKeys, Chr(KeyAscii)) = 0 Then
      KeyAscii = 0
      ImgAttention.Visible = True
      LbAttention.Visible = True
     End If
    End Sub
    mais pour faire celà dans une cellule, je n'y arrive pas trop... j'étais parti sur un truc du genre : (la cellule à controler est en B4)
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     Dim allowedKeys As String
     Dim reste, NbrePosesTour2
     If (Not Intersect(Target, Range("B4")) Is Nothing) Then 
      If Not mCellule Is Nothing And mCellule.Value <> "" Then
       NbrePosesTour2 = Range("B4").Value
       reste = NbrePosesTour2
       NbrePosesTour2 = ""
       Do While Len(reste) > 0
        If IsNumeric(Left(reste, 1)) Then
          NbrePosesTour2 = NbrePosesTour2 & Left(reste, 1)
        End If
        reste = Mid(reste, 2)
       Loop
       Range("B4").Value = NbrePosesTour2
      End If
     End If
    End Sub
    mais ce n'était que pour n'autoriser que des chiffres.

    De plus cette fonction ne réagit pas lors de la frappe, mais lors de la validation de la cellule.
    Y a t'il un moyen de vérifier le KeyPress sur une cellule particulière ?

    merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Y a t'il un moyen de vérifier le KeyPress sur une cellule particulière ?
    Non, en tout cas pas directement. Peut-être existe-t-il un objet "Barre de formule" pour analyser la frappe, ce dont je doute fort . De toutes façon, tu serais contraint de visiter la barre sous interruption et pour ça que la procédure existe et soit lancée au moment d'entrer dans la cellule et stoppée en sortant.
    Tu peux détourner le problème en plaçant un textbox sur ta cellule pour la saisie et en affectant ensuite sa valeur à la cellule. Tu as les événements keypress, keyDown, etc dans le textbox qui te permettrait d'analyser chaque caractère saisi.

    Juste une idée

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 118
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par ouskel'n'or
    en plaçant un textbox sur ta cellule
    ça pourrait effectivement résoudre mon problème de saisie, mais le nouveau problème sera d'atteindre ce textbox (sans la souris).
    si on se trouve en B3 et que le textbox est en B4, en tapant "flèche droite" on se retrouve sur B4 et dc sous la textbox, non?

    de plus je n'arrive pas à ajouter une textbox directement dans ma feuille excel...

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Deux questions

    de plus je n'arrive pas à ajouter une textbox directement dans ma feuille excel...
    Ajoute la barre d'outils "Commande", c'est là qu'il faut prendre la textBox.
    Si tu as un pb, tu dis

    Pour entrer dans le textbox, dans le code de la feuille de calcul, tu testes la cellule, si B4 alors tu vas dans la textbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    MsgBox "ici " & ActiveCell.Address
    'if l'adresse est B4 alors...
    End Sub
    Pour en sortir : si flèche droite alors C4 ou B5 (pas essayé )
    Si ça te tente, tu dis

    A+

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    c'est déja intégré à excel

    je me place dans une cellule et je fais données validation

    puis options autoriser nombre entier
    puis données je choisis comprises entre
    minimum 1
    maximum 5
    je laisses coché ignoré si vide

    onglet suivant message de saisie
    titre nombre de semaines dans ce mois
    message de saisie entrez un entier entre 1 et 5

    onglet suivant alerte d'erreur
    style erreur
    titre UN BOURRIN DE PLUS
    message d'erreur il faut vraiment être un gros boeuf pour ne pas comprendre ce qu'est un entier entre 1 et 5 décidément on n'est pas en manque d'abrutis

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je peux également appliquer cela à un groupe de cellules

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 118
    Points : 57
    Points
    57
    Par défaut
    c'est exactement ce que je cherchais, nickel tout ça...

    merci à tous les 2
    à+,

    greg

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    J'ai honte, j'ai utilisé ça il y a environ un an et j'ai déjà oublié...
    Tu donnes des cours de remise à niveau, Random ?

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu es plus fait pour donner des cours que pour en recevoir

    avec un régime un peu plus riche en phosphore tu devrais retrouver une
    mémoire d'enfer

    ps sourire simiesque

  10. #10
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Faire manger du poisson à un dodo...
    C'est avec des inepties pareilles qu'on a créé la maladie de la vache folle!!!
    Imaginez le résultat avec un "dodo fou"... Aïe Aïe Aïe...

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    le dronte Raphus cucullatus (sic)
    Didus ineptus (resic) disait Linné ça ne vole pas haut

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

Discussions similaires

  1. [vba excel] chercher un mot dans une cellule
    Par MrYoYo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/02/2009, 17h38
  2. controler les saisies dans une cellule
    Par lecaire dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2008, 19h14
  3. Réponses: 2
    Dernier message: 22/04/2007, 14h27
  4. [VBA-E] Insérez le caractere " dans une cellule
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/09/2006, 16h20
  5. [VBA-E]séparateur de texte dans une cellule
    Par desdenova dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2006, 16h44

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