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 :

Copier/coller dans une TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut Copier/coller dans une TextBox
    Bonjour,

    Je me lance actuellement dans les Userbox et je sèche lamentablement sur le remplissage d'un Textbox à partir du contenu d'une cellule.

    La cellule que je veux copier contient du texte dans lequel est inclus des caractères spéciaux issus des polices Wingdings.

    L'instruction classique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TextBoxDetail = Range(ma cellule)
    me renvoi bien le texte mais les caractères spéciaux sont remplacés par les caractères de la police du Textbox.
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Range(ma cellule).Text).Copy Destination:=Me.TextBoxDetail
    mais cette méthode me renvoi l'erreur "La méthode copy de la classe range a échoué."

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range(ma cellule).Copy
    Me.TextBoxDetail.Paste
    Qui me donne le même résultat que la méthode classique.

    La question est donc : comment faire pour copier le contenu exact d'une cellule dans un Textbox ?
    Et comme je vais devoir aussi remplir des cellules à partir d'une textbox, comment faire pour insérer des caractères de polices différentes dans une Textbox et copier son contenu à l'identique dans une cellule ?

    Merci d'avance pour votre aide.

    Michel

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Il te faut paramétrer la fonte de ton TexBox par exemple sur "Initialize" de ta Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub UserForm_Initialize()
     
        TextBoxDetail.Font.Name = "Wingdings"
     
    End Sub
    Hervé.

  3. #3
    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 heu
    bonsoir une question comme ca

    ou ce trouve tes textbox

    ou ce trouve la macro

    si la macro se trouve dans le userform
    'copie a l'identique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with  sheets(nom du sheets) range(tacellule)
    .value=me.textboxdetail
    .font.name=me.textboxdetail.font.name
    .font.color=me.textboxdetail.forecolor
    .font.bold=me.textboxdetail.font.bold
    ect.....
    end with
    si la macro se trouve dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with  sheets(nom du sheets) range(tacellule)
    .value=nom_de_l_userform.textboxdetail
    .font.name=nom_de_l_userform.textboxdetail.font.name
    .font.color=nom_de_l_userform.textboxdetail.forecolor
    .font.bold=nom_de_l_userform.textboxdetail.font.bold
    ect.....
    end with
    au plaisir
    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

  4. #4
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Merci Hervé et patricktoulon pour vos réponses, mais ce n'est pas ce que je recherche. Si je change la police du textbox, tout le texte s'affiche dans cette police.

    Or, mon texte comporte des caractères spéciaux qui ont été insérés au milieu d'un texte normal.

    Je cherche à reproduire à l'identique le contenu de la cellule dans un textbox qui fait partie d'un userform.

    Dans une instruction vba classique, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Range(ma cellule à copier).Text).Copy Destination:=Range(ma cellule de destination)
    colle le contenu exact de la cellule copiée avec ses mises en forme, ses fonts, ses cadres etc ....

    C'est ce type de code, du moins son résultat, que je cherche à reproduire dans ma Textbox

  5. #5
    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
    donc si ca te conviens pas ce que l'on a donné

    ca veut dire qu'il y a plusieur font.name dans une seule cellule(plusieurs reglages différents dans une meme cellule)

    et bien ca arrette de te casser la tete c'est impossible dans un textbox

    dans un textbos quand tu regle le fontname le font size ect... c'est tout le textbox qui prend le reglage pas qu'une partie

    en bref c'est impossible

    au plaisir
    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

  6. #6
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Merci patricktoulon.
    Dommage. Je vais donc chercher une autre méthode pour faire ce que je souhaite.

  7. #7
    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
    j'en ai une toute faite pour toi

    regarde dans les contributions un de mes derniers sujets les boutons fun dans mon userform

    dedans il y a la methode pour copier des worts arts dans le userform

    je suis en train de travailler sur la question justement un peu de patience

    au plaisir
    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

  8. #8
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Désolé pour ce retour en retard.

    Le userform n'étant qu'un plus pour mon projet, je l'ai mis de côté pour le moment. Je regarderai à l'occasion votre projet des boutons funs qui semble intéressant.
    En attendant, j'ai résolu temporairement mon problème qui était de pouvoir introduire des caractères spéciaux (en fait un seul) au milieu d'un texte sans avoir à changer de police de caractère en cours de saisie. Ce caractère étant isolé (espace de part et d'autre) dans le texte, il suffit de saisir son équivalent dans la police standard puis de lancer une petite macro après validation pour le rechercher et changer sa police. C'est simple et ça marche nickel.

    Merci pour votre aide.

  9. #9
    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
    bonjour et ok

    mais je comprend pas la manoeuvre la

    tu me dis au départ que tu voudrais que ca soit écrit dans les textboxs comme dans les cellule (plusieurs police dans la meme cellules )
    et tu me dis que par des caractère speciaux tu a pu faire ca

    alors je te le redis c'est impossible
    ou alors ta demande n'exprimais pas ton besoins

    en tout cas il est IMPOSSIBLE que tu puisse avoir le me résultat que la cellule ca c'est garanti

    mais si tu trouvé quelque chose qui te convienne j'en suis ravi

    n'oublie pas le résolu dans ce cas la
    au plaisir
    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

  10. #10
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Bonsoir patricktoulon,

    Pas de changement sur ma demande initiale qui restera non résolu puisqu'elle n'a pas de solution, mais un changement de mode opératoire.

    Mon objectif était de simplifier la saisie de caractères spéciaux dans des textes nouveaux ou existants.
    Je pensais qu'un userform serait plus souple à l'usage qu'une saisie classique qui oblige à changer à chaque fois de police.
    Mon idée par la suite était de créer un bouton dans mon userform pour insérer le caractère spécial directement en cours de saisie. En mode création, ou édition au choix.
    J'ai bien compris maintenant qu'il n'est pas possible d'avoir dans un userform plusieurs polices qui cohabitent, ou d'insérer des caractères de polices différentes.

    Comme ça ne peut pas marcher, j'ai laissé tombé les userforms qui n'apporte rien de plus à mon projet et je suis revenu aux saisies directement dans mes tableaux, comme je le faisais jusqu'à présent. Mais au lieu de modifier à chaque fois la police de caractères (ce qui est long et fastidieux), j'utilise les caractères standards et les changements de polices se font seulement à la validation.
    Le mode opératoire est moins convivial, mais c'est le plus simple que j'ai trouvé. Mes saisies sont simplifiées pour un résultat final conforme à ce que je voulais.
    Un bout de mon 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
    If Not Intersect(Target, Range("Detail")) Is Nothing Then
        Application.ScreenUpdating = False
        Target.Cells.Activate
         Dim LTexte As Integer
    Dim PosCar As Integer
    Dim Pos As Integer
     
    PosCar = 1
    LTexte = Len(ActiveCell)
     
    For Pos = 1 To LTexte
        PosCar = InStr(Pos, ActiveCell, " h ", 0)
        If PosCar = 0 Then Exit For
        ActiveCell.Characters(Start:=PosCar + 1, Length:=1).Font.Name = "Webdings"
        Pos = PosCar
    Next Pos
    Application.ScreenUpdating = True
    End If
    En attendant de trouver une solution plus élégante, cette solution me convient.

    @+, Michel

  11. #11
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    tu peux utiliser l'éditeur html
    regarde dans l'exemple
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls Cr1.xls (28,5 Ko, 189 affichages)

  12. #12
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Salut Montor et merci d'avoir répondu.
    Je n'ai pas bien compris ce que vous vouliez dire par "éditeur html" car pour moi le résultat de l'exemple revient à changer de police dans un partie d'un texte, ce qui se fait sans problème en cours d'édition. Il y a sans doute un truc qui m'échappe. Qu'est-ce que cet éditeur peut m'apporter et où puis-je le trouver ?

    Ça fait un petit moment que je cherche à simplifier la saisie d'un caractère spécial (une ambulance) en cours de frappe car l'appel systématique de la police Webdings et le retour à la police de départ pour continuer la saisie, c'est pas vraiment génial. Heureusement que ce n'est pas systématique et que je n'ai pas non plus beaucoup de données à saisir, puisque mon fichier évolue relativement peu. Comme il est impossible de lancer une macro en mode édition, j'avais naïvement pensé qu'une userform avec un bouton à cliquer pour introduire ce fameux caractère pouvait être la solution. Comme ça aussi c'est impossible, j'ai finalement opté pour une macro lancé par un change byval qui me permet de faire la même chose, mais en différé en quelque sorte. J'utilise le caractère de la police standard (le h) qui est toujours isolé (espace de part et d'autre) que je change à la validation.

  13. #13
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    si ton problème c'est d'inserer un seul caractère tu peux garder ta macro .

  14. #14
    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
    en parlant de html l'idée de montor n'est pas tout a fait mauvaise

    il me viens une idée pour concillier reconcollier le userform avec notre ami


    fait une recherche sur les webbroser
    tu trouvera certainement comment y ajouter un controltext

    et l'ors de l'evenemnt change dans ce controltext qui est dans le webbroser
    si le caracttere tapé est ceque tuveux le transformer en cequetuveux
    ensuite l'ors de la copie sur le sheet boucler sur tout les cararctere avec leur fontname

    ca a l'air compliqué comme ca mais il n'en ai rien

    je regarderais ca demain
    pour le moment je suis occupé sur 2 autres questions
    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

  15. #15
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    en parlant de html l'idée de montor n'est pas tout a fait mauvaise

    il me viens une idée pour concillier reconcollier le userform avec notre ami


    fait une recherche sur les webbroser
    tu trouvera certainement comment y ajouter un controltext

    et l'ors de l'evenemnt change dans ce controltext qui est dans le webbroser
    si le caracttere tapé est ceque tuveux le transformer en cequetuveux
    ensuite l'ors de la copie sur le sheet boucler sur tout les cararctere avec leur fontname

    ca a l'air compliqué comme ca mais il n'en ai rien

    je regarderais ca demain
    pour le moment je suis occupé sur 2 autres questions
    pas besoin de sombrer avec webrowser le lui ai donné solution toute faite mais il a manque d'intérêt

  16. #16
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Merci à tous les deux.
    Comme vous l'avez compris, je suis totalement newbie avec les userform. J'ai pourtant des heures de vol avec excel et vba, mais rien de rien sur ces bidules. Grâce à vous, je vais sûrement vite apprendre.
    Bonsoir et à bientôt.
    Michel

    Citation Envoyé par Montor Voir le message
    pas besoin de sombrer avec webrowser le lui ai donné solution toute faite mais il a manque d'intérêt
    Pas du tout. J'ai dis que je n'ai rien compris à votre proposition, ce qui n'est pas du tout pareil.

  17. #17
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    voici une autre solution qui répond a 100% a ton besoins mais elle est un peu contraignante si tu fais déployer tes fichiers windows c'est d'utiliser l'espace vide de la table unicode tu vas créer ton propre idéogrammes

    procéderez ainsi :
    cliquer
    démarrer exécuter taper eudcedit
    cliquer sur ok
    menu édition cliquer sur copier un caractère
    sélectionner la police vers Webdings -> Ok
    sélectionner le caractère le l'ambulance -> Ok
    menu edition cliquer sur enregistrer le caractère
    fermer l'application
    aller vers
    démarrer programmes->Accessoires->outils système->table des caractères
    Toutes les polices (caractères privées)


    Dans l'Execl outils-options de correction automatique
    dans la box Remplacer: taper le mot qui représentera le symbole dans mon cas j'ai choisi &&

    faire un copier depuis la table de cataractes ton symbole faire coller avec ctrl+v dans la box "Par:"

    maintenant a chaque fois tu tape && sera remplacer automatiquement par le symbole de l'ambulance.

  18. #18
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 78
    Par défaut
    Bonjour,

    Désolé pour le retard, Je suis actuellement en déplacement.
    Merci Montor, cette solution est très intéressante pour un fichier local et je la retiens pour de futures applications.
    Le soucis, c'est que mon fichier est déployé, ce qui contraint mes utilisateurs à faire la modif sur leur poste. Et connaissant certains d'entre eux, ça va être un peu compliqué.
    Je vais l'appliquer pour mon fichier local (sans déploiement) pour le fun et conserver ma solution macro pour les utilisateurs.

    Michel

Discussions similaires

  1. [XL-2003] Couper/Copier/Coller dans une Textbox
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/10/2009, 18h19
  2. Copier Coller dans une TextBox
    Par Soncar dans le forum VB.NET
    Réponses: 13
    Dernier message: 28/06/2008, 23h50
  3. JTree : copier, coller dans une feuille.
    Par sricard dans le forum Composants
    Réponses: 2
    Dernier message: 28/09/2006, 07h35
  4. Copier/coller dans un textBox (formulaire)
    Par alliance dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2006, 00h06
  5. gerer le copier/coller dans une richEdit
    Par SBP dans le forum MFC
    Réponses: 4
    Dernier message: 10/02/2005, 21h00

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