Re
Ce que je voulais dire, c'est que ton fichier affiche un Userform et met Excel en invisible. Si on clique sur la croix de l'userform, Excel reste ouvert derrière mais n'est plus accessible. Une personne pas très à l'aise avec la programmation ne comprendra pas ce qui se passe.
Sinon pour ton problème, il suffisait de faire un petit fichier simple comme ceci.
Par contre, je n'ai pas compris ce qui ne fonctionnait pas, chez moi le copier coller fonctionne normalement.
Bonjour, ce sujet date un peu, mais je rencontre aussi des problème avec la fonction PutInClipboard. j'ai constaté sans vraiment comprendre pourquoi que le problème apparaissait lorsque des fenêtres d'explorateur Windows étaient ouverte (sous windows 10 à minima) donc je cherche une façon de contourner le problème, mais je bloque un peu. pour l'instant, j'essaye de parcourir les fenêtres ouvertes de windows, mettre en mémoire les chemins de répertoire, les fermer, utiliser ma mise en mémoire tampon, puis réouvrir les répertoires.
mais d'une part je ne maitrise pas la librairie user32.dll et donc pour l'instant, je coince un peu.
et d'autre part cette solution me semble bien maladroite pour contourner un problème qui a peut-être une solution plus directe et élégante.
une idée?
au cas ou, mon bout de code qui fonctionne bien, à condition d'avoir préalablement fermé toutes les fenêtre d'explorateur Windows :
(Je converti une plage de cellules visibles en une seule chaine de caractère avec des séparateurs ";" - c'est pour copier dans le champs requête d'un ERP un peu moisi qui ne sais pas gérer le collage depuis un tableau)
Sub Liste_A_Coller()
Dim MaListe As Variant
Dim Cellule As Variant
For Each Cellule In Selection.SpecialCells(xlCellTypeVisible)
If CStr(Cellule.Value) <> "" Then
If MaListe = "" Then
MaListe = Cellule.Value
ElseIf InStr(1, MaListe, Cellule.Value, vbTextCompare) = 0 Then
MaListe = MaListe & ";" & Cellule.Value
End If
End If
Next Cellule
Application.CutCopyMode = False
Set XObj = New DataObject
XObj.SetText (MaListe)
XObj.PutInClipboard
Set XObj = Nothing
End Sub