Ajouter qq chose déjà présent au Presse-papiers

Fermé
bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024 - 10 déc. 2022 à 21:23
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

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

A voir également:

3 réponses

yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 Ambassadeur 1 557
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")?

0
bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024 1
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 :)

0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557 > bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024
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?

0
bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024 1
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;)

0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
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
0
bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024 1
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 :)

0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
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)
0
bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024 1 > yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024
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 :)
 

0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557 > bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024
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
0
bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024 1 > yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024
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:)

0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557 > bibimtl2x Messages postés 54 Date d'inscription lundi 31 octobre 2022 Statut Membre Dernière intervention 29 juillet 2024
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
0