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

IHM Discussion :

copier/coller d'une zone de liste


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 18
    Points
    18
    Par défaut copier/coller d'une zone de liste
    Bonjour à tous

    simple question (en apparence ) je voudrais sur un clic droit par exemple, simplement copier la valeur sélectionnée d'une zone de liste.
    L'utilisateur pouvant ensuite la coller n'importe où dans un autre formulaire ou une autre application, avec un ctrl+V.

    c'est possible ??

    merci à vous

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    voici 2 fonctions qui peuvent peut - être t'intéresser
    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
    Public Function CopierPressePapier()
    On Error GoTo erreur
    'Pour copier, il faut dans un premier temps sélectionner le contenu actuel
    Screen.ActiveForm.Refresh 'Pour s'assurer que le contenu actuel correspond à ce qui est affiché
    Screen.ActiveForm.ActiveControl.SetFocus
    Screen.ActiveForm.ActiveControl.SelStart = 0
    Screen.ActiveForm.ActiveControl.SelLength = Len(Screen.ActiveForm.ActiveControl.Text)
     'NB : ActiveControl.Text pour capter ce qui est affiché à l'écran
     'Copier dans le presse-papier
    DoCmd.RunCommand acCmdCopy
    Exit Function
    erreur:
    Select Case err.Number
    Case 2465  'le champ à copier est vide
    MsgBox "Un champ vide ne peut être copié"
    Case Else
    MsgBox err.Number & "  " & err.Description
    End Select
    End Function
     
     
    Public Function CollerPressePapier()
    On Error GoTo erreur
    'Pour coller, il faut dans un premier temps sélectionner le contenu actuel
    Screen.ActiveForm.ActiveControl.SetFocus
    Screen.ActiveForm.ActiveControl.SelStart = 0
    Screen.ActiveForm.ActiveControl.SelLength = Len(Screen.ActiveForm.ActiveControl.Text)
     'NB : ActiveControl.Text pour capter ce qui est affiché à l'écran
     'le texte est sélectionné, il ne nous reste qu'à le remplacer.
    DoCmd.RunCommand acCmdPaste
    Exit Function
    erreur:
    MsgBox err.Number & "  " & err.Description
    End Function
    Tu associes la 1ère à un double-clic sur le champ à copier et la 2de à un double-clic sur le champ récepteur

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    merci pour ta réponse

    oui j'avais bien pensé au "Screen.ActiveForm.ActiveControl.SetFocus" et Docmd, mais je ne suis pas sûr que cela fonctionne comme je le souhaiterai.

    Imaginons que cela retourne en effet la valeur de la ligne sélectionnée.
    Si la zone de liste comprend plusieurs colonne, cela renverra la valeur de la colonne 0.
    Comment renvoyer la valeur de la colonne(3) par exemple?

    Puis, est-il possible de s'affranchir de la fonction du collage?
    L'objectif serait de faire un simple ctrl+V.

    merci ++

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Pour exploiter ce que nous connaissons :

    dans ton formulaire, tu ajoutes un contrôle "Tampon", il doit être visible, mais rien ne t'empêche de le loger en dessous d'un autre pour l'empêcher d'apparaître à l'écran.

    Le processus sur l'événement double-clic du champ d'origine "depart"
    1° copier le contenu de la colonne 3 dans tampon
    2° Tampon ---> presse-papier
    3° positionner le curseur sur la destination

    et tu laisses la main pour un <ctrl> V, si affinité.

    exemple de code (testé)
    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
    Private Sub Depart_DblClick(Cancel As Integer)
    On Error GoTo erreur
    Me.Refresh 'Pour s'assurer que le contenu actuel correspond à ce qui est affiché
    'copier la colonne 3
    Me.Tampon = Nz(Me.Depart.Column(2), 0) ' (2) = 3eme colonne, si colonne vide -->0
    DoCmd.GoToControl "tampon"
    Me.Tampon.SelStart = 0
    Me.Tampon.SelLength = Len(Me.Tampon.Text) 'pour capter ce qui est affiché à l'écran
     'Copier dans le presse-papier
    DoCmd.RunCommand acCmdCopy
    'positionner le curseur sur la destination
    DoCmd.GoToControl "destination"
    Me.Destination.SelStart = 0
    Me.Destination.SelLength = Len(Me.Destination.Text) 'pour capter ce qui est affiché à l'écran
     
    Exit Sub
    erreur:
    Select Case err.Number
    Case 2465  'le champ à copier est vide
    MsgBox "Un champ vide ne peut être copié"
    Case Else
    MsgBox err.Number & "  " & err.Description
    End Select
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    merci pour ton aide.


    le copier/coller marche à merveille, mais j'ai encore un petit soucis:

    lorsque je fais mon dbl clic, la sélection dans ma zone de liste remonte à la 1ère ligne et du coup, le copier ne concerne que cette ligne n°1.

    soluce?

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    A ma connaissance, ce n'est pas un comportement naturel.
    Vérifie qu'il n'y a pas dans les événements associés à la zone de liste un "requery" qui provoque ce repositionnement intempestif.
    (par exemple dans le sur clic)

Discussions similaires

  1. [Toutes versions] Copier/Coller dans une zone filtrée
    Par damsmut dans le forum Excel
    Réponses: 3
    Dernier message: 14/12/2009, 13h37
  2. comment empêcher le copier/coller dans une zone de texte
    Par hanafimohammed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/05/2007, 20h57
  3. Réponses: 9
    Dernier message: 04/04/2007, 12h01
  4. Copier une zone de liste dans excel
    Par geo.mar94 dans le forum Access
    Réponses: 42
    Dernier message: 15/06/2006, 15h34
  5. [Débutant] Copier les données d'une zone de liste
    Par a2line dans le forum Access
    Réponses: 8
    Dernier message: 01/06/2006, 16h06

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