Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Speichern ohne Zwischenablage

Forumthread: Speichern ohne Zwischenablage

Speichern ohne Zwischenablage
10.07.2015 11:13:47
Jan
Hallo zusammen,
ich habe schon einen Code bekommen ( der wunderbat funktioniert) welcher erweitert werden müsste.
Beim Beenden der Userform wird gefragt ob der Inhalt der Zwischenablage behalten werden soll oder nicht.
Die Userform soll geschlossen werden ohne speichern und die Zwischenablage kann auch weg. Kann man die Zwischenablage auch mit einem vba code umgehen?
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************
Option Explicit
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
ThisWorkbook.Saved = True
Application.Quit
Else
Application.Visible = True
End If
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern ohne Zwischenablage
10.07.2015 13:15:17
Patrick
Hallo,
mit
Application.DisplayAlerts = False

schaltest du alle Meldungen aus, d.h. auch deine Frage nach dem Speichern der Zwischenablagen, aber auch eventuelle Fehlermeldungen.
Soweit ich weiß, leert
Application.CutCopyMode = False 

den Zwischenspeicher.
Einfach mal ausprobieren.
Gruß!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Speichern ohne Zwischenablage in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge eine Userform hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > UserForm.
  3. Füge den folgenden VBA-Code in das Codefenster der UserForm ein:

    Option Explicit
    
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        If CloseMode = 0 Then
            ThisWorkbook.Saved = True
            Application.Quit
        Else
            Application.Visible = True
        End If
    End Sub
  4. Deaktiviere die Anzeige von Meldungen: Um die Meldung über das Speichern der Zwischenablage zu unterdrücken, füge diesen Code hinzu:
    Application.DisplayAlerts = False
  5. Leere die Zwischenablage: Um sicherzustellen, dass die Zwischenablage geleert wird, verwende:
    Application.CutCopyMode = False
  6. Teste die Userform: Starte die Userform und überprüfe, ob beim Schließen keine Meldungen mehr erscheinen und die Zwischenablage nicht gespeichert wird.

Häufige Fehler und Lösungen

  • Fehler: Meldung erscheint beim Schließen der Userform.

    • Lösung: Stelle sicher, dass Application.DisplayAlerts = False im Code vorhanden ist, um alle Meldungen zu unterdrücken.
  • Fehler: Zwischenablage wird nicht geleert.

    • Lösung: Überprüfe, ob Application.CutCopyMode = False korrekt implementiert ist. Dieser Befehl sollte vor dem Schließen der Userform stehen.

Alternative Methoden

Eine alternative Methode, die Zwischenablage zu umgehen, besteht darin, die Userform so zu gestalten, dass sie keine Daten kopiert oder schneidet. Stattdessen kannst du die Daten direkt in Zellen eingeben, ohne die Zwischenablage zu verwenden. Dies kann helfen, Probleme mit der Zwischenablage zu vermeiden.


Praktische Beispiele

Ein einfaches Beispiel wäre eine Userform, die Benutzereingaben in eine Excel-Tabelle überträgt. Hier ist ein Beispiel-VBA-Code, der Daten aus Textfeldern in die Tabelle überträgt:

Private Sub btnSubmit_Click()
    Dim nextRow As Long
    nextRow = Sheets("Datenblatt").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Sheets("Datenblatt").Cells(nextRow, 1).Value = Me.txtInput.Value
    Me.Hide
End Sub

In diesem Beispiel wird der Inhalt eines Textfeldes txtInput in die nächste freie Zeile der Tabelle "Datenblatt" geschrieben, ohne die Zwischenablage zu verwenden.


Tipps für Profis

  • Verwende ThisWorkbook.Saved = True: Dies stellt sicher, dass Excel denkt, dass das Workbook bereits gespeichert ist, und verhindert, dass die Speichermeldung erscheint.
  • Nutze Fehlerbehandlung: Integriere eine Fehlerbehandlung in deinen Code, um unerwartete Probleme zu vermeiden. Dies kann durch On Error Resume Next am Anfang deines Codes erfolgen.
  • Testen in verschiedenen Excel-Versionen: Achte darauf, dass dein Code in verschiedenen Excel-Versionen getestet wird, insbesondere zwischen Excel 2010 und neueren Versionen, um Kompatibilitätsprobleme zu vermeiden.

FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass die Zwischenablage wirklich geleert wird?
Antwort: Verwende den Befehl Application.CutCopyMode = False, bevor du die Userform schließt.

2. Frage
Kann ich die Userform so gestalten, dass sie nicht mehr auf die Zwischenablage zugreift?
Antwort: Ja, indem du die Eingaben direkt in die Zellen überträgst, ohne die Zwischenablage zu verwenden, kannst du die Problematik umgehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige