Office: (Office 2013) VBA: Zellen leeren, wenn Formel-Ergebnis=""

Helfe beim Thema VBA: Zellen leeren, wenn Formel-Ergebnis="" in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, am Montag wurde mir hier dabei geholfen über VBA mehrere Zellen zu leeren, wenn eine andere Zelle über Dropdownauswahl oder einfaches... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Zhäsuar, 19. Oktober 2020.

  1. VBA: Zellen leeren, wenn Formel-Ergebnis=""


    Hallo zusammen,

    am Montag wurde mir hier dabei geholfen über VBA mehrere Zellen zu leeren,
    wenn eine andere Zelle über Dropdownauswahl oder einfaches Löschen leer war.

    Hier der Code:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range
    If Not Intersect(Target, Range("C10:C13")) Is Nothing Then
    If Target.Cells(1) = "" Then
    For Each rngZelle In Intersect(Target, Range("C10:C13"))
    Union(Range(Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7)), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10)).ClearContents
    Next rngZelle
    End If
    End If
    End Sub


    Das hat alles super geklappt, aber jetzt müsste die Bezugszelle des VBA auch mit einer WENN-Formel als leer angesehen werden.
    Wenn als Ergbenis "" herauskommt, erkennt VBA die Zelle nicht als leer an.

    Kennt da jemand einen Weg oder Trick?

    Über eure Hilfe freue ich mich sehr! *Smilie

    :)
     
    Zhäsuar, 19. Oktober 2020
    #1
  2. Change reagirt nur auf Eingbae,
    Formel ist
    Private Sub Worksheet_Calculate()
    was aufwendig.
    Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue. Ich baue keine Datei nach.

    Sollte die Datei verlinkt werden?

    Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.

    Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

    Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

    Bilder statt Datei | Excel ist sexy!

    Es sollte ein aussagekräftiger Name sein.

    Das ist nur meine Meinung zu dem Thema.

    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    http://www.ms-office-forum.de/forum/...d.php?t=322895
    ändern.

    Das ist nur meine Meinung zu dem Thema.

    Bitte berücksichtige das Themen die Erledigt sind als Erledigt markiert werden können. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
    Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.





    Meine Homepage Homeseite - Hajo's Excelseiten
     
    Hajo_Zi, 21. Oktober 2020
    #2
  3. Hallo Hajo,

    wenn ich dich richtig verstanden habe, muss dafür anstatt

    Private Sub Worksheet_Change(ByVal Target As Range)

    dann

    Private Sub Worksheet_Calculate()

    stehen?

    Hat diese Änderung dann auch sonstige Auswirkungen auf die VBA-Ausführung, oder läuft der Rest dann wie zuvor?

    Danke für die Hilfe *Smilie
     
    Zhäsuar, 21. Oktober 2020
    #3
  4. VBA: Zellen leeren, wenn Formel-Ergebnis=""

    das habe ich nicht geschrieben. Mein Vorschlag hat kein Target.

    ich bin dann raus, da meine Beiträge nicht komplett gelesen werden.
    Das wird schon seinen Grund haben.
    Ich schreibe nicht für den Papierkorn. Ich bin dann raus.
    Viel Erfolg noch.
     
    Hajo_Zi, 21. Oktober 2020
    #4
  5. Hi,

    bei Formeln darfst du nicht die Zellen mit den Formeln überwachen sondern musst das mit den Ausgangszellen realisieren. Wie sieht denn die Formel aus? Besser noch - lade eine Beispielmappe hoch.
     
    Beverly, 21. Oktober 2020
    #5
  6. Hallo Karin,

    entschuldige die lange Funkstille - es kam einiges in letzter Zeit dazwischen...

    Mein Code sieht so aus (nur leicht abgeändert von deiner Lösung im Thema davor):

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range
    If Not Intersect(Target, Range("C10:C13")) Is Nothing Then
    If Target.Cells(1) = "" Then
    For Each rngZelle In Intersect(Target, Range("C10:C13"))
    Union(Range(Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7)), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10)).ClearContents
    Next rngZelle
    End If
    End If
    End Sub


    Im Prinzip brauche ich nochmal genau dasselbe, bloß dass auch Zellen in einem anderen Arbeitsblatt geleert werden.

    Sprich:
    Im aktuellen Worksheet "Eingabe" wird Zelle C10 gelöscht
    --> in Arbeitsblatt "Laufzeit" löschen sich die Zellen E10 bis L10

    Die Zeilen stimmen zwischen beiden Blättern vom Bezug überein.

    Vielen Dank für deine Hilfe *Smilie
     
    Zhäsuar, 26. Oktober 2020
    #6
  7. Hi,

    und was hat das jetzt mit deiner Ausgangsfrage: "...aber jetzt müsste die Bezugszelle des VBA auch mit einer WENN-Formel als leer angesehen werden...." zu tun?


    Wenn du Zellen in einem anderen Tabellenblatt löschen willst, musst du vor Cells und Range noch den Namen des Tabellenblattes ergänzen.
     
    Beverly, 26. Oktober 2020
    #7
  8. VBA: Zellen leeren, wenn Formel-Ergebnis=""

    Hallo Karin,

    danke für deine rasche Antwort!

    Da wollte ich über Umwege versuchen mir den Bezug vom einen Blatt ins andere zu setzen, ohne VBA zu benutzen. Aber das ist ja bei weitem umständlicher *wink.gif*

    Wie muss der Tabellenname da intigriert sein?
    Ich hab einiges versucht, z.B.:

    Union(worksheets"Laufzeit"(Range(Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7)), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10))).ClearContents

    Union(Laufzeit(Range(Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7)), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10))).ClearContents

    Union("Laufzeit"(Range(Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7)), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10))).ClearContents

    Oder bin ich da an der ganz falschen Stelle?
    Bisher hat es immer Fehler angezeigt.

    Freundliche Grüße
     
    Zhäsuar, 26. Oktober 2020
    #8
  9. Hallo Karin,

    ich bin im Internet auf die richtige Schreibweise gestoßen *Smilie

    Jetzt sieht mein Code so aus:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range
    Dim wks1 As Worksheet, wks2 As Worksheet, Reihen As Long

    Set wks1 = Worksheets("Laufzeit")
    If Not Intersect(Target, Range("C10:C13")) Is Nothing Then
    If Target.Cells(1) = "" Then
    For Each rngZelle In Intersect(Target, Range("C10:C13"))
    Union(Range(Cells(rngZelle.Row, 6), Cells(rngZelle.Row, 7)), Cells(rngZelle.Row, 9), Cells(rngZelle.Row, 10)).ClearContents
    Next rngZelle
    For Each rngZelle In Intersect(Target, Range("C10:C13"))
    Union(wks1.Range(wks1.Cells(rngZelle.Row, 6), wks1.Cells(rngZelle.Row, 7)), wks1.Cells(rngZelle.Row, 9), wks1.Cells(rngZelle.Row, 10)).ClearContents
    Next rngZelle
    End If
    End If
    End Sub


    Alles klappt!

    Nochmal vielen Dank für deine Hilfe und Geduld für einen Anfänger *wink.gif*
     
    Zhäsuar, 26. Oktober 2020
    #9
