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

VBA Word Discussion :

[VBA-W] - TextBox dans userform - Supprimer 1 caractère


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut [VBA-W] - TextBox dans userform - Supprimer 1 caractère
    Bonjour à tous.

    J'ai un problème dans une macro word.
    J'ai une zone de texte dans laquelle je souhaite pouvoir utilisé la touche Entrée pour le multiligne, ça c'est bon, ça marche.

    Ce qui me pose problème, c'est au moment de la fonction Remplace.
    Sur le document, chaque nouvelle ligne commence par ce caractère , et c'est embetant.

    Donc si quelqu'un a la solution pour supprimer ce caractère, merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Si tu fais une recherche sur le code caractere chr(13) et que tu le supprimes en le remplaçant par "", çà ne marche pas ???

    Bon courage, le développemenbt sous Word, c'est vraiment spécial
    j'en ai déjà fait un peu et j'espère ne jamais avoir à en refaire

  3. #3
    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
    Essaie de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveDocument.Shapes(1).TextFrame.TextRange.Text = _
    Replace(ActiveDocument.Shapes(1).TextFrame.TextRange.Text, vbCr, "")
    Testé
    A+

    NB - C'est la même chose sur Excel

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Ah .... excuses mon ignorance, mais je le met où ce code, au niveau de quelle commande ?

    Donc pour info, ma zone de texte s'appelle txtdoc, au cas où ça peut servir ...


    Merci d'avance

  5. #5
    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
    Le code que je t'ai donné va dans une macro et supprime les retours à la ligne dans une zone de texte.
    Citation Envoyé par Tu
    J'ai un problème dans une macro word.
    C'est ce que Helios, au vu de sa réponse, et moi, avions compris.
    Visiblement ce n'est pas ça.
    Apparemment, tu as un problème d'affichage : Auquel cas, fais Ctrl + * et les carrés dont tu parles qui se trouvent en début de ligne dans les tableaux disparaîtront. Ctrl + * sert à visualiser les caractères invisibles et les caractères de contrôle utilisés dans le texte (tabulations, espace, retours à la ligne, espaces "durs" etc...)
    Si ce n'est pas ça, dis-nous où se trouvent les ¤ puisque ce n'est pas dans la zone de texte.
    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Autant pour moi.

    Le dit caractère ne se trouve pas dans la zone de texte, mais sur le fichier word, une fois que la fonction Remplace est exécutée.
    En rouge la zone de texte


    Et donc voici le résultat une fois la fonction Remplace exécutée


    Donc il se peut que le code que tu m'as fourni fonctionne, mais où le mettre dans le script ?

    Dans les propriétés de la zone de texte, EnterKeyBehavior en True, et Multiligne est True aussi.

  7. #7
    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
    Comment insère-tu ton texte ?
    Tu ne dois pas mettre vbcrlf comme caractère de retour à la ligne. Essaie avec vblf ou vbcr mais je crois que c'est vblf (?)
    Ensuite, ce n'est pas une zone de texte, qui elle s'insère dans le document, mais une textbox ou un label dans un userform... D'où notre difficulté de compréhension.
    A+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ouskel'n'or
    Comment insère-tu ton texte ?
    Tu ne dois pas mettre vbcrlf comme caractère de retour à la ligne. Essaie avec vblf ou vbcr mais je crois que c'est vblf (?)
    Ensuite, ce n'est pas une zone de texte, qui elle s'insère dans le document, mais une textbox ou un label dans un userform... D'où notre difficulté de compréhension.
    A+
    Ah ... oui ... autant pour moi ... c'est bien une textebox dans un userform.

    Voilà ma ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub txtdoc_Change()
    ActiveDocument.Shapes(1).TextFrame.TextRange.Text = _
    Replace(ActiveDocument.Shapes(1).TextFrame.TextRange.Text, vbLf, "")
    End Sub

    Je ne comprend plus pffffffffffff
    Est-ce que c'est bon comme ça ?
    Faut-il remplacer le 1 dans le script par autre chose ?

    Ca deviens compliqué et je ne trouve pas où est l'erreur

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    cela c'est la ligne de code que ta donné ousk' avant que tu pense à lui dire que le textbox était sur une userform..! ... comment rempli tu actuellement ton textbox..? c'est la qu'il faut rajouter le remplace...!

  10. #10
    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
    On va en sortir, oui ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    txtdoc.text = Replace(txtdoc.text, vbcrlf,"")
    txtdoc.text = Replace(txtdoc.text, vbcr,"")
    txtdoc.text = Replace(txtdoc.text, vblf,"")
    C'est l'un de ces trois codes qui te permettront de supprimer le retours à la ligne.
    S'il te manque un espace après effacement, c'est l'un de ces trois là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    txtdoc.text = Replace(txtdoc.text, vbcrlf," ")
    txtdoc.text = Replace(txtdoc.text, vbcr," ")
    txtdoc.text = Replace(txtdoc.text, vblf," ")
    Tu les testes tous les trois dans la macro de ton choix mais je dirais dans Userform_initialize

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par bbil
    cela c'est la ligne de code que ta donné ousk' avant que tu pense à lui dire que le textbox était sur une userform..! ... comment rempli tu actuellement ton textbox..? c'est la qu'il faut rajouter le remplace...!
    Salut

    Bon ... les 6 codes que ousk' m'a donné ne fonctionnent ni dans la fonction Remplace, ni dans la UserForm, ni dans la ligne de code de la textbox ...

    Dans l'utilisation, quand j'ouvre le doccument, la macro s'ouvre, je rempli les textbox, et ensuite j'ai un bouton de commande Créer, qui fait appel à la fonction Remplace, donc qui rempli les champs voulus dans le document word ...

    Là je calle, je sais plus ...

  12. #12
    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 un bouton de commande Créer, qui fait appel à la fonction Remplace, donc qui rempli les champs voulus dans le document word ...
    Montre ton code pour faire ça

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Pour le bouton de commande Créer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub cmdCréer_Click()
    Remplace
    Unload Me
    MsgBox "Création terminée.", vbInformation, "OK"
    Application.WindowState = wdWindowStateNormal
    'réglage de base
    Application.Height = 500
    Application.Width = 650
    Application.Left = 50
    Application.Top = 50
    End Sub
    Pour la fonction Remplace que j'ai mis en module ( là j'ai juste mis ce qui concerne la textbox concernée )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function Remplace()
    'Procédure de remplacement
    With ActiveDocument.Content.Find
     
    .Text = "§doc§"
    .Replacement.Text = frmUserForm1!txtdoc.Text
    .Execute Replace:=wdReplaceAll
     
    End With
    End Function

  14. #14
    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
    Le texte à remplacer est dans un textbox ou dans le document ?
    Ce que tu fais (#¤§@?), c'est un remplacement dans le document, pas dans le textbox.
    Tu dis

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ouskel'n'or
    Le texte à remplacer est dans un textbox ou dans le document ?
    Ce que tu fais (#¤§@?), c'est un remplacement dans le document, pas dans le textbox.
    Tu dis
    Je rempli la textbox qui est dans le userform
    Ce qui est saisi dans la textbox remplace dans le formulaire le texte suivant §doc§, dont voilà le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .Text = "§doc§"
    .Replacement.Text = txtdoc.Text
    .Execute Replace:=wdReplaceAll

  16. #16
    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
    Dis donc, on est loin de ta question d'origine
    Sur le document, chaque nouvelle ligne commence par ce caractère , et c'est embetant.

    Donc si quelqu'un a la solution pour supprimer ce caractère, merci d'avance.
    Fais un effort pour rédiger tes messages. La question est pourtant simple :

    "Comment remplacer du texte dans un document par celui saisi dans un textbox situé dans un userform."

    Tu me confirmes que c'est bien ce que tu veux, après on verra.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ouskel'n'or
    Dis donc, on est loin de ta question d'origine
    Fais un effort pour rédiger tes messages. La question est pourtant simple :

    "Comment remplacer du texte dans un document par celui saisi dans un textbox situé dans un userform."

    Tu me confirmes que c'est bien ce que tu veux, après on verra.
    Comment le remplacer ça je sais, le code je l'ai.
    Le problème est que quand tu es en multiligne dans une textbox, lorsque tu exécutes la fonction Remplace, tu te retrouves avec ce fameux caractère à chaque nouvelle ligne, sur le document. Et c'est ce caractère que je veux supprimer, ce qui est expliqué dans mon premier message ( peut-être mal je l'accorde ) ...

    Bon c'est pas grave, je ne suis pas compris, ou je m'exprime mal, je vais voir autrement sinon ...

    Merci quand même ...

  18. #18
    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
    Meûh non ! On va le faire ce remplacement !
    Je fais ma boîte, je colle dans le texte pour voir de quoi il retourne et je te réponds...
    A+

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par ouskel'n'or
    Meûh non ! On va le faire ce remplacement !
    Je fais ma boîte, je colle dans le texte pour voir de quoi il retourne et je te réponds...
    A+
    Merci à toi

    Ce qui aurai pu être pratique, c'est que je t'envoi le formulaire par mail, que tu ai le formulaire complet pour que tu puisses voir de quoi il en retourne ...

    Si tu es OK dis moi ...

  20. #20
    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
    Tu ne peux pas le mettre sur e forum, je regarde et si tu veux, je le détruis après (Tu dois le Zipper)
    A+

    PS - J'ai fait exactement ce que tu dis et je n'ai pas de ¤ ni de quoi que ce soit qui s'affiche dans la feuille. Ton fichier serait bien utile en effet

Discussions similaires

  1. [XL-2010] Créer Textbox dans Userform via procédure externe
    Par papy_l dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/02/2015, 17h49
  2. focus sur TextBox dans UserForm
    Par Touffe54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/11/2010, 23h58
  3. [XL-2003] [VBA] Objet Chart dans Userform : déclaration des données ?
    Par CriCri98 dans le forum Excel
    Réponses: 2
    Dernier message: 18/08/2009, 17h08
  4. Formater um Textbox dans UserForm
    Par A@Lah dans le forum Word
    Réponses: 1
    Dernier message: 17/10/2007, 15h40
  5. initialisation textbox dans userform
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/08/2007, 10h24

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