Presse papier

cs_nul en info Messages postés 4 Date d'inscription dimanche 17 décembre 2006 Statut Membre Dernière intervention 8 janvier 2007 - 17 déc. 2006 à 05:42
cs_nul en info Messages postés 4 Date d'inscription dimanche 17 décembre 2006 Statut Membre Dernière intervention 8 janvier 2007 - 8 janv. 2007 à 06:33
Bonjour,

J'utilise Excel 2003.
J'ai programmé une macro qui m'envoie des données text dans le presse papier Excel (maxi 24 objets).
Mon problème est que je perd les infos lorsque le presse papier excel est plein (>24 objets maxi).
Ma question:
Comment puis je faire pour recuperer le contenu du presse papier excel lorsqu'il est plein puis de vider le presse papier . cette operation devrait se faire 4 ou 5 fois, ça devrait suffire.
Si vous avez la réponse, ça m'interesse !

Merci

7 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 déc. 2006 à 06:07
Salut,

vu que c'est des données textes, pourquoi ne stockes-tu pas les valeurs dans des cellules ?
Ce serait facile à stocker / récupérer, et tu aurais donc 65536 x 255 possibilités de stockage par feuille.

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
cs_nul en info Messages postés 4 Date d'inscription dimanche 17 décembre 2006 Statut Membre Dernière intervention 8 janvier 2007
17 déc. 2006 à 06:35
"Mortalino", effectivement, ce doit être plus simple !
Le contexte :
Je suis "nul en info"
Je suis arrivé à récupérer des données à partir de la cellule A1 (excel).
Le soucis étant qu'à chaque nouvelles données, ça m'écrasait les précédentes.
J'ai essayé de faire une boucle pour incrémenter et passer à la cellule suivante, ça marchait, je ne perdais plus d'info par contre, j'avais 10 ou 20 cellules identiques dans la première colonne du classeur.
Je ne suis pas arrivé à :
- effacer le presse papier,
- comparer le contenu des cellules collées dans excel par rapport au contenu du presse papier

peut être sais tu faire cela ?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 déc. 2006 à 06:51
Pour effacer le presse papier : ClipBoard.Clear en VB6, mais n'existe pas en VBA, passe par cette classe de PCPT :
http://www.vbfrance.com/codes/PRESSE-PAPIER-TEXTE-POUR-VBA-MODULE-CLASSE_39692.aspx

Sinon, pour tes comparaisons, en utilisant la classe cité juste avant :

        Dim PLV As Integer, i As Integer

PLV =  Columns(1).Find("", Range("A1"), , , xlByRows, xlNext).Row - 1
' le 1 de Columns doit
correspondre à la cellule de départ, donc de la colonne A)

For i = 1 To PLV
    If Cells(PLV, 1).Text = TextClipBoard.GetText Then
        MsgBox "La cellule " &Cells(PLV, 1).Address &  " possède la valeur
du Presse-Papier"
        Exit For ' ça c'est pour arrêter la
boucle
    End If
Next i

~ <small> [code.aspx?ID=39466 Mortalino] </small>
~

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_ZANUS Messages postés 126 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 février 2007
17 déc. 2006 à 09:19
Salut

Je ne sais pas si j'ai bien compris mais pour vider le presse papier en vba:
OpenClipboard 0&
EmptyClipboard
CloseClipboard
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nul en info Messages postés 4 Date d'inscription dimanche 17 décembre 2006 Statut Membre Dernière intervention 8 janvier 2007
17 déc. 2006 à 11:52
Bon, j'arrive pas à faire fonctionner...
Au lancement, message "objet requis"
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 déc. 2006 à 17:29
Regarde la source ^^
il faut déclarer un objet DataObject. (cf. aide vba)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_nul en info Messages postés 4 Date d'inscription dimanche 17 décembre 2006 Statut Membre Dernière intervention 8 janvier 2007
8 janv. 2007 à 06:33
bonjour et bonne année à tous !

"Mortalino", j'ai essayé de déclarer un objet DataObjet mais bon, rien de concluant...
Peux tu STP compléter la comparaison ci dessus, en y ajoutant les declarations de variables et tout ce qu'il faut pour que cela  fonctionne !
Rq: je pensais pouvoir faire ça tout seul, mais je n'y arrive pas.

D'avance merci pour la contribution
0
Rejoignez-nous