Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Zeilen löschen wenn dann

VBA: Zeilen löschen wenn dann
21.10.2017 10:21:34
Bernd
Hallo zusammen,
bräuchte mal Hilfe bei folgendem Problem.
Lösche alle Zeilen in den Tabelle20 bis Tabelle159, wenn in einer Zeile mehr als einmal der Wert "0,00" vorkommt. Es betrifft die Spalten C - H.
Danke im Voraus!
Gruß aus Bremen
Bernd
Office 2016 Pro 32bit

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zeilen löschen wenn dann
21.10.2017 10:39:36
Hajo_Zi
Hallo Bernd,
es wurde keine Datei verlinkt, da Du die Lösung selber an Deine Bedingungen anpassen wolltest. Viel Erfolg.
Option Explicit
Sub Löschen()
Dim WsTabelle As Worksheet
Dim LoLetzte As Long
Dim LoI As Long
For Each WsTabelle In Worksheets
If IsNumeric(Mid(WsTabelle.Name, 8)) And Mid(WsTabelle.Name, 8) >= 20 _
And Mid(WsTabelle.Name, 8)  1 Then
Rows(LoI).Delete
End If
Next LoI
End If
Next WsTabelle
End Sub


Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 11:58:29
Gerd
Hallo Hajo,
da fehlt etwas.
If WorksheetFunction.CountIf(WsTabelle.Range(WsTabelle.Cells(LoI, 3), WsTabelle.Cells(LoI, _
8)), 0) > 1 Then
Gruß Gerd
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 12:08:17
Hajo_Zi
ja stimmt, man sollte mit With arbeiten.
Option Explicit
Sub Löschen()
Dim WsTabelle As Worksheet
Dim LoLetzte As Long
Dim LoI As Long
For Each WsTabelle In Worksheets
With WsTabelle
If IsNumeric(Mid(.Name, 8)) And Mid(.Name, 8) >= 20 _
And Mid(.Name, 8)  1  _
Then
Rows(LoI).Delete
End If
Next LoI
End If
End With
Next WsTabelle
End Sub
Gruß Hajo
Anzeige
AW: Punkt vor "Rows" fehlt noch! o.T.
21.10.2017 12:24:40
Gerd
Gruß Gerd
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 12:47:56
Bernd
Hallo Hajo,
Danke für deine Bemühungen! Leider funktioniert der Code nicht, aber es liegt wie ich glaube nicht an deinem Code, sondern ich vermute, dass die Zelle nicht nummerisch sind sondern Text. Siehe Hardcopy.
Userbild
Daher die Bitte an dich, könntest du den Code ändern?
Gruß aus Bremen
Bernd
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 12:51:47
Hajo_Zi
Hallo Bernd,
Du bist hier in einem Excel-Forum. Excel kann wenig mit Bilder anfangen.
Lese meinen ersten Beitrag genau. Du wolltest es selber an Deine Bedingungen anpassen, also mache es auch.
Gruß Hajo
Anzeige
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 13:03:57
Bernd
Danke für die überhebliche Antwort, ich hätte wissen müssen, dass Sie Herr Ziplies keinen Respekt vor anderen Menschen haben.
Gruß
Bernd Kiehl
PS. Ab sofort werde ich keine Beiträge mehr von Herrn Hajo Ziplies lesen!!!!!!!!!!
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 13:06:41
Nepumuk
Hallo Bernd,
teste mal:
Option Explicit

Public Sub Löschen()
    Dim objWorksheet As Worksheet
    Dim lngRow As Long
    For Each objWorksheet In Worksheets
        With objWorksheet
            If IsNumeric(Mid$(.Name, 8)) And Val(Mid$(.Name, 8)) >= 20 _
                And Val(Mid$(.Name, 8)) <= 159 Then
                For lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
                    If WorksheetFunction.Sum(.Range(.Cells(lngRow, 3), _
                        .Cells(lngRow, 8)), 0) = 0 Then .Rows(lngRow).Delete
                Next
            End If
        End With
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA: 1004 wg. Flüchtigkeitsfehler
21.10.2017 13:17:07
Nepumuk
Hallo Bernd,
meine Antwort funktioniert nur in Zeilen in denen alle Werte 0,00 sind. Ich hab deine erste Frage nicht gelesen.
Gruß
Nepumuk
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 13:06:57
Gerd
Hallo Bernd, probier mal:
Sub Loeschen()
Dim WsTabelle As Worksheet
Dim LoLetzte As Long
Dim LoI As Long
For Each WsTabelle In Worksheets
With WsTabelle
If IsNumeric(Mid(.Name, 8)) And Mid(.Name, 8) >= 20 _
And Mid(.Name, 8)  1 Then
.Rows(LoI).Delete
End If
Next LoI
End If
End With
Next WsTabelle
End Sub

Gruß Gerd
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 13:15:03
Nepumuk
Hallo Gerd,
da gehört ein Punkt rein:
)), "0.00") > 1
VBA spricht noch immer englisch. :-)
Gruß
Nepumuk
Anzeige
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 13:22:21
Werner
Hallo Nepumuk,
mit dem Punkt geht es nicht, mit Komma geht es -ist doch Text.
Gruß Werner
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 13:24:57
Nepumuk
Hallo Werner,
danke, man sollte doch alles lesen und nicht nur ein Bild anschauen.
Gruß
Nepumuk
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 13:35:13
Bernd
An Gerd und Nepumuk,
Danke für Eure Bemühungen. Ich habe selbst ein wenig experimentiert und das ist dabei heraus gekommen.
Sub bedingte_Zeilenloeschung()
Dim T As Integer
Dim lz As Long
Dim wks As Worksheet
Dim i As Byte
Application.ScreenUpdating = False
For i = 20 To Worksheets.Count
Worksheets(i).Activate
lz = Cells(Rows.Count, 1).End(xlUp).Rows.Row        'Ermittlung der letzten Zeile in  _
Spalte C
For T = lz To 2 Step -1                             'Durchlauf aller Zeilen und Zählung rü _
ckwärts bis Zeile 2
If Cells(T, 3).Value = "0,00" Then              'Abfragen, ob in der ? Spalte "was  _
auch immmer" steht
Rows(T).Delete Shift:=xlUp
End If
Next T
Next i
End Sub
Was ich noch nicht hinbekommen habe ist, nicht nur eine Spalte abzufragen sondern die Spalten C bis H, denn wie im Bild zu sehen. Es müssen auch in der Zeile alle Spalten mit dem Wert nicht Zahl "0,00" vorhanden sein.
Ich hoffe, das mir von euch jemand den fehlenden Code ergänzen kann.
Liebe Grüße aus Bremen
Bernd
Anzeige
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 14:22:24
Nepumuk
Hallo Bernd,
hast du den Code von Gerd getestet? Der sollte es doch tun.
Gruß
Nepumuk
AW: Zeilen mit 2 x "0,00" löschen
21.10.2017 14:42:29
Bernd
Hallo Nepumuk,
Ja, habe ich und auch beantwortet. Schönes Wochenende ;-)
Lieben Gruß aus Bremen
Bernd
AW: @Nepumuk
21.10.2017 13:26:28
Gerd
Hallo Nepumuk,
ich wollte nicht zu Ende testen.
Hier soll ein Text "0,00" gelöscht werden, ein Wert 0 offenbar nicht.
Gruß Gerd
Frage
21.10.2017 13:24:24
Werner
Hallo Hajo,
hast du eigentlich Geschwister? Ich vermute ja, weil ein Mensch alleine kann kaum so arrogant sein.
Gruß Werner
AW: Frage
21.10.2017 13:27:13
Bernd
Hallo Werner,
Danke für deinen Beistand, aber ich habe festgestellt, er ist es nicht wert über ihn zu reden!!!!!!!!
Lieben Gruß aus Bremen
Bernd
Anzeige
AW: VBA: Zeilen löschen wenn dann
21.10.2017 14:04:35
Gerd
Hallo Bernd!
Sub bedingte_Zeilenloeschung()
Dim T As Long
Dim wks As Worksheet
Dim i As Integer
Application.ScreenUpdating = False
For i = 20 To Worksheets.Count
With Worksheets(i)
'Ermittlung der letzten Zeile in Spalte C
'Durchlauf aller Zeilen und Zählung rückwärts bis Zeile 2
For T = .Cells(.Rows.Count, 3).End(xlUp).Row To 2 Step -1
'Abfragen, ob in den Spalten C:H der Text "0,00" mind. 2 x steht
If WorksheetFunction.CountIf(.Cells(T, 3).Resize(1, 6), "0,00") > 1 Then
.Rows(T).Delete Shift:=xlUp
End If
Next T
End With
Next i
End Sub

Gruß Gerd
Anzeige
AW: VBA: Zeilen löschen wenn dann
21.10.2017 14:18:47
Bernd
Hallo Gerd,
Passt schon, Danke für deine Bemühungen, du hast einen "gut" bei mir.
Liebe Grüße aus Bremen
Bernd

383 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige