Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If ActiveCell.Value <> "" Then

Forumthread: If ActiveCell.Value <> "" Then

If ActiveCell.Value <> "" Then
serge
Hallo Leute
ich möchte dass mein Makro erkennt das in den angepeilten Zellen etwas ist und wenn ja abbrecht!
mit:

Sub löschen()
Range("a5:a11").Select
If ActiveCell.Value  "" Then
MsgBox ("Sie müssen den bestehenden Termin zuerstz löschen!")
Else
Selection.ClearContents
Selection.UnMerge
End If
End Sub
erkennt er nur die cctive Zelle dh. A5!
Anbei mein Beispiel: https://www.herber.de/bbs/user/65583.xls
danke Serge
Anzeige
If Selection.Areas.Count <> "" Then
04.11.2009 10:25:08
serge
Mit dem geht es !
oder ist da ein Hacken den ich nicht kenne?
Serge
Zu früh gefreut!
04.11.2009 10:28:55
serge
Es klappt nicht
serge
Zu früh gefreut!
04.11.2009 10:28:55
serge
Es klappt nicht
serge
Anzeige
AW: Zu früh gefreut!
04.11.2009 10:46:22
fcs
Hallo Serge,
ein entsprechendes Makro, das einen Zellebereich auf Inhalte prüft, sieht etwa wie folgt aus.
Dabei kannst du dir das ClearContents sparen, da ja alle Zellen auf leer geprüft werden.
Nur das "UnMerge" ist relevant, um ggf. die Verbindung von Zellen aufzuheben.
Gruß
Franz
Sub löschen()
Dim Zelle As Range, bolLoeschen As Boolean
Range("a5:a11").Select
bolLoeschen = True
For Each Zelle In Selection
If Zelle.Value  "" Then
MsgBox ("Sie müssen den bestehenden Termin zuerstz löschen!")
bolLoeschen = False
Exit For
End If
Next
If bolLoeschen = True Then
Selection.ClearContents
Selection.UnMerge
End If
End Sub

