Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

Zwischenablage per VBA leeren


Wenn Sie größere Datenmengen über die Zwischenablage in Excel per VBA kopieren, kann dies zu Problemen beim Schließen der Datei führen. Excel gibt beispielsweise die Meldung "Das Bild ist zu groß und wird abgeschnitten" aus. Häufig friert Excel dabei ein und kann nur noch über den Task-Manger beendet werden.

Um dieses Problem zu vermeiden sollten Sie vor dem Beenden der Datei die Zwischenablage (Clipboard) leeren. 
Dazu können Sie folgenden VBA-Code in einem Code-Modul verwenden:

Private Declare Function OpenClipboard& Lib "user32" (ByVal hwnd As Long)
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard& Lib "user32" ()

Public Sub ClearClipboard() 
OpenClipboard 0&
EmptyClipboard
CloseClipboard
End Sub

Aufgerufen kann der Code beispielsweise vor dem Beenden der Datei aufgerufen werden. Tragen Sie dazu folgenden Code in das Modul "DieseArbeitsmappe" ein.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ClearClipboard
End Sub

Damit wird die Zwischenablage geleert und die Fehlermeldung wird beim Beenden nicht mehr angezeigt.
   

Relevante Artikel

  • Konvertieren eines mehrzeiligen Daten-Blocks zu einem konstistenten Datensatz

    In diesem Beispiel zeigen wir Ihnen, wie sich ein nicht konsistenter Datenblock in einen kosistenten Datensatz konvertieren lässt. Die folgende Abbildung zeigt die Ausgangssituation, also den...

  • Liniertes Computerpapier erzeugen

    101082 Mit dem nachfolgenden Code ist es möglich, jede zweite Zeile im markierten Bereich farbig zu hinterlegen. Es wird eine Art liniertes Computerpapier erzeugt werden, wie es in den Anfängen des...

  • Unikate in eigene Spalte extrahieren

    101072 Mit diesem Makro werden alle nicht doppelten Daten aus Spalte A in Spalte B geschrieben.Jeder Wert wird also maximal einmal in Spalte B geschrieben, egal, wie oft er in Spalte A vorhanden...

  • Cells- zur Range-Schreibweise umwandeln

    101005   Mit dieser Funktion können Sie die die Cells-Schreibweise, z. B. Cells(1, 2) in die Range-Schreibweise z. B. Range("B1") umwandeln.   Sub umwandeln() Adresse = Cells2Range(1, 1) MsgBox Adresse End...

  • Anzahl der leeren Zellen innerhalb eines Bereiches ermitteln

      101055     Mit dem Makro leere_zellen_ermitteln wird die Anzahl aller leeren Zellen im selektierten Bereich ermittelt und mittels einer MsgBox angezeigt. Sub leere_zellen_ermitteln()leer = 0For Each Zelle In SelectionIf Zelle.Value = "" Thenleer = leer + 1End IfNext ZelleMsgBox "Es gibt " & leer & " leere Zellen im selektieren Bereich."End Sub Über eine For-Nexe-Schleife wird...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013