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 :

Contrôle Presse papier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Animateur Qualité
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Animateur Qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Par défaut Contrôle Presse papier
    Bonjour,
    Je cherche à contrôler au début d'une macro que le presse-papier contient bien des données issues d'un autre tableau (que l'utilisateur doit copier et ensuite cliquer sur un bouton pour coller dans le tableau destinataire)
    J'ai trouvé pour contrôler que le presse-papier est non vide, mais si le presse-papier contient du texte par ex (si l'utilisateur oublie de copier le tableau source et que son presse-papier contient déjà qq chose), le test est ok et la macro échoue ensuite sur le Pastespecial
    Est-ce que quelqu'un a une idée, je n'ai rien trouvé là-dessus dans mes recherches.
    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    La méthode getfromclipboard (rubrique GetFromClipboard, méthode de ton aide interne VBA à lire) te permettra de connaître le contenu du presse-papier, mais bien évidemment pas de déterminer dynamiquement s'il est ce que tu souhaites !

  3. #3
    Membre du Club
    Homme Profil pro
    Animateur Qualité
    Inscrit en
    Novembre 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Animateur Qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 8
    Par défaut
    Bonjour,
    Actuellement j'ai ça dans le code que j'ai trouvé sur un autre forum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim x As New DataObject
        x.GetFromClipboard
            If x.GetFormat(1) = False Then
                MsgBox "Le presse-papier est vide"
    Mais comme je l'expliquais ça ne fonctionne pas

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je ne sais pas dans quelles "gamelles" tu cherches et "trouves" ...
    Regarde ce que fait par exemple ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
        Set MyData = New DataObject
        MyData.GetFromClipboard
        MsgBox MyData.GetText(1)
    End Sub
    va où te pousse le vent, copie ce que tu veux et lance ce petit bout de code.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    une idée juste comme ca avec un autre object sans un module standard
    le principe est de tester le left et le right du texte voir si il correspond a la cellule 1 et la derniere cellule de la plage
    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
    Public Property Get presse_papier() As String
        presse_papier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT")
    End Property
    '
    Sub test2()
        Set plage = Sheets(1).Range("A1:c10")
        plage.Copy
        MsgBox control_pressepapier(plage)
     Application.CutCopyMode = False
     End Sub
    '
    '
    Function control_pressepapier(plage)
        texte = Trim(Replace(Replace(presse_papier, vbTab, ""), vbCrLf, ""))
        x1 = plage.Cells(1).Text = Left(texte, Len(plage.Cells(1).Text))
        x2 = plage.Cells(plage.Cells.Count).Text = Right(texte, Len(plage.Cells(plage.Cells.Count).Text))
          control_pressepapier = x1 And x2
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    Personnellement je trouve étrange cette demande, mais pourquoi pas …
    L'autre solution ne serait il pas plutôt d'avoir un bouton permettant de copier ledit tableau et de coller directement sur le tableau voulu … ?
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pourquoi ne pas partir du tableau source? Si c'est un export d'un logiciel, il devrait avoir toujours la même forme. Dès lors, tu pourrais faire en sorte que l'utilisateur précise le classeur source (enregistré "quelle part") et ton code ouvrirait ce classeur pour y cherche les infos selon un algorithme défini en fonction de l'export réalisé. Ca me semble beaucoup plus sûr que de s'appuyer sur un hypothétique contenu de clipboard.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [Toutes versions] Copier la valeur d'un contrôle dans le presse papier
    Par possible924 dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/05/2018, 12h40
  2. Coller une image contenu dans le Presse papier dans un contrôle Image VBA
    Par Fredooooo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2016, 21h59
  3. [AC-2010] Contrôle de la commande "COPIER" du presse-papiers.
    Par JOHN14 dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/05/2014, 17h36
  4. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46
  5. Copier une image (jpeg) dans le presse papier
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2002, 14h51

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