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 :

INPUTBOX erreur code [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 32
    Par défaut INPUTBOX erreur code
    BONSOIR le forum
    je viens ici vous demandé un conseille
    voila dans mon userform, j'ai un inputbox voila un petit bout de son code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox2_Change()
    TextBox2.Value = InputBox("quelle dose svp ?"),"dose ?"
    End Sub
    il faut que je rentre 2 fois le chiffre avant qu'il se disparaisse même si je retire le deuxième code ,"dose ?" le pire il fonctionne très bien mais voila je voudrais savoir pourquoi et ou est mon erreur svp
    avec tout ma gratitude

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    je voudrais savoir pourquoi et ou est mon erreur svp
    parce-que tu modifies le contenu de ta textbox et que cela provoque donc à nouveau son évènement Change.

  3. #3
    Membre averti
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 32
    Par défaut
    merci unparia pour votre message
    comment changer la chose si cela est possible sinon pas grave cela fonctionne
    avec tout mes respects

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    La vraie question est probablement celle-ci : pourquoi utilises-tu l'évènement Change ?

    PS : il y en a une seconde : pourquoi as-tu mis ici un code qui n'est très manifestement pas une copie exacte de celui que tu as écrit ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputBox("quelle dose svp ?"),"dose ?"
    n'est pas en conformité avec la syntaxe de InputBox.

  5. #5
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    Si vous voulez avoir une proposition dans votre TextBox2 à l'ouverture du UserForm. C'est pas une bonne manière, vous utilisez Un inputBox pour entrer une valeur dans un TextBox qui est censé avoir la presque même fonction au sein du UF.
    Pour ma part, je vous propose de virer le InputBox et de passer votre message par Userform1_initialize() et d'entrer le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
    TextBox1.Value = "Dose SVP  ?"
    End Sub
    Cordialement

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    non seulement la syntaxe n'est pas bonne mais aussi l'evenement
    il est normal qu'avec l'input dans l'evenement change ca se repete indefiniement

    quand au click il faut pas y penser il ne fonctionnera pas question de focus en conflit avec le input

    donc l'evenement mouse_down avec le control du bouton gauche ou droite de la souris
    bouton 1=gauche:bouton 2 = droite ( de la souris)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Button = 1 Then TextBox2 = InputBox("quelle dose svp ?", "dose ?")
    End Sub
    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

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Transitoire
    C'est pas une bonne manière, vous utilisez Un inputBox pour entrer une valeur dans un TextBox qui est censé avoir la presque même fonction au sein du UF
    Comment na pas saluer la sagesse d'une telle remarque, plus que fondée ?

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    ok je comprends mieux l'utilisation de l'evenement change au depart
    tu veux que ton textbox reagisse un peu comme un input box ou comme les logins dans les page web avec un masque(chaine de caractere)
    dans ce cas le c'est plus compliqué que cela
    imagine tu a "dose svp?" au depart tu tape lla valeur de ta dose et tu change d'avis ou tu veux corriger donc tu efface, ton texte de depart de reviendra pas tout seul
    d'autant plus que au depart avec le texte "dose svp?" il faut tout le selectionner

    donc conclusion tout faux le input est bien necessaire a moins de vouloir s'amuser a mouliner avec l'evenement change

    d'autant plus que l'on peut gerer simplement son affichage par la valeur de base ou vide dans son evenement change

    et que l'on peut faire cette gestion pour 36 textboxs dans une meme fonction

    perso selectionner la chaine(masque) pour pouvoir taper ma valeur a fin qu'elle s'efface m'agacerais tres fortement dans une application

    les inputs sont la pour ca
    ils ont dans l'essentiel du cas present un titre, la question et le textbox pour taper
    mais bon les gouts et les couleurs comme on dit
    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

  9. #9
    Membre averti
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 32
    Par défaut
    BONJOUR LE FORUM
    merci beaucoup pour vos conseilles et vos code constructifs
    patricktoulon merci pour votre code me retire une épine du pied j 'ai plus aucun problème
    avec tout mes respects et ma gratitude pour vos message et votre aide
    l' affaire est résolus

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    de rien
    pour toi ou transitoire puisque l'on doit s'amuser
    testez ca un userform et un textbox
    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 TextBox2_Change()
        With TextBox2:
            If .Value = "" Then
                .Text = "Dose SVP  ?": .SelStart = 0: .SelLength = Len(TextBox2)
                .SetFocus: .ForeColor = vbRed: Beep
            ElseIf .Value = "Dose SVP  ?" Then
                .ForeColor = vbRed: Beep
            Else
                .ForeColor = vbBlack
            End If
        End With
    End Sub
     
    Private Sub UserForm_Activate()
        With TextBox2: .ForeColor = vbRed: .Text = "Dose SVP  ?":: .SelStart = 0: .SelLength = Len(TextBox2): End With
    End Sub
    taper et reculer jusqu'a vider le textbox
    sympa hein!!!????
    mais entre nous l'input n'est pas plus simple
    a mediter
    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

  11. #11
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut

    Citation Envoyé par Transitoire Voir le message
    [...]
    Pour ma part, je vous propose de virer le InputBox et de passer votre message par Userform1_initialize() et d'entrer le code suivant[...]
    Alors, autant mettre le texte directement dans le textbox à la création du formulaire, non? Perso, je n'ai jamais vu l'utilité de Initialize (Si on utilise correctement un userform).

    Nom : 2018-05-06_152211.png
Affichages : 310
Taille : 12,5 Ko




    Cela dit, je ne comprends pas pourquoi on cherche à faire compliqué lorsque l'on peut faire simple? Une simple étiquette devant le textbox et on s'évite une usine à gaz. Les textbox ne sont pas prévus pour cette ergonomie et ça devient vite une pirouette buguogène...

    Nom : 2018-05-06_152428.png
Affichages : 282
Taille : 4,2 Ko
    "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...
    ---------------

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour pierre Fauconnier
    oui bien vu
    donc le texte ecrit en dur en mode vbe et de couleur rouge pour l'exemple
    j'ai ajouté le mousedown au cas ou ce serait pas le textebox qui a le focus au depart
    au mouse down si c'est le texte de base tout est selectionné automatiquement on peut donc taper la dose directement sans selectionner a la main
    ca evite aussi de pourvoir placer le curseur au milieu de la chaine de base
    des que ce n'est plus la chaine de base il le texte est de couleur noire
    si l'on efface la valeur tapée on revient au texte de base et rouge et tout selectionné

    le toulonnais fait joujou
    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 TextBox2_Change()
        With TextBox2:
            If .Value = "" Then
                .Text = "Dose SVP  ?": .SelStart = 0: .SelLength = Len(TextBox2)
                .SetFocus: .ForeColor = vbRed: Beep
            ElseIf .Value = "Dose SVP  ?" Then
                .ForeColor = vbRed: Beep: .SelStart = 0: .SelLength = Len(TextBox2)
            Else
                .ForeColor = vbBlack
            End If
        End With
    End Sub
     
    Private Sub TextBox2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    With TextBox2
    If .Value = "Dose SVP  ?" Then .SelStart = 0: .SelLength = Len(TextBox2)
    End With
    End Sub

    correction :

    et pour eviter de pouvoir selectionner par erreur q'une parti du texte de base ce n'est pas mousedown mais mouseup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox2_Mouseup(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    With TextBox2
    If .Value = "Dose SVP  ?" Then .SelStart = 0: .SelLength = Len(TextBox2)
    End With
    End Sub
    Nom : demo3.gif
Affichages : 304
Taille : 102,4 Ko
    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

  13. #13
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Re Bonjour super tout ça
    Puisqu'on en est à se compliquer la vie pour faire semblant de se la simplifier, j'ai ça aussi:

    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
    Private Sub Label1_Click()
    x = InputBox("Entrez la dose!", "DOSE")
    Label1.Caption = x
    End Sub
     
    Private Sub TextBox1_Enter()
    TextBox1.Value = "SVP  ?"
    End Sub
     
    Private Sub TextBox2_Enter()
    TextBox2.Value = "Dose SVP  ?"
    End Sub
     
    Private Sub UserForm_Initialize()
    CommandButton1.SetFocus
    Label1.Caption = "Dose SVP  ?"
    End Sub
    Si on passe par Tabulation: on arrive sur le textbox dont le texte est surligné. toute l'écriture s'efface d'un Retour et il n'y a plus qu'a écrire. Par contre, si on clique directement sur le TB ça ne marche pas pareil.
    On peut aussi remplacer le TextBox par un simple Label dont le caption serait remplacé par l'écriture du inputBox et la donnée récupérée par la même voie. je ne trouve pas satisfaisant pour l'esprit d'utiliser un système d'entrée de données pour entrée des données dans un "Truc" crée pour cela. On double le risque de panne ainsi que signalé par Pierre Fauconnier.
    Nom : Capture d’écran 2018-05-06 à 15.40.16.png
Affichages : 309
Taille : 59,5 Ko
    Nom : Capture d’écran 2018-05-06 à 15.40.51.png
Affichages : 261
Taille : 15,7 Ko
    Nom : Capture d’écran 2018-05-06 à 15.41.38.png
Affichages : 328
Taille : 59,3 Ko
    Nom : Capture d’écran 2018-05-06 à 15.41.49.png
Affichages : 285
Taille : 14,2 Ko
    Cordialement

  14. #14
    Membre averti
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 32
    Par défaut
    MERCI BEAUCOUP tout est mieux que je pensez
    tout ma gratitude sincère

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

Discussions similaires

  1. erreur code renommer table
    Par milielf dans le forum Access
    Réponses: 7
    Dernier message: 13/07/2006, 13h30
  2. Réponses: 6
    Dernier message: 09/06/2006, 01h19
  3. erreur code pour désactiver molette souris.
    Par rangernoir dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 11h14
  4. [CR] erreur code de touche incorrect ??
    Par CAPPE dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 09/05/2005, 17h52
  5. Réponses: 4
    Dernier message: 09/05/2003, 17h20

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