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

Macros et VBA Excel Discussion :

Probleme chargement presse papier depuis Windows 8.1 [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut Probleme chargement presse papier depuis Windows 8.1
    Bonjour a tous

    Dans un code VBA qui fonctionnait sous windows XP je chargeais le presse papier avec le code suivant, depuis que je l'utilise sous windows 8.1 ça bug, le contenu du presse papier ne correspond pas aux données de ma variable.
    Je me retrouve avec deux carré comme on peut les trouver dans les codes ascii, mais ça m'est arrivé de voir également deux points d'interrogation, genre: ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim LongPx, LargPx As integer
        Dim MyData As New DataObject
     
     
        MyData.SetText LongPx
        MyData.PutInClipboard
        WshShell.SendKeys "^v", True
    Est ce que quelqu'un aurait une idée pour resoudre ce probleme?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut

    Windows 8 n'accepte plus les Sendkey il me semble. [Edit] Il semble que j'ai dis une bêtise, je ne retrouve pas d'info allant dans ce sens[/Edit]
    Où sont collées tes données?
    Si elles sont collées dans une feuille Excel, tu peux utiliser directement la procédure Past de l'objet WorkSheet.


    Rien à voir avec ton problème mais attention à tes déclarations de variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim LongPx, LargPx As integer
     
    'ici Excel comprend
     
    Dim LongPx as Variant, LargPx As integer
     
    'il faut répéter le type pour chaque variables
     
    Dim LongPx as integer, LargPx As integer
    ++
    Qwaz

  3. #3
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut
    Bonjour et merci Qwazerty de t'interresser a mon probleme.

    C'est vrai que j'avais vu que cette façon de declarer les variables n'etait pas la meilleur, et expliqué comme tu l'a fait me le montre bien, merci pour l'info.

    Parcontre, pour mon sendkey, je colle dans un text box d'un autre logiciel que excell c'est pour cela que j'utilise le sendkey.
    la porcedure complete qui fonctionne jusqu'au collé par "controle + V" est:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Set WshShell = CreateObject("WScript.Shell")
     
     
       WshShell.SendKeys "%f", True
       WshShell.SendKeys "i", True
        Sleep 10
        'WshShell.SendKeys "{tab 2}", True
        WshShell.SendKeys " ", True
        WshShell.SendKeys "{tab 3}", True
        WshShell.SendKeys "~", True
        Sleep 600
        WshShell.SendKeys NomFichier, True
        WshShell.SendKeys "~", True
        Sleep 10
        WshShell.SendKeys "{tab 3}", True
        WshShell.SendKeys "~", True
     
     
        If LongPx = 0 Then
            Exit Sub
        End If
        Sleep 10
        MyData.SetText LongPx
        MyData.PutInClipboard
        WshShell.SendKeys "^v", True
     
     
        WshShell.SendKeys "{tab}", True
        Sleep 10
        MyData.SetText LargPx
        MyData.PutInClipboard
        WshShell.SendKeys "^v", True

    Tout fonctionne jusqu'a:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.SendKeys "^v", True

  4. #4
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Est-ce que ca fonctionne en supprimant les alertes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DisplayAlerts = False

  5. #5
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut
    Bonjour Docmarti

    Non ça ne fonctionne pas mieux, toujours pareil.

  6. #6
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut
    Juste pour amener une solution ' et de plus toute bete a mon probleme, que je viens de trouver 7 mois plus tard.

    Au lieu de passer par un copier coller, il y avait juste a déclarer le sendkeys avec la variable et la plus de probleme.


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Set WshShell = CreateObject("WScript.Shell")
     
     
       WshShell.SendKeys "%f", True
       WshShell.SendKeys "i", True
        Sleep 10
        'WshShell.SendKeys "{tab 2}", True
        WshShell.SendKeys " ", True
        WshShell.SendKeys "{tab 3}", True
        WshShell.SendKeys "~", True
        Sleep 600
        WshShell.SendKeys NomFichier, True
        WshShell.SendKeys "~", True
        Sleep 10
        WshShell.SendKeys "{tab 3}", True
        WshShell.SendKeys "~", True
     
     
        If LongPx = 0 Then
            Exit Sub
        End If
        Sleep 10
        'MyData.SetText LongPx
        'MyData.PutInClipboard
        WshShell.SendKeys (LongPx), True
     
     
        WshShell.SendKeys "{tab}", True
        Sleep 10
        'MyData.SetText LargPx
        'MyData.PutInClipboard
        WshShell.SendKeys (LargPx), True

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

Discussions similaires

  1. Probleme de presse papier
    Par wabo67 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/11/2007, 12h10
  2. Réponses: 2
    Dernier message: 23/10/2007, 14h53
  3. Réponses: 3
    Dernier message: 18/08/2006, 16h15
  4. utiliser la presse papier du windows
    Par zidenne dans le forum Langage
    Réponses: 6
    Dernier message: 23/01/2006, 20h23
  5. Réponses: 4
    Dernier message: 28/10/2005, 10h39

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