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 :

Impossible de conserver le Setfocus dans textbox sans perdre l'utilité de la checkbox [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut Impossible de conserver le Setfocus dans textbox sans perdre l'utilité de la checkbox
    Bonjour,

    J'ai besoin d'aide sur ce petit sujet:

    Je ne comprend pas pourquoi je n'arrive pas à associer la Checkbox avec le TextBox.
    En effet lorsque je supprime la Private Sub Textbox1_Exit le setfocus souhaité sur le TextBox1 ne se fait pas. Dans l'autre cas si je laisse la Private Sub Textbox1_Exit pour conserver le setfocus sur le textbox1 alors je n'arrive plus à cocher ou décocher la Checkbox.


    Je m'excuse d'avance si c'est un problème simple à résoudre mais je n'arrive pas à trouver de solution.

    Merci d'avance,

    Fichier de test pour forum.xlsm

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si je comprends bien, tu gère le exit et focus du textbox1! mais montres nous le code qui explique comment tu le gère!

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    J'ai joint le fichier Excel comportant le code, je pensais que ca suffirait. Mais voici le code :

    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
    Private Sub CheckBox_Urgence_Click()
    Me.TextBox1.SetFocus
    End Sub
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1.Text = "" Then
        Cancel = True
    End If
    End Sub
     
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim lig As Integer
    If KeyCode = 13 Then
        TEXTE = Me.TextBox1.Text
        If Len(TEXTE) > 0 Then
            TEXTE = Int(TEXTE)
                For lig = 2 To 500
                  If Cells(lig, 1) = "" Then
                      Cells(lig, 1) = TEXTE
                      If CheckBox_Urgence.Value = True Then
                          Cells(lig, 1).Interior.Color = 65535
                      End If  
                      Me.TextBox1.Text = "" 
                      GoTo Suite
                   End If
                Next
    Suite: 
        End If   
    fin_sub:
    End If
    End Sub
     
    Private Sub UserForm_Initialize()
    Me.TextBox1.SetFocus
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    écris 1 dans ton texbox et contentes toi de clicker sur CheckBox_Urgence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CheckBox_Urgence_Click()
    Me.TextBox1.SetFocus
    End Sub
    maintenant je comprends bien que c'est pas ce que tu veux mais que veux tu?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    En fait, non ce n'est pas cela que je souhaite obtenir.

    En clair on entre une l'information principale dans le textbox qui est sélectionné automatiquement dès le départ. La checkbox est la pour apporter une seconde information secondaire, selon qu'elle soit cochée ou non.

    Mon problème :

    - A la base la private Sub textbox_Exit qui contient le cancel n'était pas présente, du coup le problème était que le setfocus automatique dans la textbox ne fonctionnait pas après l'exécution de la macro. On était donc forcé de cliquer sur le textBox.

    - J'ai donc essayé d'arranger cela en ajoutant la private Sub Textbox_Exit et la fonction Cancel pour assurer le SetFocus dans le textbox mais du coup la checkBox n'est plus
    sélectionnable. Après exécution de la Macro.

    Et c'est la que je voudrais savoir si vous avez une solution qui permettra d'avoir l'association des deux.

    J'espère avoir été assez clair...

  6. #6
    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 crois nécessaire un exposé détaillé et précis des tenants et aboutissants. Ce n'est pas le cas pour l'instant.
    Si difficulté à rédiger cet exposé --->> description de gestes, pas à pas, et de ce que l'on attend -->>
    Exemple :
    - je fais ce geste et attends ceci
    - je fais maintenant ce geste et attends cela
    cet exposé s'efforcera de ne pas dire des choses telles que "j'ai utilisé ceci" ou "j'ai utilisé cela". Il devra tout simplement dire le geste fait et ce que l'on attend ensuite. Il devra se contenter d'être technique et uniquement et purement technique, si l'on veut mon aide.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Oui je suis d'accord car dans le bout de code que j'ai relevé dans mon poste précédent, un click sur le checkbox donne le focus au textebox donc le check est bien sélectionnable, fugitivement le temps qu'il redonne la main au textbox!

    Si tu regarde bien on coche et on décoche!

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Excusez moi, c'est vrai que j'ai peut être un peu la tête dans le guidon.

    Initialement dans userform:

    Setfocus fixé dans Textbox

    Etape 1: Textbox dans lequel on va insérer une information (exemple : numéro d'OF) qui sera copiée dans une cellule d'une colonne précise.

    Etape 2: Retour dans TextBox après exécution de la copie de l'information saisie. Puis attente pour ajout d'un autre numéro d'OF dans la même colonne.

    Etape 3: La checkBox si elle n'est pas coché permet de définir si l'OF est urgent ou non. (cocher = urgent, pas cocher = pas urgent)

    Problème est que quand j'active la checkbox le Setfocus ne revient pas automatiquement dans le textbox.
    Du coup j'ai créé une private Sub Textbox_Exit pour assurer le maintient du focus dans la textbox mais cela empêche ma checkbox d'être sélectionnante par la suite.
    Au final je voudrais que le focus revienne toujours dans la textbox et que la checkbox soit fonctionnel après une première exécution.

    J'espère que mon explication vous permettra de mieux comprendre.
    Comme dit dans mon premier poste j'ai joint un fichier Excel sur lequel vous pouvez constater que le focus fonctionne par contre la checkbox n'est pas séléctionnable. Si vous supprimez la private Sub Textbox1_Exit vous verrez que le Focus ne se fait plus automatiquement après la première saisie d'information si on conserve la même valeur pour la checkbox.

    N'hésitez pas à me relancer pour expliquer des points que ne serais pas clair. Merci beaucoup pour votre aide.

    Robin

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ton code fonctionne très bien c'est juste l'aspect visuel!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CheckBox_Urgence_Click()
    Me.CheckBox_Urgence.ForeColor = Array(&H80000012, &HFF&)(Abs(CheckBox_Urgence))
    CheckBox_Urgence.Font.Bold = CheckBox_Urgence
    Me.TextBox1.SetFocus
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Me.TextBox1.Text = ""
                      Me.CheckBox_Urgence = False
     
                      GoTo Suite
    dans la notice tu expliqueras qu'il n'y a pas d'urgence à ne rien faire!qu'il faut saisir le numéro d'ore avant de définir son urgence!

    On ne trouvera pas anormal quelle que chose qui est prévu pour fonctionner comme ça!

    Tu dis c'est fait exprès (ce qui n'est pas idiot) et le maillon faible devient le maillon fort!

    C'est le théorème de la tarte tatin!

    Citation Envoyé par Wikipédia
    Tarte tatin:
    Son invention accidentelle en fait un exemple emblématique.
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 14/04/2017 à 10h52.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Merci oui ça pourrait fonctionner comme ça.

    Mais a la base limiter le nombre de manipulation au maximum :

    Par exemple si maintenant je veux saisir plusieurs OF de suite qui ne sont pas urgent je ne sélectionne pas la checkbox et on renseigne autant d'OF que voulu. Par contre si on veut renseigner des OF urgents, on coche une fois la checkbox et on renseigne autant d'OF qu'on veut sans avoir a cocher a chaque fois la checkbox.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.TextBox1.Text = ""
      'tu mets ça en commentaire? Non? Me.CheckBox_Urgence = False

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 6
    Par défaut
    Bonjour,

    Je vous remercie ! En supprimant le décochage automatique de la Checkbox après validation, le fonctionnement correspond à ce que j'avais imaginé !

    A bientot et encore merci !

    Rebonjour,


    Encore une dernière question. Le système fonctionne toutefois je voudrais tout de même comprendre pourquoi il n'est pas possible de se retrouver dans la même Situation qu'au départ?

    - Je peux cocher décocher la Checkbox tout en ayant le Focus dans la TextBox ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1.Text = "" Then
        Cancel = True
    End If
    End Sub
    dans ton code tu dis si mon texte est "" je ne peux pas sortir du contrôle donc pour activer le check il faut entrer une valeur!

    pour le reste le check fonctionnait mais c’était l'aspect visuel qui te faisait croire que ça ne fonctionnait pas d'ou le!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CheckBox_Urgence_Click()
    Me.CheckBox_Urgence.ForeColor = Array(&H80000012, &HFF&)(Abs(CheckBox_Urgence))
    CheckBox_Urgence.Font.Bold = CheckBox_Urgence
    Me.TextBox1.SetFocus
    End Sub

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

Discussions similaires

  1. Ne parviens pas à copier mon code dans Word sans perdre les couleurs
    Par nini_python dans le forum Général Python
    Réponses: 8
    Dernier message: 11/04/2021, 12h08
  2. Insérer un pdf dans word sans perdre en qualité
    Par leguigou dans le forum Word
    Réponses: 5
    Dernier message: 16/03/2010, 16h23
  3. Réponses: 9
    Dernier message: 04/11/2009, 14h54
  4. Ecriture dans TextBox impossible.
    Par sacoum dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 28/05/2008, 15h28
  5. [VBA-E] SetFocus sur TextBox dans UserForm_Initialize ne fonctionne pas ?
    Par Jipété dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/11/2006, 11h39

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