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 :

Copier tout le texte d'une cellule dans le presse papier [XL-2016]


Sujet :

Macros et VBA Excel

  1. #21
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Peux-tu nous donner le mode d'emploi pour reproduire le problème, en particulier
    - contenu de la cellule active
    cible (application) où l'on fait le coller
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  2. #22
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Hello,
    si cela t'intéresse j'ai un classeur avec les modules de classe vbaClipBoard et clipboardFormat qui utilisent les API windows et qui permettent d'avoir les procédures suivantes :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    Sub ListerFormatsPP()    ' Cette routine liste les formats présents dans le presse papier
        Dim monPP As New vbaClipboard
        Dim PPFormat As ClipboardFormat
        On Error GoTo ErrorHandler
        Debug.Print "===================================================================="
        For Each PPFormat In monPP.ClipboardFormatsAvailable
            Debug.Print PPFormat.Number, PPFormat.Name
        Next PPFormat
        Exit Sub
    ErrorHandler:
        MsgBox Err.description
    End Sub
    Sub InjecterRTFdansPP()
        'Remplir le presse-papier avec du contenu RTF
        Dim monPP As New vbaClipboard
        Dim FSO As Object, FileToRead As Object
        Dim texteRTF As String
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set FileToRead = FSO.OpenTextFile("d:\temp\test.rtf")
        texteRTF = FileToRead.ReadAll
        FileToRead.Close
        monPP.SetClipboardText texteRTF, "Rich Text Format"
        ListerFormatsPP
    End Sub
     
     
    Sub InjecterHTMLdansPP()
        'Remplir le presse-papier avec du contenu HTML
        Dim monPP As New vbaClipboard
        Dim texteHTML As String
        texteHTML = "<i>" & texteHTML & "</i>"
        monPP.SetClipboardText texteHTML, "HTML Format"
        ListerFormatsPP
    End Sub
     
     
    Sub InjecterTextedansPP()
        'Remplir le presse-papier avec du contenu Texte
        Dim monPP As New vbaClipboard
        Dim texte As String
        texte = "Salut le monde !"
        monPP.SetClipboardText texte, "CF_TEXT"
        ListerFormatsPP
        'Affiche contenu Presse-papier
        Debug.Print monPP.GetClipboardText(1)
    End Sub
    Sub RécupTextedePP()
        'Récupérer contenu RTF du presse-papier
        Dim monPP As New vbaClipboard
        Dim Textepp As String
        Dim TexteNum As Long
        On Error Resume Next
        TexteNum = monPP.ClipboardFormatsAvailable("CF_TEXT").Number
        If Err.Number <> 0 Then
            On Error GoTo ErrorHandler
            Err.Raise vbObjectError + 1, , "Le presse-papier ne contient pas de contenu texte !"
        End If
        Textepp = monPP.GetClipboardText(TexteNum)
        Debug.Print Textepp
        Exit Sub
    ErrorHandler:
        MsgBox Err.description
    End Sub
    Sub RécupRTFdePP()
        'Récupérer contenu RTF du presse-papier
        Dim monPP As New vbaClipboard
        Dim RTFpp As String
        Dim RTFNum As Long
        On Error Resume Next
        RTFNum = monPP.ClipboardFormatsAvailable("Rich Text Format").Number
        If Err.Number <> 0 Then
            On Error GoTo ErrorHandler
            Err.Raise vbObjectError + 1, , "Le presse-papier ne contient pas de contenu RTF !"
        End If
        RTFpp = monPP.GetClipboardText(RTFNum)
        Debug.Print RTFpp
        Exit Sub
    ErrorHandler:
        MsgBox Err.description
    End Sub
     
     
    Sub RécupHTMLdePP()
        'Récupérer contenu HTML du presse-papier
        Dim monPP As New vbaClipboard
        Dim HTMLpp As String
        Dim HTMLNum As Long
        On Error Resume Next
        HTMLNum = monPP.ClipboardFormatsAvailable("HTML Format").Number
        If Err.Number <> 0 Then
            On Error GoTo ErrorHandler
            Err.Raise vbObjectError + 1, , "Le presse-papier ne contient pas de contenu HTML !"
        End If
        HTMLpp = monPP.GetClipboardText(HTMLNum)
        Debug.Print HTMLpp
        monPP.SetClipboardText HTMLpp, "HTML Format"
        Exit Sub
    ErrorHandler:
        MsgBox Err.description
    End Sub
    Ami calmant, J.P

    ça beug, je dois faire quelque chose de faux

    Nom : 2022-11-21_15-21-00.png
Affichages : 190
Taille : 19,2 Ko

  3. #23
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    C'est normal vbaclipboard c'est un des modules de classes que tu n'as pas

    La discussion peut durer très longtemps si tu ne réponds pas à mon message #21
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #24
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function ClearPressePapier()
    With CreateObject("htmlfile").parentwindow.clipboardData.clearData("Text"): End With
    End Function
    Public Property Let PressePapier(valeur)
    With CreateObject("htmlfile").parentwindow.clipboardData.SetData("Text", valeur): End With
    End Property
    Public Property Get PressePapier()
    PressePapier = CreateObject("htmlfile").parentwindow.clipboardData.GetData("TEXT")
    End Property
     Sub test()
    PressePapier = "TOTO"
    End sun

  5. #25
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184
    Par défaut
    Peux-tu nous donner le mode d'emploi pour reproduire le problème, en particulier
    - contenu de la cellule active = du texte
    - cible (application) où l'on fait le coller = n'importe où, il faut que le texte soit du texte brut, genre Notepad

    Je le colle dans autre application type 3e, c'est un ERP

  6. #26
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 420
    Points : 2 179
    Points
    2 179
    Par défaut
    Bonjour,
    Je ne sais sila question s'adressait à moi donc je fais comme si!
    Code Mode d'emploi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Sub test()
    PressePapier = "TOTO"  'je place "TOTO" dans le presse papier
    Dim var as string
    Var = PressePapier 'je place le contenu du presse papier dans var
    Range("A2")="RIRI"
    PressePapier = Range("A2").Texte
    Msgbox PressePapier
    End sub

  7. #27
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184
    Par défaut
    Je vais tester cette fonction

    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
    Function Clipboard(Optional StoreText As String) As String
    'Pour copier Clipboard ActiveCell
    'Pour coller MsgBox Clipboard
    Dim x As Variant
        x = StoreText 'Stocker comme variante pour la prise en charge de VBA 64 bits
        'Créer un objet HTMLFile
        With CreateObject("htmlfile")
            With .parentWindow.clipboardData
                Select Case True
                    Case Len(StoreText)
                    'Écrire dans le presse-papiers
                        .setData "text", x
                    Case Else
                    'Lire depuis le presse-papiers (aucune variable transmise)
                    Clipboard = .GetData("text")
                End Select
            End With
        End With
    End Function

  8. #28
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184
    Par défaut
    Ça fonctionne nickel merci à tous

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [LibreOffice][Tableur] Copier le contenu d une cellule dans le presse papier windows
    Par ryan44x dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 10/04/2015, 08h15
  2. Copier le contenu texte d'une cellule dans un string
    Par C.R.E.A.M dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/10/2008, 15h35
  3. Recherche du texte d'une cellule dans une base de donnée externe
    Par Asdorve dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/09/2007, 14h10
  4. Réponses: 3
    Dernier message: 18/08/2006, 16h15
  5. [VBA] Problème récup texte d'une cellule dans un tableau
    Par Marco le Pouillot dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/01/2006, 17h06

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