Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

la procedure ne copie pas et ne colle pas

7 réponses
Avatar
pellet15
Bonjour =E0 tous
La procedure suivant, fonction sur un laptop et pas sur un autre.?

Sub Ouvrirnroute()
MyAppID =3D Shell("C:\Program Files\Garmin\nRoute\nRoute.exe", 1)
SendKeys "{ESC}", True ' Envoie la combinaison escape pour ferm=E9
la fen=EAtre
SendKeys "{ESC}", True ' Envoie la combinaison escape pour ferm=E9
la fen=EAtre
Application.ScreenUpdating =3D False
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "^w", True ' Envoie la combinaison CTRL+w ouvre une
fen=EAtre
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "{tab 2}", True ' Envoie la combinaison CTRL+tab
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "^C", True ' ____Envoie la combinaison CTRL+c copie sur
presse-papier !!!!
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "{ESC}", True ' Envoie la combinaison escape pour ferm=E9
la fen=EAtre
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "%{tab}", True 'Envoie la combinaison CTRL+tab
Dim Presspp As New DataObject
Set Pressp =3D New DataObject
Presspp.GetFromClipboard '________ici devrais r=E9cup=E9rer le Presse-
papier !!!
Range("H15") =3D Presspp.GetText '___mais ne colle pas et rien dans
la memoire !!!
Set Pressp =3D Nothing
Application.ScreenUpdating =3D True
End Sub

on dirais que la fonction copie ne fonctionne pas !!

Merci

7 réponses

Avatar
michdenis
Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
tu dois charger la référence suivante si ce n'est déjà fait :

"Microsoft Forms 2.0 Object Librairy"

Fenêtre de l'éditeur de code / barre des menus / références /
et tu la coches...

Cette bibliothèque se charge toute seule lorsqu'on ajouter un
formulaire (userform) à un projet vba.







"pellet15" a écrit dans le message de news:

Bonjour à tous
La procedure suivant, fonction sur un laptop et pas sur un autre.?

Sub Ouvrirnroute()
MyAppID = Shell("C:Program FilesGarminnRoutenRoute.exe", 1)
SendKeys "{ESC}", True ' Envoie la combinaison escape pour fermé
la fenêtre
SendKeys "{ESC}", True ' Envoie la combinaison escape pour fermé
la fenêtre
Application.ScreenUpdating = False
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "^w", True ' Envoie la combinaison CTRL+w ouvre une
fenêtre
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "{tab 2}", True ' Envoie la combinaison CTRL+tab
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "^C", True ' ____Envoie la combinaison CTRL+c copie sur
presse-papier !!!!
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "{ESC}", True ' Envoie la combinaison escape pour fermé
la fenêtre
Application.Wait (Now + TimeValue("00:00:01"))
SendKeys "%{tab}", True 'Envoie la combinaison CTRL+tab
Dim Presspp As New DataObject
Set Pressp = New DataObject
Presspp.GetFromClipboard '________ici devrais récupérer le Presse-
papier !!!
Range("H15") = Presspp.GetText '___mais ne colle pas et rien dans
la memoire !!!
Set Pressp = Nothing
Application.ScreenUpdating = True
End Sub

on dirais que la fonction copie ne fonctionne pas !!

Merci
Avatar
pellet15
On 20 sep, 13:46, "michdenis" wrote:
Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
tu dois charger la référence suivante si ce n'est déjà fait :

"Microsoft Forms 2.0 Object Librairy"

Fenêtre de l'éditeur de code / barre des menus / références /
et tu la coches...

Cette bibliothèque se charge toute seule lorsqu'on ajouter un
formulaire (userform) à un projet vba.





Bonjour Michdenis

oui elle est cocher
"Microsoft Forms 2.0 Object Librairy"


et le presse papier ne change pas.
Quoi faire

merci
Avatar
michdenis
Je n'ai pas d'autres suggestions.

La presque totalité de ta procédure se résume
a des commande "SendKeys"... si cela dépanne
ça peut devenir problématique à plus d'un égard.

