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 Access Discussion :

Copie d'une selection d'un champ texte vers un nouvel enregistrement [AC-2010]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 33
    Points : 34
    Points
    34
    Par défaut Copie d'une selection d'un champ texte vers un nouvel enregistrement
    Bonjour,
    Voila, je souhaite copier une sélection à la souris d'une partie d'un champ texte d'un formulaire vers un nouvel enregistrement d'un sous formulaire sans le faire a la main Ctrl + C Ctrl + V
    Actuellement cela fonctionne avec du code vba activer par une commande situé dans une barre d'outil personnalisée dans l'onglet complément , ce qui n'est pas toujours pratique.
    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
     
    Function zautocopy()
    On Error GoTo zautocopy_Err
     
        DoCmd.RunCommand acCmdCopy
        DoCmd.GoToControl "[MotClefFm]"
        DoCmd.GoToControl "motclef"
        DoCmd.GoToRecord , "", acNewRec
        DoCmd.RunCommand acCmdPaste
        DoCmd.GoToRecord , "", acNext
     
     
    zautocopy_Exit:
        Exit Function
     
    zautocopy_Err:
        MsgBox Error$
        Resume zautocopy_Exit
     
    End Function
    je souhaiterai activer ce code à partir d'un bouton classique dans l’entête de mon formulaire.
    Formulaire principal Champ texte où il y a la sélection à la souris : Sous formulaire Champ de destination je pense qu'il faut commencer par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      DoCmd.GoToControl [Question]
    mais après, copier la sélection faite à la souris, je ne sais pas (ou plus)

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour. Une piste avec SendKeys peut-être. Je viens d'essayer ça et ça copie bien ce qui est sélectionné dans le textBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox_Exit(Cancel As Integer)
        SendKeys "^c", True
    End Sub
    EDIT : Suffit donc de créer un bouton (éventuellement avec du code mais si on met pas de code sur le clic du bouton ça marche quand même). Le clic sur le bouton enlève le focus du textbox. Ce qui lance la procédure et copie ce qui est sélectionné dans la textbox

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 33
    Points : 34
    Points
    34
    Par défaut
    Bonjour, merci pour votre réponse,
    j'ai utiliser la commande Call pour appeler la procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox_Exit(Cancel As Integer)
        SendKeys "^c", True
    End Sub
    sur clic d'un bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub commande200_click()
        MsgBox "Essai message", vbOKOnly, "essai"
        Call TextBox_Exit
    End Sub
    mais cela de marche pas.

    Erreur de compilation Argument non facultatif.
    Merci pur vos réponse

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    lol c'est pas comme ça qu'il faut faire :p Il faut copier :
    sur l'évènement "Sur sortie" de la textBox qui contient le champs sélectionné. Si tu veux pouvoir faire ça sur plusieurs textBox, il faut créer une procédure. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub copierSelection()
        SendKeys "^c"
    End Sub
    et appeler cette procédure sur l'évènement "Sur sortie" de chaque textBox sur laquelle tu veux pouvoir copier le texte sélectionné

    Et tu ne mets aucun code sur ton bouton

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 33
    Points : 34
    Points
    34
    Par défaut
    Bonjour et merci pour vos réponses,
    Il est vrai que je me doutais qu'il y avait un problème de mise en place, mes connaissances en programmation étant lointaines et de niveau débutant..

    j'ai donc utilisé votre solution que j'ai modifiée et cela fonctionne, restaient les problématiques:
    Du presse papier (pour ma solution définitive qui restait avec la dernière copie, j'ai trouvé la solution sur ce site (Merci a Fring (Fred Thomas))

    http://www.developpez.net/forums/d12...6732266http://

    et le problème de message d'erreur:
    Si je cliquait dans un des champ pour écrire avec le clavier et ne pas copier coller, une simple gestion des erreurs m'a suffit.

    Donc au final,
    Si je clic pour écrire dans un champ source il ne se passe rien.

    Si je clic et sélectionne un ou plusieurs mots et qu'ensuite je clic dans le champ de destination la sélection est copiée.

    Si je re-clique sur le champ de destination pour ajout ou modification le presse papier n'est pas "recopier".

    Voici mon code définitif ,avec remplacement de par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdCopy
    Codes champs sources des mots clefs: ici le champ Question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Question_Exit(Cancel As Integer)
    On Error GoTo gestion_erreur1
    DoCmd.RunCommand acCmdCopy
    gestion_erreur1:
    End Sub
    Code Champ de destination des mots clefs:

    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
    'Déclarations en tête de module
    Option Compare Database
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
     
     
    Private Sub Mot_Clef_Click()
    On Error GoTo erreur3
       'Commande coller
        DoCmd.RunCommand acCmdPaste
        'appel procedure Vider le presse papier
        Call Vider_PP
         'Allez a l'enregistrement suivant
        DoCmd.GoToRecord , "", acNext
    erreur3:
    End Sub
    'vider presse papier
    Private Sub Vider_PP()
        OpenClipboard 0
        EmptyClipboard
        CloseClipboard
    End Sub
    Merci pour votre aide , si vous avez des commentaires sur ce bout de code n’hésitez pas.

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

Discussions similaires

  1. [AC-2007] Copie contenu zone texte vers un nouvel enregistrement ?
    Par fragglerick dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/12/2011, 21h45
  2. selection d'une partie d'un champs texte
    Par mohcultiv dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/12/2007, 16h04
  3. [MySQL] Afficher une requête dans un champ texte
    Par SnickeursMan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/11/2005, 10h07
  4. Select sur une partie d'un champs texte
    Par dl_jarod dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/11/2005, 15h25
  5. [FLASH MX] Une scrollbar pour plusieurs champs texte
    Par ffmlgraphics dans le forum Flash
    Réponses: 1
    Dernier message: 08/08/2005, 16h45

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