Microsoft Excel

Herbers Excel/VBA-Archiv

VBA: Zellinhalte entfernen


Betrifft: VBA: Zellinhalte entfernen von: Fritz W
Geschrieben am: 24.10.2017 12:30:59

Hallo VBA-Kundige,

ich bitte euch um Hilfe bei der Umsetzung folgenden Vorhabens.
Ich möchte aus Tabelle1 ein Makro aufrufen, das folgendes leistet:

Es soll prüfen, ob die in Zelle DK5 der Tabelle1 enthaltene Zahl sich im Zellbereich A8:A127 der Tabelle2 befindet. Falls dies zutrifft, sollen die Zellen B:K und N der aus der gleichen Zeile der Tabelle2 "geleert" werden (Zellinhalt "").

Beispiel:
Die Zahl aus Tabelle1!DK5 steht in Tabelle2!A22:
In diesem Fall sollten der Zellbereich Tabelle2!B22:K22;N22 mit dem Wert "" versehen werden.

Für Eure Unterstützung besten Dank im Voraus.

mfg
Fritz

  

Betrifft: Zum Beispiel von: Michael (migre)
Geschrieben am: 24.10.2017 12:50:52

Hallo Fritz,

...so: https://www.herber.de/bbs/user/117189.xlsm
Infos in der Datei. Nur der Code:

Public OldVal

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Wb As Workbook: Set Wb = ThisWorkbook
    Dim Ws As Worksheet: Set Ws = Wb.Worksheets("Tabelle2")
    Dim r As Range, c, i&
    With Target
        If .Cells.Count = 1 And .Address(0, 0) = "DK5" And _
            .Value <> OldVal Then
                Set r = Ws.Range("A8:A127")
                c = Application.Match(.Value, r, 0)
                If Not IsError(c) Then
                    i = c + r.Cells(1).Row - 1
                    With Ws
                        .Range(.Cells(i, "B"), .Cells(i, "K")) = ""
                        .Cells(i, "N") = ""
                    End With
                End If
        End If
    End With
    Set Wb = Nothing: Set Ws = Nothing: Set r = Nothing
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Target
        If .Address(0, 0) = "DK5" And .Cells.Count = 1 Then
            OldVal = .Value
        End If
    End With
End Sub
LG
Michael


  

Betrifft: AW: Zum Beispiel von: Fritz W
Geschrieben am: 24.10.2017 13:08:38

Hallo Michael,

ganz lieben Dank für Deine Hilfe.
Das Makro reagiert aber bei jeder Veränderung des Zellwertes in DK5, aber das sollte nicht der Fall sein.
Ich möchte, das nur bei bestimmten Fällen ausführen.
Könnte man das entsprechend ändern?

Viele Grüße
Fritz


  

Betrifft: AW: Zum Beispiel von: Michael (migre)
Geschrieben am: 24.10.2017 13:40:39

Ich möchte, das nur bei bestimmten Fällen ausführen.
Die da wären?

LG
Michael


  

Betrifft: AW: Zum Beispiel von: Fritz W
Geschrieben am: 24.10.2017 13:58:28

Hallo Michael,

wenn ich einen Datensatz in Tabelle1 mit der in DK5 enthaltenen Nummer lösche. In Tabelle2 sind zu diesem Datensatz ergänzende Daten enthalten, die über ein Makro eingefügt wurden, somit besteht halt keine Verknüpfung. Daher würde ich gerne immer wenn ich einen Datensatz in Tabelle1 entferne, die diesem Datensatz zugehörenden Daten auch in Tabelle2 entfernen.

Gruß
Fritz


  

Betrifft: Das ist aber etwas Anderes... von: Michael (migre)
Geschrieben am: 24.10.2017 14:01:33

Fritz,

...als Du geschrieben hast. Es geht also in Tabelle1 NICHT nur um DK5, sondern um die gesamte Spalte DK, nehme ich an.

würde ich gerne immer wenn ich einen Datensatz in Tabelle1 entferne
Wie machst Du das?

Aber bevor das wieder so ein Endlos-Faden wird: Lade eine Bsp-Datei hoch.

LG
Michael


  

Betrifft: AW: Das ist aber etwas Anderes... von: Fritz W
Geschrieben am: 24.10.2017 14:14:54

Hallo Michael,

ich lösche per Makro Daten aus Tabelle1, die zu der in DK5 angezeigten DatensatzNr. gehören.
Die diesen Datensatz jeweils ergänzenden Daten sind in den genannten Zellen im Tabellenblatt Tabelle2.

Gruß
Fritz


  

Betrifft: Dann ist Dein Lösch-Makro von Interesse, owT von: Michael (migre)
Geschrieben am: 24.10.2017 14:19:21




  

Betrifft: AW: Dann ist Dein Lösch-Makro von Interesse, owT von: Fritz W
Geschrieben am: 24.10.2017 14:27:45

Hallo Michael,

muss dringend weg, melde mich heute abend noch einmal.

Gruß
Fritz


  

Betrifft: AW: Dann ist Dein Lösch-Makro von Interesse, owT von: Fritz W
Geschrieben am: 24.10.2017 18:56:38

Hallo Michael,

wie angekündigt melde ich mich noch einmal.
Ich hab (erstaunlicherweise) das jetzt doch selbst hingekriegt.
Habe das Makro, mit dem die Daten in die Zellen eingefügt werden, dahingehend angepasst, dass nun in die Zellen "" eingefügt wird. Das Makro dann aus dem Makro Loeschen aufgerufen und es funktioniert.
Da hätte ich eigentlich früher draufkommen können.

Möchte mich aber noch einmal bei Dir ganz herzlich für Deine Unterstützung bedanken.

mfg
Fritz


  

Betrifft: Alles klar, Danke für die Rückmeldung owT von: Michael (migre)
Geschrieben am: 25.10.2017 09:46:55




Beiträge aus den Excel-Beispielen zum Thema "VBA: Zellinhalte entfernen"