Presse papier se vide quand bascule sur autre tableur

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 !

guigui971

XLDnaute Junior
Bonjour,

Pour des raisons annexes (https://www.excel-downloads.com/threads/probleme-incomprehensible-sur-evenement-de-classeur.211528/), j'exécute le code ci-après lorsque je ferme mon classeur (Sub Workbook_BeforeClose(Cancel As Boolean)) ou que, sans le fermer, je passe sur un autre ouvert en parallèle (Sub Workbook_Deactivate()) :

Application.ScreenUpdating = False
ActiveWindow.View = xlNormalView
ActiveWindow.DisplayHeadings = True *
ActiveWindow.DisplayGridlines = True *
Application.DisplayStatusBar = True *
ActiveWindow.DisplayHorizontalScrollBar = True *
ActiveWindow.DisplayVerticalScrollBar = True *
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True *
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" *
Application.ScreenUpdating = True

Malheureusement, si je veux copier des données de mon tableur d'origine (celui où j'ai ce code) vers l'autre tableur, les lignes de code sur lesquelles j'ai mis * semblent vider le presse papier !
Donc impossible de coller mes données dans l'autre tableur...

Voyez vous une solution pour contourner ce problème? (à part supprimer les lignes avec *...🙄)

Merci
 
Re : Presse papier se vide quand bascule sur autre tableur

Bonjour guigui971

Ton problème est normal, Excel vide le presse papier lors de certaines actions

Pour essayer de le résoudre, peut-être faut-il passer par la gestion du "Clipboard"
Voici un code
VB:
Sub Test()
  Dim dClipBoard As MsForms.DataObject
  Dim sClipBoard As String
  ' Mémoriser le presse papier dans une variable objet
  Set dClipBoard = New MsForms.DataObject
  dClipBoard.GetFromClipboard
  sClipBoard = dClipBoard.GetText
  ' Ton code ici
  Application.ScreenUpdating = False
  ActiveWindow.View = xlNormalView
  ActiveWindow.DisplayHeadings = True  '*
  ActiveWindow.DisplayGridlines = True  '*
  Application.DisplayStatusBar = True  '*
  ActiveWindow.DisplayHorizontalScrollBar = True  '*
  ActiveWindow.DisplayVerticalScrollBar = True  '*
  Application.DisplayFullScreen = False
  Application.DisplayFormulaBar = True  '*
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"  '*
  Application.ScreenUpdating = True
  ' Restaurer le presse papier à partir du contenu de la variable objet
  Set dClipBoard = New MsForms.DataObject
  dClipBoard.SetText sClipBoard
  dClipBoard.PutInClipboard
  ' Test
  Range("A1").Select
  ActiveSheet.Paste
End Sub

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
Retour