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

Forumthread: Meldung umgehen

Meldung umgehen
23.06.2020 10:30:01
Fred
Hallo Excel-Experten,
ich bekomme nach kopieren/vor einfügen immer die Meldung "Hier gibt es schon Daten. Möchten Sie die ersetzen?"
' Werte statt Formeln
Worksheets("Prüf").Range("p1:by3").Copy
Worksheets("Prüf").Range("p1").PasteSpecial xlPasteValues
Application.CutCopyMode = False

Wie ergänze ich den Code, damit ohne Nachfrage eingefügt wird?
Gruß
Fred
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Meldung umgehen
23.06.2020 10:45:41
Fred
.. die Ergänzung
Application.DisplayAlerts = False

klappt nicht.
AW: Meldung umgehen
23.06.2020 10:48:43
Nepumuk
Hallo Fred,
teste mal:
Worksheets("Prüf").Range("p1:by3").Copy
Application.DisplayAlerts = False
Worksheets("Prüf").Range("p1").PasteSpecial xlPasteValues
With Application
    .DisplayAlerts = True
    .CutCopyMode = False
End With

Gruß
Nepumuk
Anzeige
AW: Meldung umgehen
23.06.2020 10:50:25
Nepumuk
Hallo Fred,
habe deinen Nachtrag zu spät gelesen. Dann habe ich keine Lösung.
Gruß
Nepumuk
AW: Meldung umgehen
23.06.2020 10:52:03
Nepumuk
Hallo Fred,
oder doch,
versuch es so:
Worksheets("Prüf").Range("p1:by3").Value = Worksheets("Prüf").Range("p1:by3").Value
Gruß
Nepumuk
Anzeige
AW: Meldung umgehen
23.06.2020 11:04:44
Fred
Hallo Nepumuk,
dies klappt leider auch nicht bei meinen Daten. Es handelt sich um Zellen, die teilweise mit einander verbunden sind.
Gruß
Fred
Beispieltabelle?
23.06.2020 11:57:59
UweD
Beispieltabelle
23.06.2020 12:22:35
Fred
Hallo UweD,
ich habe hier mal eine Mappe beigefügt, reduziert auf die relevanten Blätter.
https://www.herber.de/bbs/user/138499.xlsb
In Blatt "Prüf" soll letztlich der Bereich "p1:by3" mit Formeln durch dessen Werte ersetzt werden.
Gruß
Fred
Anzeige
AW: Beispieltabelle
23.06.2020 12:36:51
UweD
Hallo
so?

Worksheets("Prüf").Range("p1:by3").Copy
Worksheets("Prüf").Range("p1:by3").PasteSpecial xlPasteValues
LG UweD
AW: Beispieltabelle
23.06.2020 12:47:38
Fred
Hallo UweD,
Klasse! Denbar einfach! Ich allerdings war da überfordert :-)
Habe auch eine alternative entdeckt
' Werte statt Formeln
With ActiveSheet.UsedRange
.Cells = .Cells.Value
End With
Danke für deine Zeit und Unterstützung!!
Gruss
Fred
Anzeige
AW: Beispieltabelle
23.06.2020 12:55:59
UweD
Hi
Danke für die Rückmeldung


In deinem Fall werden aber auch die Formeln ausserhalb von P1:BY3 ersetzt
LG UweD
;
Anzeige
Anzeige

Infobox / Tutorial

Meldung beim Einfügen umgehen


Schritt-für-Schritt-Anleitung

Um die Meldung "Hier gibt es schon Daten. Möchten Sie die ersetzen?" beim Einfügen von Werten in Excel zu umgehen, kannst du den folgenden VBA-Code verwenden:

Sub WerteEinfügenOhneMeldung()
    ' Werte statt Formeln kopieren
    Worksheets("Prüf").Range("p1:by3").Copy
    Application.DisplayAlerts = False ' Deaktiviert die Warnmeldungen
    Worksheets("Prüf").Range("p1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Application.DisplayAlerts = True ' Aktiviert die Warnmeldungen wieder
End Sub

Mit diesem Code wird der Bereich "p1:by3" in das gleiche Blatt kopiert, jedoch ohne eine Bestätigungsanfrage anzuzeigen.


Häufige Fehler und Lösungen

  1. Fehler: Meldung wird weiterhin angezeigt.

    • Lösung: Stelle sicher, dass Application.DisplayAlerts = False vor dem Einfügen der Werte gesetzt wurde und dass es am Ende wieder auf True gesetzt wird.
  2. Fehler: Der Code funktioniert nicht bei verbundenen Zellen.

    • Lösung: Verwende den Code, um die Werte direkt zuzuweisen, anstatt sie zu kopieren:
    Worksheets("Prüf").Range("p1:by3").Value = Worksheets("Prüf").Range("p1:by3").Value

Alternative Methoden

Eine alternative Methode, um Formeln durch Werte zu ersetzen, ohne die Meldung zu erhalten, besteht darin, die UsedRange-Eigenschaft zu verwenden:

With ActiveSheet.UsedRange
    .Cells.Value = .Cells.Value
End With

Dieser Ansatz ersetzt alle Formeln im benutzten Bereich des aktiven Blattes durch deren Werte.


Praktische Beispiele

Angenommen, du arbeitest in Excel 2016 und möchtest die Formeln in einem bestimmten Bereich ersetzen. Hier ist ein Beispiel, wie du es umsetzen kannst:

Sub FormelnErsetzen()
    Worksheets("Prüf").Range("p1:by3").Copy
    Application.DisplayAlerts = False
    Worksheets("Prüf").Range("p1").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    Application.DisplayAlerts = True
End Sub

In diesem Beispiel wird der Bereich "p1:by3" in das gleiche Blatt kopiert und die Formeln werden durch ihre Werte ersetzt.


Tipps für Profis

  • Überprüfe, ob du die richtige Range angibst, um unerwartete Änderungen in anderen Zellen zu vermeiden.
  • Teste deinen Code in einer Kopie deiner Datei, bevor du ihn in deinem Hauptdokument anwendest.
  • Nutze Application.ScreenUpdating = False, um das Flackern des Bildschirms beim Ausführen des Codes zu vermeiden, und setze es am Ende wieder auf True.

FAQ: Häufige Fragen

1. Warum funktioniert Application.DisplayAlerts = False nicht?
Manchmal kann es sein, dass der Code nicht korrekt platziert ist. Stelle sicher, dass dieser Befehl vor dem Einfügen der Werte steht.

2. Wie gehe ich mit verbundenen Zellen um?
Verwende die direkte Zuweisung von Werten anstelle von Kopieren und Einfügen. Das hilft, Probleme mit verbundenen Zellen zu vermeiden.

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