comment empecher Excel de vider le presse-papier ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sethtrop4

XLDnaute Nouveau
Bonjour aux experts

QUOI
Quand on copie une ou plusieurs cellules dans Excel , elles sont entourées de tirets.
Le problème est qu'on ne peut pas conserver les données copiées dans le presse-papier : dès qu'on a malheur de taper quelque chose dans une autre cellule, les cellules entrourées redeviennent normales, et Excel vide le presse papier
Comment faire pour que les données copiées dans le presse papier y reste ( comme le font toutes les autres applications : Notepad , Word ... ) ?

POURQUOI
Le but est de faire 2 macros déclenchées par une touche
- une première qui copie les cellules sélectionnées
- une deuxième qui colle ce qui a été copié par la 1e macro
et on doit pouvoir faire d'autres saisies entre l'appel de ces 2 macros

cordialement
 
Re : comment empecher Excel de vider le presse-papier ?

Bonjour

Voici un petit code qui devrait te permettre de faire ce que tu cherches
Public toto
Private Sub CommandButton1_Click()
Set toto = Selection
End Sub

Private Sub CommandButton2_Click()
toto.Copy
ActiveSheet.Paste
End Sub
 
Re : et non ... ca ne marche pas

Bonjour,
Merci pour cette réponse élégante, qui aurait pu être la bonne .
Mais ça ne marche pas
En effet, ce qui est mémorisé par ta méthode , c'est l'adresse des cellules, et non pas leur contenu au moment où je fais la copie
Donc si entre l'appel des 2 macros, je fais des modifications qui touchent la zone copiée ( insérer des lignes, supprimer ) , ce que je retrouve lors du collage , c'est le résultats des dernières modifs.et non pas les données initialement copiées.
On est toujours loin du fonctionnemment standard du copier-coller dans les autres applis Word, Notepad ...
cordialement
 
Re : comment empecher Excel de vider le presse-papier ?

Bonsoir le fil,

une piste du côté de la barre d'outils "presse papier" (sur une idée de Pierrejean 🙂)

Je doute un peu de la fiabilité, mais à tester. Tu peux afficher la barre d'outils "pressepapier" pour visualiser ce qui s'y passe.

Code:
Sub macroCopie()
    Range("A1:B3").Copy
End Sub
[B]
' tes interventions entre les 2 macro...[/B]

Sub MacroColle() 'à partir de la cellule active
    Application.CommandBars("Clipboard").Controls(5).Execute 'colle le contenu du presse papier
    Application.CommandBars("Clipboard").Controls(4).Execute 'vide le presse papier
End Sub

A suivre...
 
Re : comment empecher Excel de vider le presse-papier ?

Bonsoir tout le monde,
voici ma proposition (basée sur la dernière sugestion de sousou):

Code:
Public liste(), a, b
Sub copie()
l = Selection.Rows.Count
c = Selection.Columns.Count
ReDim liste(1 To l, 1 To c)
a = 0
b = 0
For j = Selection.Column To Selection.Column + c - 1
    b = b + 1
    a = 0
    For i = Selection.Row To Selection.Row + l - 1
        a = a + 1
        liste(a, b) = Cells(i, j)
    Next
Next

End Sub
Sub colle()
For i = 0 To a - 1
    For j = 0 To b - 1
        ActiveCell.Offset(i, j) = liste(i + 1, j + 1)
    Next
Next
End Sub

A mettre dans un module.
Il faut au préalable bien entendu sélectionner les cellules à copier😛

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour