Ajouter qq chose déjà présent au Presse-papiers
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Donc voila, mon petit problème, en utilisant le menu déroulant, ca choisi soit le texte RDPRM_Final1, RDPRM_Final2, RDPRM_Final3 ou les 3 a copier.. tout ca fonctionne super bien, mais je dois ajouter mon # de client dans mon copier, je peux pas l'ajouter directement dans les cases car si il choisir les 3 a copier le # de client va être répéter 3 fois, complètement inutile quoi..
je voudrais juste le code pour dire a la fin genre :
acCmdCopy = acCmdCopy & "- Ref. C/E : " & [#_de_client]
pour que quand je copie il y a aussi le # de client en mémoire a la fin mais juste 1 fois..
merci :)
P.s. dans mon dernier bloc de code la case "FinalGroup" contient le texte des 3 cases
Private Sub RDPRM_quel_menu_Click()
If RDPRM_quel_menu = "demande 1" And Form1 <> "" And Not IsNull([Form1]) Then
RDPRM_Final1.SetFocus
DoCmd.RunCommand acCmdCopy
End If
If RDPRM_quel_menu = "demande 2" And Form2 <> "" And Not IsNull([Form2]) Then
RDPRM_Final2.SetFocus
DoCmd.RunCommand acCmdCopy
RDPRM_quel_menu.SetFocus
End If
If RDPRM_quel_menu = "demande 3" And Form3 <> "" And Not IsNull([Form3]) Then
RDPRM_Final3.SetFocus
DoCmd.RunCommand acCmdCopy
blanc.SetFocus
RDPRM_quel_menu.SetFocus
End If
If RDPRM_quel_menu = "Toutes les demandes" And [Combien_enr] > 0 Then
RDPRM_FinalGroup.SetFocus
DoCmd.RunCommand acCmdCopy
blanc.SetFocus
RDPRM_quel_menu.SetFocus
End If
End Sub
Windows / Chrome 108.0.0.0
- Ajouter qq chose déjà présent au Presse-papiers
- Presse papier - Guide
- Presse papiers - Guide
- Presse-papiers - Accueil - Informatique
- Presse papier iphone ou le trouver ✓ - Forum Windows 7
- Presse papier huawei ✓ - Forum SFR
3 réponses
bonjour,
Au lieu de l'ajouter directement dans (toutes) les cases, pourquoi ne pas l'ajouter dans une seule case, celle que tu veux copier (ou la dernière si tu copies "tout")?
Je suis pas sûr de ce que vous voulez savoir , comme inscrit dans mon premier message avec le code . Selon le choix de mon menu ( sur évènement apres modification ) le texte d’un des 4 champs ce met en mémoire ( clipboard/ press-papiers) par :
DoCmd.RunCommand acCmdCopy
Je voudrais juste qu’à la fin de mon code vba il y une ligne de code qui dit qu’en plus ce qu’il y a déjà en mémoire ajouter : & "- Ref. C/E : " & [#_de_client] en mémoire
donc quand je vais faire le colle ça va tout colle ce qui est en memoir ( un des 4 champs plus le code client )
En gros c comment je peux jouer avec ce qui est en mémoire ( le clipboard/ press papier)
merci;)
Tu as imaginé une solution à ton problème, et tu te concentres dessus, au lieu de décrire ton formulaire. Comment penses-tu ajouter le numéro de client dans les cases?
Au lieu de jouer avec ce qu'il y a en mémoire, pourquoi ne pas jouer avec ce qu'il y a dans les cases, avant de le mettre en mémoire?
Comme tu ne partages pas un fichier avec le formulaire, difficile de faire une suggestion précise. Moi j'essaierais ceci (non testé):
Private Sub RDPRM_quel_menu_Click() If RDPRM_quel_menu = "demande 1" And Form1 <> "" And Not IsNull([Form1]) Then RDPRM_Final1 = RDPRM_Final1 & "- Ref. C/E : " & [#_de_client] RDPRM_Final1.SetFocus DoCmd.RunCommand acCmdCopy End If If RDPRM_quel_menu = "demande 2" And Form2 <> "" And Not IsNull([Form2]) Then RDPRM_Final2 = RDPRM_Final2 & "- Ref. C/E : " & [#_de_client] RDPRM_Final2.SetFocus DoCmd.RunCommand acCmdCopy RDPRM_quel_menu.SetFocus End If If RDPRM_quel_menu = "demande 3" And Form3 <> "" And Not IsNull([Form3]) Then RDPRM_Final3 = RDPRM_Final3 & "- Ref. C/E : " & [#_de_client] RDPRM_Final3.SetFocus DoCmd.RunCommand acCmdCopy blanc.SetFocus RDPRM_quel_menu.SetFocus End If If RDPRM_quel_menu = "Toutes les demandes" And [Combien_enr] > 0 Then RDPRM_FinalGroup = RDPRM_FinalGroup & "- Ref. C/E : " & [#_de_client] RDPRM_FinalGroup.SetFocus DoCmd.RunCommand acCmdCopy blanc.SetFocus RDPRM_quel_menu.SetFocus End If End Sub
Le plus simple serait sans doute d'ajouter un contrôle (une "case"), RDPRM_Nouveau, au formulaire, et, après le clic, modifier le contenu de ce contrôle, puis de copier ce contenu.
Private Sub RDPRM_quel_menu_Click() If RDPRM_quel_menu = "demande 1" And Form1 <> "" And Not IsNull([Form1]) Then RDPRM_Nouveau = RDPRM_Final1 & "- Ref. C/E : " & [#_de_client] End If If RDPRM_quel_menu = "demande 2" And Form2 <> "" And Not IsNull([Form2]) Then RDPRM_Nouveau = RDPRM_Final2 & "- Ref. C/E : " & [#_de_client] End If If RDPRM_quel_menu = "demande 3" And Form3 <> "" And Not IsNull([Form3]) Then RDPRM_Nouveau = RDPRM_Final3 & "- Ref. C/E : " & [#_de_client] End If If RDPRM_quel_menu = "Toutes les demandes" And [Combien_enr] > 0 Then RDPRM_Nouveau = RDPRM_FinalGroup & "- Ref. C/E : " & [#_de_client] End If RDPRM_Nouveau.SetFocus DoCmd.RunCommand acCmdCopy RDPRM_quel_menu.SetFocus End Sub
Merci j'ai analysé votre code, mais ca marche pas car dans les cases RDPRM_Final1-2-3 c'est des formules, et la votre code remplace ce qui est dans le champs par du texte et après si je change les infos il n'y plus de formule. donc ca marche pas.
mais vous m'avez donné uen idee, est-ce possible d'envoyer ce qu'il y a dans une variable dans le clipbord au lieu de ce qu'il y a dans un champs?
exemple:
If RDPRM_quel_menu <> "Toutes les demandes" then
RDPRM_variable= RDPRM_Final1 & "- Ref. C/E : " & [#_de_client]
else
RDPRM_variable = RDPRM_Final1
end if
et envoyer la variable "RDPRM_variable" dans le clipbord?
P.s. evidement une fois que je sais faire ca je vais l'adapter à mes 4 options..
merci :)
Je pense que ma seconde suggestion en #5 devrait fonctionner.
On fait tout cela parce qu'il est trop difficile d'envoyer ce qu'il y a dans une variable dans le clipbord.
Du moins, parce qu'on pensait que c'était trop difficile. Comme tu posais la question, j'ai cherché une fois de plus si il n'y avait pas un moyen simple de le faire, et j'ai trouvé ceci, qui viendrait d'une idée du site ExcelHero.com:
Private Sub wc(txt) Dim x As Variant, hf x = txt Set hf = CreateObject("htmlfile") hf.parentWindow.clipboardData.setData "text", x End Sub
Tu l'utiliserais ainsi (pas testé dans Access):
call wc(RDPRM_variable)
Bon la vous m'avez vraiment perdue lol
mais j'ai quand même tenté de travailler avec toutes vos idées
-j'ai voulu ajouter un vrai faux a chaque case
RDPRM_quel_menu <> "Toutes les demandes" ajouter le # de client..
mais oups refusé car je suis arrivé au max de caractères de ma formule, oui plus de 1000 caractères lol
-la case a coché était vraiment a proscrire , je déteste ajouter des étapes pour arriver à la même chose
mais ca m'a quand même donné ma piste finale.
j'ai rajouter 3 vrai faux au début de ma case RDPRM_FinalGroup pour pour y mettre selon mon choix RDPRM_quel_menu seulement le texte de
RDPRM_Final1 & "- Ref. C/E : " & [#_de_client]
ou
RDPRM_Final2 & "- Ref. C/E : " & [#_de_client]
ou
RDPRM_Final3 & "- Ref. C/E : " & [#_de_client]
mais si on choisi le "Toutes les demandes" la c'est les 3 case et le # de client juste a la fin et en toute circonstance le texte que je met dans presspapier c'est RDPRM_FinalGroup
tout marche! :)
Merci encore pour votre patience, vos idées et votre aide en général :)
Pour continuer sur ton idée "est-ce possible d'envoyer ce qu'il y a dans une variable dans le clipbord', tu pourrais sans doute faire ainsi:
Private Sub RDPRM_quel_menu_Click() dim RDPRM_variable as string If RDPRM_quel_menu = "demande 1" And Form1 <> "" And Not IsNull([Form1]) Then RDPRM_variable = RDPRM_Final1 & "- Ref. C/E : " & [#_de_client] call wc(RDPRM_variable) End If If RDPRM_quel_menu = "demande 2" And Form2 <> "" And Not IsNull([Form2]) Then RDPRM_variable = RDPRM_Final2 & "- Ref. C/E : " & [#_de_client] call wc(RDPRM_variable) End If If RDPRM_quel_menu = "demande 3" And Form3 <> "" And Not IsNull([Form3]) Then RDPRM_variable = RDPRM_Final3 & "- Ref. C/E : " & [#_de_client] call wc(RDPRM_variable) End If If RDPRM_quel_menu = "Toutes les demandes" And [Combien_enr] > 0 Then RDPRM_variable = RDPRM_FinalGroup & "- Ref. C/E : " & [#_de_client] call wc(RDPRM_variable) End If End Sub Private Sub wc(txt) Dim x As Variant, hf x = txt Set hf = CreateObject("htmlfile") hf.parentWindow.clipboardData.setData "text", x End Sub
Comme dis j'en ai plus vraiment besoin mais j'ai quand même testé car ca va surement être utile plus tard dans mon projet, je l'ai testé sur plus simple juste un choix, mais ca ne met rien dans le press papier :(
Private Sub RDPRM_quel_menu_Click()
Dim RDPRM_variable As String
If RDPRM_quel_menu = "demande 1" And Form1 <> "" And Not IsNull([Form1]) Then
RDPRM_variable = RDPRM_Final1 & - Ref. C/E : " & [#_de_client]
Call wc(RDPRM_variable)
End If
End Sub
Private Sub wc(txt)
Dim x As Variant, hf
x = txt
Set hf = CreateObject("htmlfile")
hf.parentWindow.clipboardData.setData "text", x
End Sub
j'ai testé encore plus simple :
Private Sub RDPRM_quel_menu_Click()
Dim RDPRM_variable As String
If RDPRM_quel_menu = "Demande 1" Then
RDPRM_variable = Me.RDPRM_Final1
Call wc(RDPRM_variable)
End If
End Sub
Private Sub wc(txt)
Dim x As Variant, hf
x = txt
Set hf = CreateObject("htmlfile")
hf.parentWindow.clipboardData.setData "text", x
End Sub
Mais vraiment rien dans le press papier
ce qui me questionne beaucoup c'est le CreateObject("htmlfile")
je vois pas le lien entre un fichier HTML "htmlfile" et ajouter qq chose dans le press papier
mais comme dis, si vous avez d'autre personne a aider ne perdez pas de temps avec ceci, je vais le laisser ouvert, si plus tard j'en ai encore de besoin je vais y revenir..
je continue a suivre vos réponses au cas :)
merci encore:)
je me suis peut-etre mal exprimé ..
Mon menu déroulant a ces 4 choix :
-RDPRM_Final1
-RDPRM_Final2
-RDPRM_Final3
-Toutes les case
Si on choisi : "RDPRM_Final1" ca met en mémoire ce qu'il y a dans la case RDPRM_Final1
Si on choisi : "RDPRM_Final2" ca met en mémoire ce qu'il y a dans la case RDPRM_Final2
Si on choisi : "RDPRM_Final3" ca met en mémoire ce qu'il y a dans la case RDPRM_Final3
Si on choisi : "Toutes les case" ca met en mémoire ce qu'il y a dans la case FinalGroup
La case FinalGroup comporte le texte des case RDPRM_Final1&RDPRM_Final2&RDPRM_Final3
Donc comme vous dites je ne veux pas l'ajouter dans toute les cases car si on choisi FinalGroup le # de dossier va être ajouter au 3..
mais si je l'ajoute seulement dans FinalGroup le # de dossier n'apparaîtra pas si on choisi ex. RDPRM_Final2 donc c'est pour ca que je veux ajouter le # dossier a ce qu'il y a en mémoire quelque soit le le choix fait.
J'espère eu c'est plus claire:)
merci :)
Tu n'as expliqué ni comment ni quand tu ajouterais cela.
Ma suggestion, c'est de l'ajouter après que le bouton ait été cliqué.
Le plus simple n'est-il pas d'ajouter un contrôle (une "case") au formulaire, et, après le clic, modifier le contenu de ce contrôle, puis de copier ce contenu?