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 :

Récupération de l'objet Range en cours de copie (la selection en pointillé pas la selection active) [XL-2010]


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
    Consultant ERP
    Inscrit en
    Février 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 45
    Par défaut Récupération de l'objet Range en cours de copie (la selection en pointillé pas la selection active)
    bonjour,
    tout est dans le titre.
    Lorsque l'utilisateur fait un Ctrl+c : Excel indique la zone de référence de la copie par un encadrement en pointillé qui clignote.
    Je cherche à récupérer soit l'objet range de cette sélection, soit l’adresse de cette sélection.
    Le presse-papier windows ne semble pas avoir une telle information (.GetFromClipboard ne permet de récupérer que du text)
    la fonction "CountClipboardFormats" me donne le chiffre 30 mais ...
    Malgré mes recherche, je n'ai pas trouver ou excel/office/windows stock l'information qui permet de mettre la plage en pointillé clignotant !

    Merci d'avance de votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu cherches à récupérer l'adresse de la zone pointillées quand l'utilisateur fait ctrl+c ?

    affecte à la macro suivante le raccourci Ctrl+c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Pointilles()
    celluleacopier = ActiveCell.Address
    MsgBox celluleacopier
    End Sub
    regarde si ça te convient, et si c'est le cas explique plus en détail ce que tu veux en faire, car on doit étendre la portée de la variable (ou transformer ça éventuellement en fonction)

  3. #3
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 45
    Par défaut
    Je ne souhaite pas court-circuiter le copier-coller classique (Ctrl+c, Ctrl+v) par contre j'ajoute un Ctrl+Shit+v qui par défaut réalise un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PasteSpecial Paste:=xlPasteValues
    mais en cas d'erreur (forme de cellule non identique) je doit pouvoir aller rechercher la source des données.
    Cette donné doit bien être en mémoire quelque part dans excel ou dans le presse-papier d'office.
    Je viens de tomber sur cela : XlClipboardFormat une énumération de la propriété : Application.ClipboardFormats. ce n'est toujours pas mon objet range mais je me rapproche.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    ça ne court-circuite pas forcément le copier coller

    là c'est un exemple

    je peux très bien avoir une variable publique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public DernierCtrlC as Range

    ma macro appelée par le raccourci Ctrl+c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Pointilles()
    Set DernierCtrlC = ActiveCell
    DernierCtrlC.Copy
    End Sub
    j'ai encore la main pour faire mon "coller" et l'utilisateur ne se rend compte de rien

    j'ajoute une autre procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CopierQuoi()
    If Not DernierCtrlC Is Nothing Then
        MsgBox "Dernière cellule copiée : " & DernierCtrlC.Address
    Else
        MsgBox "Aucun copié effectué depuis l'ouverture du classeur"
    End If
    End Sub
    qui m'indique la dernière cellule copiée (s'il y en a une)


    maintenant, tu n'expliques toujours pas le contexte exact de ta démarche, comment peut-on ainsi te proposer la meilleur piste ?

  5. #5
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 45
    Par défaut
    J'aime bien ta piste et cela change mon angle de réflexion.
    Le problème c'est que je manipule des fichiers excel réalisé avec les pieds par des incompétents.
    Je me retrouve a faire des copier coller a partir de différente sources pdf, image, excel.
    Ne gardon que le cas d'excel les différents fichier de départ ont des cellules regroupé et des couleurs différent, les fichiers d'arrivé c'est la même chose.
    Donc si tu fait un copier-coller : excel copie l'ensemble des formats, si tu fais un copier coller valeur comme les cellules regrouper ne son t pas les même cela bloque.
    Pour certaines copie répétitives et fixes dans un même fichier, j'ai résolut le problème en VBA en allant chercher pour chaque cellules d'arrivées regroupé, la valeur à l'adressage de la première cellule du regroupement. Mais je souhaite une macro plus générique, qui puisse coller les valeurs brutes de n'importe quelles plage de données.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Résumé en une phrase, tu souhaites forcer le coller "valeur uniquement" sur le classeur ?

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

Discussions similaires

  1. JTable récupération d'un objet
    Par qwiskas dans le forum Composants
    Réponses: 7
    Dernier message: 31/10/2006, 16h35
  2. [VBA-E]Pb avec objet Range
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/07/2006, 16h02
  3. [VBA-E] Accès à l'objet Range (oui puis non ?)
    Par gapgap dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/05/2006, 20h00
  4. L'objet Range - automation excel
    Par Celia1303 dans le forum Access
    Réponses: 6
    Dernier message: 21/12/2005, 17h03
  5. VBA Excel Débutant : Graphique et objet Range
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/11/2005, 18h34

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