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 :

Click droit dans une TextBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Click droit dans une TextBox
    Bonjour,

    Peut-on autoriser un click gauche et droit de la souris dans une TextBox pour sélectionner et copier son contenu.
    Par quel moyen ?

    Par avance merci

    Bien cordialement,

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,
    Comment celà, un "clic gauche et droit" ?
    Les deux ensemble ?

    Et qu'entends-tu par "autoriser" ?

    Un click gauche (traditionnel) se constate si la propriété enabled = True par le déclenchement de l'évènement Click

    Un click est par ailleurs un MouseDown suivi d'un MouseUp

    L'évènement MouseUp permet de différencier le bouton de la souris.

    Te reste plus qu'à utiliser tout celà (c'est facile...)

  3. #3
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Click droit sur un TextBox
    Bonsoir ucfoutu,

    Et bien voilà:
    Je me suis peut-être mal expliqué !
    Tu viens de me répondre, et, si je veux avec ma souris:
    je peux bien à l'aide du click gauche surligné ton message et à l'aide du bouton droit copier le texte et éventuellement le recoller ailleurs.
    Dans un TextBox on ne peut pas .
    d'ou ma question; comment faire ?

    Merci

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    En t'intéressant à Selstart et à SelLength (dans ton aide en ligne, sur TA machine)

    Lis celà, essaye... et reviens en nous exposant ce que tu n'aurais pas pu réaliser après cette lecture...

  5. #5
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Click gauche pour copier dans une TextBox
    Re bonjour,
    Et bien non, je n'y arrive pas.
    Je suis désolé, j'ai réussi à fabriquer ce bout de code...Mais ma textbox n'accepte toujours pas le click droit pour copier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim MyData As DataObject
     
    Private Sub TextBox3_ClickRight(ByVal Cancel As MSForms.ReturnBoolean)
    Dim MyData As DataObject
    Set MyData = New DataObject
    MyData.GetFromClipboard
    TextBox3.SelStart = 0
    TextBox3.SelLength = 0
    End Sub
    Merci pour votre aide .

  6. #6
    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
    Bonsoir

    Pour moi, il faut y aller par étapes.

    1. Créer un menu contextuel avec les boutons souhaités via une procédure dans un module standard

    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
    Sub CreerContextuel()
        Dim Barre As CommandBar
        Dim Controle As CommandBarControl
     
        Set Barre = CommandBars.Add(Name:="Contexte", Position:=msoBarPopup, temporary:=True)
        Set Controle = Barre.Controls.Add
        With Controle
            .Caption = "Copier"
            .OnAction = "mnCopier"
        End With
        Set Controle = Barre.Controls.Add
        With Controle
            .Caption = "Coller"
            .OnAction = "mnColler"
        End With
     
        Set Controle = Nothing
        Set Barre = Nothing
    End Sub
    2. Créer les procédures pour copier et coller, toujours dans un module standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub mnCopier()
        Dim Donnee As New DataObject
        Donnee.SetText UserForm1.ActiveControl.Value
        Donnee.PutInClipboard
    End Sub
     
    Sub mnColler()
        Dim Donnee As New DataObject
        Donnee.GetFromClipboard
        UserForm1.ActiveControl.Value = Donnee.GetText
    End Sub
    3. Il faut placer dans les évènements MouseUp des contrôles souhaités la procédure suivante. Dans le code que je donne, j'ai deux zones de texte et je place la même procédure pour chaque zone de texte. Cette procédure appelle simplement le menu contextuel créé au point 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        Select Case Button
            Case XlMouseButton.xlSecondaryButton
                CommandBars("Contexte").ShowPopup
        End Select
    End Sub
     
    Private Sub TextBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        Select Case Button
            Case XlMouseButton.xlSecondaryButton
                CommandBars("Contexte").ShowPopup
        End Select
    End Sub
    Attention! Le code de l'étape 2 copie TOUT le contenu du textbox. Il faudra jouer avec SelStart, SelLength pour ne copier (ou remplacer) que la partie sélectionnée du texte...

    A toi d'adapter et d'améliorer au besoin. Ceci n'est qu'une piste.

    Ok?
    "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...
    ---------------

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

Discussions similaires

  1. Evènement click droit dans une feuille de calcul
    Par J H L dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/12/2012, 13h47
  2. Réponses: 1
    Dernier message: 25/10/2005, 20h11
  3. [c#]Gros text à afficher dans une textbox
    Par famemaur dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/05/2005, 10h12
  4. clic droit dans une DrawGrid
    Par underdog dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/03/2005, 15h21
  5. Clique droit dans une ListBox
    Par LoicH dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/02/2005, 22h50

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