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 :

Problème utilisation SendKeys [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Salarié
    Inscrit en
    Septembre 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Salarié

    Informations forums :
    Inscription : Septembre 2012
    Messages : 49
    Par défaut Problème utilisation SendKeys
    Bonjour,

    J'ai un problème avec l'utilisation de SendKeys. Ci-dessous, mon programme :

    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
    '------ Remplacement des "." par des "," dans la colonne P ------
     
    Range("P:P").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
     
    '------ Il faudrait ici que j'utilise la méthode SendKeys pour faire l'équivalent
    'd'un F2 (ou double clic) + ENTER afin que les infos soit utilisable dans 
    'le tableau croisé dynamique qui suit. 
    '(Actuellement, le TCD ignore les cellules en 'question...)
     
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        fichier & "!R1C1:R1048576C23", Version:= _
        xlPivotTableVersion12).CreatePivotTable TableDestination:= _
        fichier & "!R3C27", TableName:="MonTCD" & projet, _
        DefaultVersion:=xlPivotTableVersion12
    Afin de tester la méthode SendKeys, j'ai fais le test sur une cellule sur laquelle le "replace" est passé, avec le code ci-dessous, mais ça ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("P173").Select
    Application.SendKeys "{F2}", True
    Application.SendKeys "{Enter}", True
    Merci d'avance pour votre aide

    Alex

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    en fait tu veux juste revalider la valeur dans ta cellule ?

    pourquoi passer par un F2 ?

    autant faire directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("P173").Value = Range("P173").Value
    non ?
    ou alors une subtilité m'échappe...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Salarié
    Inscrit en
    Septembre 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Salarié

    Informations forums :
    Inscription : Septembre 2012
    Messages : 49
    Par défaut
    Oui c'est un peu ça. Mais la solution que tu me donnes ne fonctionne pas. ça ne change rien.

    J'ai trouvé une solution mais qui est de copier une cellule avec le chiffre 1 dedans puis de faire un collage spécial en multiplication dans la cellule qui à fait l'objet du replace.

    Cette solution fonctionne mais je suis quand même intéressé par la méthode SendKeys.

  4. #4
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    bonsoir

    sans avoir vraiment bien compris ce que tu veux faire avec cette action de f2
    le code excel correspondant s'écrit: application.DoubleClick

    nb: l'action est éffectuée sur la cellule active de la feuille active.
    cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Salarié
    Inscrit en
    Septembre 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Salarié

    Informations forums :
    Inscription : Septembre 2012
    Messages : 49
    Par défaut
    Bonjour,

    Tout d'abord bonne année à tous et meilleurs voeux !

    Comme demandé, j'envoi en pièce jointe un extract de mon fichier. J'utilise sur celui la macro ci-dessous (proposé NVCfrm), la macro passe bien, mais rien ne change...

    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
    Sub doubleclick()
     
    'Dim ligne As Range
     
    'For Each ligne In Range("A1:W290010").SpecialCells(xlCellTypeVisible).Rows
     
    For i = 1 To Range("A100").End(xlUp).row
     
            Range("B" & i).Select
     
            'Range("P" & ligne.row).Select
     
            Selection.Application.doubleclick
     
    Next i
     
    'Next ligne
     
    End Sub
    Les lignes en commentaires sont les lignes utilisées dans le fichier complet alors que les autres lignes sont adaptées à l'extract.

    En espérant que ça vous aide pour m'aider

    Alex
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,


    En effet je n'ai pas réussi quelque chose de somple avec ton classeur demo.

    Tu peux essayer ça, cela fonctionne chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub x()
    Dim ws As Worksheet, derlig As Long, i As Long
    Const Mcol As Integer = 2
    Set ws = ActiveSheet
    derlig = ws.Cells(ws.Rows.Count, Mcol).End(xlUp).Row ' ws.Range("B2:B" & derlig).Select
     
    For i = 1 To derlig
     ws.Cells(i, Mcol).Value = Replace(ws.Cells(i, Mcol).Value, ",", ".")
    ws.Range("B2:B" & derlig).NumberFormat = "#0.00"
    Next i
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Salarié
    Inscrit en
    Septembre 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Salarié

    Informations forums :
    Inscription : Septembre 2012
    Messages : 49
    Par défaut
    Merci aalex_38 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    ça fonctionne parfaitement

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

Discussions similaires

  1. Problème utilisation DLL
    Par Tub-95 dans le forum MFC
    Réponses: 4
    Dernier message: 02/11/2005, 12h00
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [JSTL] [EL] Problème utilisation <c:out>
    Par XavierL dans le forum Taglibs
    Réponses: 7
    Dernier message: 14/08/2005, 20h12
  4. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26
  5. [JAR]Problème utilisation manifest et jar
    Par doudine dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/01/2005, 10h21

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