Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dynamische Zellen Range Löschen anhand Spaltenwert

Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 09:30:39
Trevor_M
Mein Ziel ist es mit VBA in einer Tabelle bestimmte Ranges einer Spalte zu leeren wenn in Zeile 57 das Wort "Nein" steht.
Für jede Spalte sollte das Makro überprüfen ob in der 57 Zeile das Wort "Nein" steht und dann in der entsprechenden Spalte den Wert in den Zeilen (9-17,19-21,23-25,27-33,48-49) löschen.
Ein Beispiel wie ich dieses Problem lösen kann würde mir sehr helfen.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 10:05:38
UweD
Hallo
so?
Sub Nein()
    Dim RNG As Range, Zeile As Double, Finde As String
    
    Finde = "Nein"
    Zeile = 57
    Set RNG = Range("9:17,19:21,23:25,27:33,48:49")
    
    If WorksheetFunction.CountIf(Rows(Zeile), Finde) > 0 Then
        RNG.ClearContents
    End If
End Sub

LG UweD
Anzeige
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 10:21:46
Trevor_M
Hallo Uwe,
Danke dir für deine schnelle Antwort.
Der Code löst das Problem nicht ganz da der Code die gesamte Zeile löscht wenn er das Wort "Nein" findet.
Ich bräuchte das Makro bitte so, dass nur die Zellen (9-17,19-21,23-25,27-33,48-49) geleert werden in den Spalten in denen er das Wort Nein in Zeile 57 findet.
Vielen Dank für deine Hilfe!
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 11:01:32
UweD
Hallo nochmal
dann per Schleife
Sub Nein()
    Dim RNG As Range, Zeile As Double, Finde As String
    Dim Z1 As Integer, LC As Integer, i As Integer
    
    Finde = "Nein"
    Zeile = 57
    Set RNG = Range("9:17,19:21,23:25,27:33,48:49")
    LC = Cells(Zeile, Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile 
    
    For i = 1 To LC
        If Cells(Zeile, i) = Finde Then
            Intersect(RNG, Columns(i)).ClearContents
        End If
    Next
End Sub
LG UweD
Anzeige
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 12:19:40
Trevor_M
Vielen Dank für die schnelle und kluge Hilfe! Funktioniert einwandfrei!
LG Trevor
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 10:12:04
Matthias
Hallo
Ein Beispiel wie Du dieses Problem lösen kannst:
Als Ansatz gedacht!
https://www.herber.de/bbs/user/125571.xlsm
Gruß Matthias
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 12:34:47
Trevor_M
Vielen lieben Dank für die kluge Lösung!
Funktioniert einwandfrei!
LG Trevor
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 10:17:04
Werner
Hallo,
hier meine Version auch noch:
Public Sub Löschen()
Dim loSpalte As Long, i As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1") 'anpassen
loSpalte = .Cells(57, .Columns.Count).End(xlToLeft).Column
For i = loSpalte To 1 Step -1
If .Cells(57, i) = "Nein" Then
Union(.Range(.Cells(9, i), .Cells(17, i)), .Range(.Cells(19, i), _
.Cells(21, i)), .Range(.Cells(23, i), .Cells(25, i)), _
.Range(.Cells(27, i), .Cells(33, i)), _
.Range(.Cells(38, i), .Cells(49, i))).Delete shift:=xlUp
End If
Next i
End With
End Sub
Gruß Werner
Anzeige
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 11:20:34
Trevor_M
Hallo Werner,
Vielen Dank für deine Hilfe.
Ich habe noch".Delete shift:=xlUp" durch ".ClearContents" ersetzt und dann macht es genau das was es soll. Hätte ohne deine Hilfe das Problem nicht lösen können.
Eine zusätzlich Frage: Es müsste doch möglich sein bei "With Worksheets("Tabelle1") mehrere Tabellen einzufügen. In etwa so: "With Worksheets("Januar","Februar","März","April")
In dem Falle gibt ehr mir folgende Fehlermeldung: "Fehler beim Kompilieren:
Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft!"
Weißt du wo mein Fehler liegt?
LG Trevor
Anzeige
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 11:41:19
Werner
Hallo,
so in etwa geht es nicht, aber so:
Option Explicit
Public Sub löschen()
Dim ws As Worksheet, loSpalte As Long, i As Long
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Tabelle1", "Tabelle2", "Tabelle3"
With ws
loSpalte = .Cells(57, .Columns.Count).End(xlToLeft).Column
For i = loSpalte To 1 Step -1
If .Cells(57, i) = "Nein" Then
Union(.Range(.Cells(9, i), .Cells(17, i)), .Range(.Cells(19, i), _
.Cells(21, i)), .Range(.Cells(23, i), .Cells(25, i)), _
.Range(.Cells(27, i), .Cells(33, i)), _
.Range(.Cells(38, i), .Cells(49, i))).ClearContents
End If
Next i
End With
Case Else
End Select
Next ws
End Sub
Gruß Werner
Anzeige
AW: Dynamische Zellen Range Löschen anhand Spaltenwert
22.11.2018 12:24:55
Trevor_M
Funktioniert einwandfrei! Vielen lieben Dank für die schnelle und professionelle Hilfe!
Zeigt mir wieder wie viel ich noch dazulernen muss.
LG Trevor
Gerne u.Danke für die Rückmeldung. o.w.T.
22.11.2018 13:09:07
Werner

166 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige