Ajouter qq chose déjà présent au Presse-papiers
Ferméyg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 19 déc. 2022 à 09:54
- Ajouter qq chose déjà présent au Presse-papiers
- Presse papier - Guide
- Presse papiers - Guide
- Presse papier facebook ✓ - Forum Matériel & Système
- Presse papier iphone - Forum iPhone
- Presse papier windows 7 - Forum Word
3 réponses
11 déc. 2022 à 12:57
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")?
11 déc. 2022 à 20:35
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;)
12 déc. 2022 à 10:09
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
Modifié le 13 déc. 2022 à 14:55
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 :)
13 déc. 2022 à 15:16
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)
14 déc. 2022 à 00:01
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 :)
14 déc. 2022 à 09:24
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
Modifié le 14 déc. 2022 à 23:28
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:)
15 déc. 2022 à 00:03
Et ainsi?
Private Sub RDPRM_quel_menu_Click() Call wc("mis dans presse papier") End Sub Private Sub wc(txt As String) Dim x As Variant, hf x = txt Set hf = CreateObject("htmlfile") hf.parentWindow.clipboardData.setData "text", x End Sub
11 déc. 2022 à 17:29
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 :)
11 déc. 2022 à 17:45
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?