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 :

Sauts de Ligne automatiques sur 2 Textbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Sauts de Ligne automatiques sur 2 Textbox
    Bonjour,
    Sur 1 userform, j'ai placé 2 Textbox saisie_txt_1 et saisie_txt_2 dont la longueur maximale de saisie est de 15 caractères.
    J'ai indiqué cette propriété dans la procédure Initialize de l'userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_Initialize()
    Me.saisie_txt_1.MaxLength = 15
    Me.saisie_txt_1.AutoTab = True
    Me.saisie_txt_2.MaxLength = 15
    Me.saisie_txt_2.AutoTab = True
    End Sub
    Mon problème :
    En cas de saisie sur saisie_txt_1 supérieure à cette limite, dès le 16ème caractère, j'aurais souhaité que le dernier mot, à partir du dernier espace , se reporte sur saisie_txt_2
    Exemple saisie_txt_1 "PAPA MAMAN MONIQ" Dès la frappe du "Q" de Monique, apparaissent
    en saisie_text_1 "PAPA MAMAN" (le 2ème espace serait supprimé)
    en saisie_txt_2 "MONIQ", dès lors la saisie peut continuer sur ce 2ème textbox.
    Ceci en sachant que la saisie sur saisie_txt_1 peut très bien contenir exactement 15 caratères et donc rester entière (ex PAPA MAMAN PAPI)
    Le code de la procédure "Initialize" ne fonctionne pas pour ce type de saisie car elle ne gère pas les espaces.
    Je ne sais pas comment coder.
    J'ai envoyé une pièce jointe, nommée EssaiTexte.xls, mais je ne sais plus si j'ai initié les longueurs maximales à 8 ou 15 caratères (C'est ma 1ère pièce jointe et je ne sais pas comment la récupérer)
    Merci pour votre aide.
    Bien cordialement.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    La propriete focus n'existant pas dans excel, il faut biaiser en mettant a false tous les objets hors celui qui doit prendre le curseur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub TextBox1_Change()
     
    If Len(TextBox1.Text) = 15 Then
        TextBox1.Enabled = False
        TextBox1.Enabled = True
    End If
     
    End Sub

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Userform Sauts de Page sur 2 Textbox
    Merci Jérôme,
    J'ai essayé mais il ne se passe rien.
    Est-ce que la 2ème ligne de ton code ne serait pas Textbox2 ?
    Selon la procédure que j'ai décrite plus haut.
    D'autre part, comment récupérer les 4 caractères M-O-N-I de saisie_txt_1, les placer au début de saisie_txt_2, avant le caractère "Q" saisi en 16ème position, afin d'obtenir MONIQ en début de saisie_txt_2 et continuer la saisie.
    Les 4 caractères M-O-N-I seraient supprimés (avec l'espace les précédant) de saisie_txt_1.
    Cordialement. Marcel.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Le code fonctionne, il n'y a pas d'erreur.

    Ou as tu copié ce code? dans la userform?

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Sauts de Ligne 2 Textbox
    En effet, le code fonctionne. La saisie se prolonge bien sur la textbox saisie_txt_2.
    J'obtiens
    saisie_txt_1 PAPA MAMAN MONI
    saisie_txt_2 QUE
    Il fallait que j'efface le code de la procédure "Initialize"
    Bravo pour cette astuce.
    Toujours pour faire suite à ma demande ci-dessus,
    Quand je frappe le caractère Q donc le 16ème (15+1) caractère, je souhaite :
    1 - récupérer les derniers caractères de saisie_txt_1 qui suivent le dernier espace, ici M-O-N-I, ou plutôt les "couper" pour...
    2 - ...les "coller" en début de saisie_txt_2, et obtenir ainsi
    - saisie_txt_1 "PAPA MAMAN"
    avec suppression du n-ième espace avant le 15ème caractère initial (ici le 2ème)
    - saisie_txt_2 "MONIQUE"
    La règle étant qu'à la fois
    - sur chaque textbox je n'aie que des mots entiers
    - sur chaque textbox je n'aie pas d'espace en fin de texte
    - la longueur de chaque textbox ne soit pas supérieure à 15
    Cette règle sera ensuite généralisée(60 caractères avec n espaces), mais je ne sais pas comment coder pour ce 1er cas.
    Merci pour ton aide, Jérôme. Cordialement. Marcel

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Voila qui devrait faire l'affaire


    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 TextBox1_Change()
    Dim str() As String
     
    If Len(TextBox1.Text) = 15 Then
     
        str = Split(TextBox1.Text, " ")
        TextBox2.Text = str(UBound(str))
        TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - Len(str(UBound(str))))
     
     
        TextBox1.Enabled = False
        TextBox1.Enabled = True
    End If
     
    End Sub

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

Discussions similaires

  1. [Débutant] Textbox text et saut de ligne automatique
    Par peltiarn dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/05/2014, 22h41
  2. Saut de ligne automatique sur un champ li
    Par FMaz dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/07/2009, 05h17
  3. [W3C] Désactiver les sauts à la ligne automatique ?
    Par Ekinoks dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 17/02/2007, 06h22
  4. Retour à la ligne automatique sur un wxButton
    Par mister3957 dans le forum wxWidgets
    Réponses: 1
    Dernier message: 27/02/2006, 00h26
  5. retour à la ligne automatique sur textarea
    Par jpastier dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/10/2005, 00h44

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