Lorsque les 2 ordinateurs sont de puissances différentes,
il se peut q'un de ceux-ci ait besoin d'une seconde ou
deux pour effectuer une tâche et que cela ait un impact
sur le déroulement des commandes....mais à part
de faire toutes sortes de tests manuels, il n'y a pas grand
chose à faire !!!


"pellet15" a écrit dans le message de news:

On 20 sep, 13:46, "michdenis" wrote:
Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
tu dois charger la référence suivante si ce n'est déjà fait :

"Microsoft Forms 2.0 Object Librairy"

Fenêtre de l'éditeur de code / barre des menus / références /
et tu la coches...

Cette bibliothèque se charge toute seule lorsqu'on ajouter un
formulaire (userform) à un projet vba.





Bonjour Michdenis

oui elle est cocher
"Microsoft Forms 2.0 Object Librairy"


et le presse papier ne change pas.
Quoi faire

merci
Avatar
pellet15
On 21 sep, 07:24, "michdenis" wrote:
Je n'ai pas d'autres suggestions.

La presque totalité de ta procédure se résume
a des commande "SendKeys"... si cela dépanne
ça peut devenir problématique à plus d'un égard.

Lorsque les 2 ordinateurs sont de puissances différentes,
il se peut q'un de ceux-ci ait besoin d'une seconde ou
deux pour effectuer une tâche et que cela ait un impact
sur le déroulement des commandes....mais à part
de faire toutes sortes de tests manuels, il n'y a pas grand
chose à faire !!!

"pellet15" a écrit dans le message de news:

On 20 sep, 13:46, "michdenis" wrote:

> Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
> tu dois charger la référence suivante si ce n'est déjà fait :

> "Microsoft Forms 2.0 Object Librairy"

> Fenêtre de l'éditeur de code / barre des menus / références /
> et tu la coches...

> Cette bibliothèque se charge toute seule lorsqu'on ajouter un
> formulaire (userform) à un projet vba.

Bonjour Michdenis

oui elle est cocher
"Microsoft Forms 2.0 Object Librairy"

et le presse papier ne change pas.
Quoi faire

merci



Bonjour Michdenis

J'ai ajouter des pause Application.Wait (Now +
TimeValue("00:00:01"))
mais cela ne fonctionne pas.

le débogage me retour
Erreur d'execution' -2147221404 (80040064)':
DataObject:GeText Structure FORMATETC non valide

et la ligne suisvant est en Jaune !!!!!
Range("H15") = Presspp.GetText

Un autre fait est que ci je copie une autre cellule dans le Presse-
papier avant l'exécution de la macros , il la colle a la place de ce
que je voulait .

Normalement en H15, je devrais avoir une donner GPS comme N45.50237
W73.55350

Voici la procédure manuellement (qui fonctionne)

Ouvre le programe nRoute
ESCP (pour fermer des fenêtres qui s'ouvre automatiquement)
ESCP
CTRL-W (pour ouvrie une fenêtre dans nRoute)
ALT-TAB (pour changer de champ)
ALT-TAB (pour changer de champ)
CTRL-C
ESCP (pour fermer la fenêtre W)

ALT-TAB (pour revenir dans Excel
select cellule H15
CTRL-V

manuellement ca va

ou est l'erreur ????

Merci (je doit absolument trouver une solution)
Avatar
michdenis
| le débogage me retour
| Erreur d'execution' -2147221404 (80040064)':
| DataObject:GeText Structure FORMATETC non valide

L'objet "DataObject" requiert la référence suivante pour fonctionner :
"Microsoft Forms 2.0 Object Librairy"

Tu dois te rappeler que "DataObject" ne fonctionne qu'avec
des données "texte (numérique)" présent dans le presse-papier.

Le type d'erreur que tu obtiens suppose que tu as autre chose
dans le presse-papier que du texte que tu veux copier dans ta
cellule.

Une façon de constater cela par toi-même, ajoute un nouveau module
standard à ton classeur et copie la procédure suivante :
'--------------------------------
Sub test()
Dim Presspp As New DataObject
Set Pressp = New DataObject
Presspp.GetFromClipboard
Range("H15") = Presspp.GetText
Set Pressp = Nothing
End Sub
'--------------------------------

Maintenant, envoie dans le presse-papier (copie) une donnée
d'une de tes feuilles de calcul et exécute ta macro, cela fonctionne
très bien.

Refais le teste en copiant dans le presse-papier, un objet quelqueconque
dans le presse-papier (bouton de commande par exemple) et exécute à
nouveau la procédure, tu obtiendras ton message d'erreur.

Conclusion : Dans ton presse-papier, es-tu certain d'avoir une donnée
texte avant de lancer la procédure ?






"pellet15" a écrit dans le message de news:

On 21 sep, 07:24, "michdenis" wrote:
Je n'ai pas d'autres suggestions.

La presque totalité de ta procédure se résume
a des commande "SendKeys"... si cela dépanne
ça peut devenir problématique à plus d'un égard.

Lorsque les 2 ordinateurs sont de puissances différentes,
il se peut q'un de ceux-ci ait besoin d'une seconde ou
deux pour effectuer une tâche et que cela ait un impact
sur le déroulement des commandes....mais à part
de faire toutes sortes de tests manuels, il n'y a pas grand
chose à faire !!!

"pellet15" a écrit dans le message de news:

On 20 sep, 13:46, "michdenis" wrote:

> Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
> tu dois charger la référence suivante si ce n'est déjà fait :

> "Microsoft Forms 2.0 Object Librairy"

> Fenêtre de l'éditeur de code / barre des menus / références /
> et tu la coches...

> Cette bibliothèque se charge toute seule lorsqu'on ajouter un
> formulaire (userform) à un projet vba.

Bonjour Michdenis

oui elle est cocher
"Microsoft Forms 2.0 Object Librairy"

et le presse papier ne change pas.
Quoi faire

merci



Bonjour Michdenis

J'ai ajouter des pause Application.Wait (Now +
TimeValue("00:00:01"))
mais cela ne fonctionne pas.

le débogage me retour
Erreur d'execution' -2147221404 (80040064)':
DataObject:GeText Structure FORMATETC non valide

et la ligne suisvant est en Jaune !!!!!
Range("H15") = Presspp.GetText

Un autre fait est que ci je copie une autre cellule dans le Presse-
papier avant l'exécution de la macros , il la colle a la place de ce
que je voulait .

Normalement en H15, je devrais avoir une donner GPS comme N45.50237
W73.55350

Voici la procédure manuellement (qui fonctionne)

Ouvre le programe nRoute
ESCP (pour fermer des fenêtres qui s'ouvre automatiquement)
ESCP
CTRL-W (pour ouvrie une fenêtre dans nRoute)
ALT-TAB (pour changer de champ)
ALT-TAB (pour changer de champ)
CTRL-C
ESCP (pour fermer la fenêtre W)

ALT-TAB (pour revenir dans Excel
select cellule H15
CTRL-V

manuellement ca va

ou est l'erreur ????

Merci (je doit absolument trouver une solution)
Avatar
pellet15
On 28 sep, 12:29, "michdenis" wrote:
| le débogage me retour
|   Erreur d'execution' -2147221404 (80040064)':
|   DataObject:GeText Structure FORMATETC non valide

L'objet "DataObject" requiert la référence suivante pour fonctionner :
"Microsoft Forms 2.0 Object Librairy"

Tu dois te rappeler que "DataObject" ne fonctionne qu'avec
des données "texte (numérique)" présent dans le presse-papier.

Le type d'erreur que tu obtiens suppose que tu as autre chose
dans le presse-papier que du texte que tu veux copier dans ta
cellule.

Une façon de constater cela par toi-même, ajoute un nouveau module
standard à ton classeur et copie la procédure suivante :
'--------------------------------
Sub test()
    Dim Presspp As New DataObject
    Set Pressp = New DataObject
    Presspp.GetFromClipboard
    Range("H15") = Presspp.GetText
    Set Pressp = Nothing
End Sub
'--------------------------------

Maintenant, envoie dans le presse-papier (copie) une donnée
d'une de tes feuilles de calcul  et exécute ta macro, cela fonctionne
très bien.

Refais le teste en copiant dans le presse-papier, un objet quelqueconque
dans le presse-papier (bouton de commande par exemple) et exécute à
nouveau la procédure, tu obtiendras ton message d'erreur.

Conclusion : Dans ton presse-papier, es-tu certain d'avoir une donnée
                      texte avant de lancer la proc édure ?

"pellet15" a écrit dans le message de news:

On 21 sep, 07:24, "michdenis" wrote:





> Je n'ai pas d'autres suggestions.

> La presque totalité de ta procédure se résume
> a des commande "SendKeys"... si cela dépanne
> ça peut devenir problématique à plus d'un égard.

> Lorsque les 2 ordinateurs sont de puissances différentes,
> il se peut q'un de ceux-ci ait besoin d'une seconde ou
> deux pour effectuer une tâche et que cela ait un impact
> sur le déroulement des commandes....mais à part
> de faire toutes sortes de tests manuels, il n'y a pas grand
> chose à faire !!!

> "pellet15" a écrit dans le message de news:
>
> On 20 sep, 13:46, "michdenis" wrote:

> > Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
> > tu dois charger la référence suivante si ce n'est déjà fait :

> > "Microsoft Forms 2.0 Object Librairy"

> > Fenêtre de l'éditeur de code / barre des menus / références /
> > et tu la coches...

> > Cette bibliothèque se charge toute seule lorsqu'on ajouter un
> > formulaire (userform) à un projet vba.

> Bonjour Michdenis

> oui elle est cocher
> "Microsoft Forms 2.0 Object Librairy"

> et le presse papier ne change pas.
> Quoi faire

> merci

Bonjour Michdenis

J'ai ajouter des pause        Application.Wait (Now +
TimeValue("00:00:01"))
mais cela ne fonctionne pas.

le débogage me retour
  Erreur d'execution' -2147221404 (80040064)':
  DataObject:GeText Structure FORMATETC non valide

et la ligne suisvant est en Jaune !!!!!
Range("H15") = Presspp.GetText

Un autre fait est que ci je copie une autre cellule dans le Presse-
papier avant l'exécution de la macros , il la colle a la place de ce
que je voulait .

Normalement en H15, je devrais avoir une donner GPS comme N45.50237
W73.55350

Voici la procédure manuellement (qui fonctionne)

Ouvre le programe nRoute
ESCP   (pour fermer des fenêtres qui s'ouvre automatiquement)
ESCP
CTRL-W   (pour ouvrie une fenêtre dans nRoute)
ALT-TAB   (pour changer de champ)
ALT-TAB   (pour changer de champ)
CTRL-C
ESCP        (pour fermer la fenêtre W)

ALT-TAB    (pour revenir dans Excel
select cellule H15
CTRL-V

manuellement ca va

ou est l'erreur  ????

Merci    (je doit absolument trouver une solution)- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michdenis

Mais pourquoi ca fonctionne sur 10 autre laptop et pas sur le
mien ????


J'ai exécuter la procedure "test" et oui il bloc avec d'autre chause
que du texte...

dans ma procédure a part d'utiliser la fonction " SendKeys "^C",
True "

que puis-je faire pour copie la donné. ?

Merci
Avatar
michdenis
| dans ma procédure a part d'utiliser la fonction " SendKeys "^C",True "

| que puis-je faire pour copie la donné. ?

Aucune idée autre que celle déjà exprimée sur ce fil ...
Lorsque la commande "SendKeys "^C",True" s'exécute
tu dois avoir seulement du "texte" de sélectionner et non
un objet. Comme ta procédure fonctionne déjà sur un
ordi... la seule chose que je vois est que l'on d'eux est
plus rapide que l'autre...dans l'exécution du code.... si
tu as une commande "Wait..." avant cette ligne de code,
j'allongerais le temps d'une seconde ou deux ! Avec les
commandes "Sendkeys" il n'y a pas grand miracle à espérer
que de faire des "tests" aveugles !!!!





"pellet15" a écrit dans le message de news:

On 28 sep, 12:29, "michdenis" wrote:
| le débogage me retour
| Erreur d'execution' -2147221404 (80040064)':
| DataObject:GeText Structure FORMATETC non valide

L'objet "DataObject" requiert la référence suivante pour fonctionner :
"Microsoft Forms 2.0 Object Librairy"

Tu dois te rappeler que "DataObject" ne fonctionne qu'avec
des données "texte (numérique)" présent dans le presse-papier.

Le type d'erreur que tu obtiens suppose que tu as autre chose
dans le presse-papier que du texte que tu veux copier dans ta
cellule.

Une façon de constater cela par toi-même, ajoute un nouveau module
standard à ton classeur et copie la procédure suivante :
'--------------------------------
Sub test()
Dim Presspp As New DataObject
Set Pressp = New DataObject
Presspp.GetFromClipboard
Range("H15") = Presspp.GetText
Set Pressp = Nothing
End Sub
'--------------------------------

Maintenant, envoie dans le presse-papier (copie) une donnée
d'une de tes feuilles de calcul et exécute ta macro, cela fonctionne
très bien.

Refais le teste en copiant dans le presse-papier, un objet quelqueconque
dans le presse-papier (bouton de commande par exemple) et exécute à
nouveau la procédure, tu obtiendras ton message d'erreur.

Conclusion : Dans ton presse-papier, es-tu certain d'avoir une donnée
texte avant de lancer la procédure ?

"pellet15" a écrit dans le message de news:

On 21 sep, 07:24, "michdenis" wrote:





> Je n'ai pas d'autres suggestions.

> La presque totalité de ta procédure se résume
> a des commande "SendKeys"... si cela dépanne
> ça peut devenir problématique à plus d'un égard.

> Lorsque les 2 ordinateurs sont de puissances différentes,
> il se peut q'un de ceux-ci ait besoin d'une seconde ou
> deux pour effectuer une tâche et que cela ait un impact
> sur le déroulement des commandes....mais à part
> de faire toutes sortes de tests manuels, il n'y a pas grand
> chose à faire !!!

> "pellet15" a écrit dans le message de news:
>
> On 20 sep, 13:46, "michdenis" wrote:

> > Pour pouvoir utiliser l'objet "DataObject" dans une procédure,
> > tu dois charger la référence suivante si ce n'est déjà fait :

> > "Microsoft Forms 2.0 Object Librairy"

> > Fenêtre de l'éditeur de code / barre des menus / références /
> > et tu la coches...

> > Cette bibliothèque se charge toute seule lorsqu'on ajouter un
> > formulaire (userform) à un projet vba.

> Bonjour Michdenis

> oui elle est cocher
> "Microsoft Forms 2.0 Object Librairy"

> et le presse papier ne change pas.
> Quoi faire

> merci

Bonjour Michdenis

J'ai ajouter des pause Application.Wait (Now +
TimeValue("00:00:01"))
mais cela ne fonctionne pas.

le débogage me retour
Erreur d'execution' -2147221404 (80040064)':
DataObject:GeText Structure FORMATETC non valide

et la ligne suisvant est en Jaune !!!!!
Range("H15") = Presspp.GetText

Un autre fait est que ci je copie une autre cellule dans le Presse-
papier avant l'exécution de la macros , il la colle a la place de ce
que je voulait .

Normalement en H15, je devrais avoir une donner GPS comme N45.50237
W73.55350

Voici la procédure manuellement (qui fonctionne)

Ouvre le programe nRoute
ESCP (pour fermer des fenêtres qui s'ouvre automatiquement)
ESCP
CTRL-W (pour ouvrie une fenêtre dans nRoute)
ALT-TAB (pour changer de champ)
ALT-TAB (pour changer de champ)
CTRL-C
ESCP (pour fermer la fenêtre W)

ALT-TAB (pour revenir dans Excel
select cellule H15
CTRL-V

manuellement ca va

ou est l'erreur ????

Merci (je doit absolument trouver une solution)- Masquer le texte des
messages précédents -

- Afficher le texte des messages précédents -



Bonjour Michdenis

Mais pourquoi ca fonctionne sur 10 autre laptop et pas sur le
mien ????


J'ai exécuter la procedure "test" et oui il bloc avec d'autre chause
que du texte...

dans ma procédure a part d'utiliser la fonction " SendKeys "^C",
True "

que puis-je faire pour copie la donné. ?

Merci