Thema:

VBA: Zellen leeren, wenn Formel-Ergebnis=""

Die Seite wird geladen...
  1. VBA: Zellen leeren, wenn Formel-Ergebnis="" - Similar Threads - VBA Zellen leeren

  2. VBA - Zellen benutzerabhängig leeren/füllen

    in Microsoft Excel Hilfe
    VBA - Zellen benutzerabhängig leeren/füllen: Hallo zusammen, ich möchte gerne via Makro für die Urlaubsplanung für Benutzer1-5 die Einsicht auf alles ermöglichen, während die anderen Benutzer in der Zeile 382-389 nur ihren eigenen...
  3. excel vba erste leere zelle finden

    in Microsoft Excel Hilfe
    excel vba erste leere zelle finden: Hallo Excelfans... Ich möchte gerne die erste leere Zelle einer Spalte finden. Dazu benutze ich folgenden Code: Worksheets("Tabelle1").Range("A10").End(xlUp).Row+1 dieser funktioniert aber...
  4. Ausdruck einer Seite wenn in Tabelle eine Zelle nicht leer oder größer null ist

    in Microsoft Excel Hilfe
    Ausdruck einer Seite wenn in Tabelle eine Zelle nicht leer oder größer null ist: Hallo zusammen, mein Problem ist folgendes: Ich habe eine Excel-Datei mit zwei Tabellenblättern. Im ersten Tabellenblatt "Grunddaten" ist die Tabelle mit der Spalte D die ausgewertet...
  5. VBA: Wenn Zelle nicht leer dann Formel

    in Microsoft Excel Hilfe
    VBA: Wenn Zelle nicht leer dann Formel: Hallo Ihr Lieben, Ich habe folgendes Problem: Wenn in Spalte B ein Text steht, möchte ich in Spalte AI eine Formel eintragen. Ich hab schon mal ein Makro entworfen: Sub Makro() Dim Zelle As...
  6. VBA leere Zeilen und leere Zellen erkennen und ausgeben

    in Microsoft Excel Hilfe
    VBA leere Zeilen und leere Zellen erkennen und ausgeben: Hallo Leute, mein Problem ist ich möchte aus einer beliebigen Excel-Datei das genaue Sheet auswählen und das Sheet auf einen Bereich (Bsp C20:F36) auf leeren Inhalt prüfen. Ich kann dadurch jede...
  7. VBA CombiBox Ausgabewert in nächste leere Zelle schreiben

    in Microsoft Excel Hilfe
    VBA CombiBox Ausgabewert in nächste leere Zelle schreiben: Hallo Liebe Mitglieder, hab eine frage, die sicher schon irgendwo gelöst wurde, aber finden??? :confused: So, ich möchte diesen Code sö ändern dass er erst ab Zeile L6 anfängt, den die...
  8. Suche Hilfe bei einem VBA Code --> Prüfen ob Zelle Leer, dann Makro ausführen

    in Microsoft Excel Hilfe
    Suche Hilfe bei einem VBA Code --> Prüfen ob Zelle Leer, dann Makro ausführen: Hallo, suche mal wieder Hilfe bei einem Code. Und zwar möchte ich eine Abfrage einbauen, ob eine Zelle Leer ist, und wenn sie leer ist dann mit dem code weitermachen, wenn sie nicht leer ist,...