Anzeige
geht auch!
04.11.2009 10:57:21
serge
Hallo
dein Vorschlag klappt auch, aber den von Rudi ist für mein anliegen kürzer!
Danke
Serge
wo ist der Sinn?
04.11.2009 10:38:33
Rudi
Hallo,
man muss erst von Hand löschen, bevor das Makro löschen darf?
Versuchs mit
if application.counta(Range("A5:A11"))>0 then ...
Gruß
Rudi
AW: wo ist der Sinn?
04.11.2009 10:48:38
serge
Hallo Rudi
dein Vorschlag klappt wie ich es brauche!
Danke
Zum Sinn:
mit meinem Makro (viel grösser erstelle ich Termine mit Zellverbindung, sollte der Bereich irgendwie belegt sein, muss er zuerst gelöscht werden!
Es ist ein Hinweis das man den Bereich nicht doppelt belegen kann.
Danke Serge
Anzeige
versteh ich nicht...
04.11.2009 10:55:19
robert
hi,
rudis lösung ist doch immer größer 0
was funktioniert da ?
oder steh ich am schlauch ?
gruß
robert
AW: versteh ich nicht...
04.11.2009 11:04:07
serge
Zum Sinn:
mit meinem Makro (viel grösser) erstelle ich Termine mit Zellverbindung (Zelle werden mit dem Cursor angeklickt dann wird das Makro aufgerufen) , sollte der Bereich irgendwie oder mit irgendetwas belegt sein, muss er zuerst manuel (sprich: mit einem anderen Makro) gelöscht werden!
Es ist ein Hinweis das man den Bereich nicht doppelt belegen kann.
serge
Anzeige
OK, wenn es für dich so passt..owT-Gruß
04.11.2009 11:10:00
robert
Bereich löschen..
04.11.2009 10:39:59
robert
hi,
willst du grundsätzlich den bereich a5:a11 löschen ?
dann Range("A5:A11").Clearcontents
oder willst du was anderes?
gruß
robert
Rudi hat mein Anliegen gelöst! owT.
04.11.2009 10:50:04
serge
Danke
serge
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Überprüfung und Löschung von Zellinhalten in Excel VBA


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob in einem bestimmten Zellbereich Inhalte vorhanden sind, kannst du das folgende VBA-Makro verwenden. Dieses Makro prüft den Bereich A5:A11 und gibt eine Meldung aus, wenn eine Zelle nicht leer ist. Andernfalls werden die Inhalte gelöscht und die Zellen werden entmerged.

Sub löschen()
    Dim Zelle As Range, bolLoeschen As Boolean
    Range("A5:A11").Select
    bolLoeschen = True

    For Each Zelle In Selection
        If Zelle.Value <> "" Then
            MsgBox ("Sie müssen den bestehenden Termin zuerst löschen!")
            bolLoeschen = False
            Exit For
        End If
    Next

    If bolLoeschen = True Then
        Selection.ClearContents
        Selection.UnMerge
    End If
End Sub

Hierbei wird die ActiveCell.Value nicht direkt verwendet, sondern die Schleife prüft jede Zelle im gewählten Bereich. Dies ist eine effektive Methode, um die active cell value vba zu nutzen.


Häufige Fehler und Lösungen

  1. Fehler: Das Makro erkennt nur die aktive Zelle
    Lösung: Stelle sicher, dass du den Code anpasst, um alle Zellen im Bereich zu prüfen, anstatt nur die ActiveCell.

  2. Fehler: Die Meldung erscheint, obwohl die Zellen leer sind
    Lösung: Überprüfe den Vergleich im If-Statement. Achte darauf, dass du <> "" benutzt, um auf nicht leere Zellen zu prüfen.


Alternative Methoden

Eine alternative Methode zur Überprüfung des Zellinhalts ist die Verwendung von Application.CountA. Hier ist ein Beispiel:

Sub prüfen()
    If Application.CountA(Range("A5:A11")) > 0 Then
        MsgBox ("Sie müssen den bestehenden Termin zuerst löschen!")
    Else
        Range("A5:A11").ClearContents
        Range("A5:A11").UnMerge
    End If
End Sub

Diese Methode ist besonders nützlich, wenn du direkt die Anzahl der nicht leeren Zellen ermitteln möchtest und ist eine gute excel vba active cell value Alternative.


Praktische Beispiele

  1. Einfaches Löschen von Zellinhalten:
Sub BereichLöschen()
    Range("A5:A11").ClearContents
End Sub
  1. Kombination von Zellprüfung und Löschen:
Sub ZellinhaltPrüfenUndLöschen()
    If Application.CountA(Range("A5:A11")) > 0 Then
        MsgBox "Es gibt bereits Einträge!"
    Else
        Range("A5:A11").ClearContents
    End If
End Sub

Beide Beispiele zeigen, wie du die activecell.value Logik in VBA effektiv nutzen kannst.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler durch Tippfehler zu vermeiden.
  • Nutze das With-Statement, um den Code effizienter und lesbarer zu gestalten:
With Range("A5:A11")
    If Application.CountA(.Cells) > 0 Then
        MsgBox "Es gibt bereits Einträge!"
    Else
        .ClearContents
    End If
End With

FAQ: Häufige Fragen

1. Frage: Was ist der Unterschied zwischen ActiveCell.Value und Zelle.Value?
Antwort: ActiveCell.Value bezieht sich auf die derzeit ausgewählte Zelle, während Zelle.Value in einer Schleife verwendet wird, um auf jede Zelle im gewählten Bereich zuzugreifen.

2. Frage: Wie kann ich sicherstellen, dass das Makro nur auf bestimmte Zellen reagiert?
Antwort: Du kannst den Zellbereich im Makro definieren, wie in den obigen Beispielen gezeigt, um nur die gewünschten Zellen zu überprüfen und zu bearbeiten.

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