Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
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

Zeile löschen mit Bedienung?

Zeile löschen mit Bedienung?
09.04.2014 10:35:48
Selma
Hallo Leute,
ich möchte im Arbeitsblatt "Mitarbeiter" die aktive Zeile löschen vorher müssen folgende Bedingungen erfüllt sein:
1. Es darf immer nur eine Zeile oder eine Zelle markiert / ausgewählt sein.
2. Das Makro soll erst ab Zeile 4 funktionieren.
3. Der Zellinhalt in Spalte B darf nicht leer sein!
Wenn eine der drei Bedingungen nicht erfüllt ist, soll ein MsgBox angezeigt werden.
Sind alle drei Bedingungen erfüllt, dann soll der Zellinhalt von Spalte B der aktive Zeile in einem InputBox (mit Abfrage JA / NEIN, ob die Zeile tatsächlich gelöscht werden soll) angezeigt werden.
Beim Klick auf JA soll die aktive Zeile (Beispiel Zeile 35) gelöscht werden.
Zusätzlich soll im Hintergrund in Arbeitsblättern: Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember, Januar 2015, Gesamtübersicht auch die Zeile gelöscht werden. Im Beispiel war die gelöschte Zeile im Arbeitsblatt "Mitarbeiter" 35 und in aufgeführten Arbeitsblättern ist das Zeile 40 (35 + 5) die gelöscht werden soll.
Wie mache ich das bitte per VBA?
Besten Dank vorab...
Viele Grüße,
Selma

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen mit Bedienung?
09.04.2014 11:09:36
hary
Moin Selma
Teste mal. Evtl. koennte man Sheetsarray weglassen wenn es nur diese Blaetter gibt und die Blattnamen sich aendern koennen.
Dann laesst man das Makro durch alle Blaetter laufen und nimmt nur "Mitarbeiter" raus.
Sub Test()
Dim mySheets, oSH As Object
If ActiveSheet.Name = "Mitarbeiter" Then
With Selection
If (.Rows.Count = 1 Or .Count = 1) And Cells(.Row, 2)  "" And .Row > 3 Then
If MsgBox("soll die zeile gelöscht werden?", vbYesNo) = vbYes Then
.EntireRow.Delete
Set mySheets = Sheets(Array("Januar", "Februar", "März", "April", "Mai", "Juni", " _
Juli", "August", "September", "Oktober", "November", "Dezember", "Januar 2015", "Gesamtübersicht"))
For Each oSH In mySheets
oSH.Row(.Row + 5).Delete
Next oSH
End If
End If
End With
End If
End Sub

gruss hary

Anzeige
AW: korrektur
09.04.2014 11:42:41
hary
Moin nochmal
hat sich ein Fehler eingeschlichen.
Sub Test()
Dim mySheets, oSH As Object
Dim i As Long
If ActiveSheet.Name = "Mitarbeiter" Then
With Selection
If (.Rows.Count = 1 Or .Count = 1) And Cells(.Row, 2)  "" And .Row > 3 Then
i = .Row
If MsgBox("soll die zeile gelöscht werden?", vbYesNo) = vbYes Then
.EntireRow.Delete
Set mySheets = Sheets(Array("Januar", "Februar", "März", "April", "Mai", "Juni", " _
Juli", "August", "September", "Oktober", "November", "Dezember", "Januar 2015", "Gesamtübersicht"))
For Each oSH In mySheets
oSH.Cells(i + 5, 1).EntireRow.Delete
Next oSH
End If
End If
End With
End If
End Sub

gruss hary

Anzeige
AW: korrektur
09.04.2014 12:26:34
Selma
Hallo Hary,
ich habe es getestet. Im Arbeitsblatt "Mitarbeiter" wird die Zeile gelöscht und die drei Bedingungen sind auch richtig. In anderen Arbeitsblättern wird die Zeile nicht gelöscht, das Makro bleibt hier Set mySheets... stehen.
Sub MA_Delete()
'1. Es darf immer nur eine Zeile oder eine Zelle markiert/ausgewählt sein.
'2. Das Löschen erst erst ab Zeile 4 möglich!
'3. Der Zellinhalt in Spalte B darf nicht leer sein!
Dim mySheets, oSH As Object
Dim i As Long
If ActiveSheet.Name = "Mitarbeiter" Then
With Selection
If (.Rows.Count = 1 Or .Count = 1) And Cells(.Row, 2)  "" And .Row > 3 Then
i = .Row
If MsgBox("Soll der Mitarbeiter " & """" & Cells(.Row, 2).Value & """" & " gelöscht  _
werden?", vbYesNo + vbQuestion, Cells(.Row, 2).Value) = vbYes Then
.EntireRow.Delete
'          Löschen der Zeilen in folgenden Arbeitsblättern:
Set mySheets = Sheets(Array("Januar", "Februar", "März", "April", "Mai", "Juni", "  _
Juli", "August", "September", "Oktober", "November", "Dezember", "Januar 2015", "Gesamtübersicht"))
For Each oSH In mySheets
oSH.Cells(i + 5, 1).EntireRow.Delete
Next oSH
End If
Else
MsgBox "Diese Zeile kann nicht gelöscht werden! Mögliche Gründe:" & vbNewLine & vbNewLine  _
& "1. Es darf immer nur eine Zeile oder eine Zelle markiert/ausgewählt sein!" & vbNewLine & "2. Das Löschen erst erst ab Zeile 4 möglich!" & vbNewLine & "3. Der Zellinhalt in Spalte B darf nicht leer sein!", vbExclamation, "Abbruch"
End If
End With
End If
End Sub

Anzeige
AW: korrektur
09.04.2014 15:08:06
Selma
Vielen Dank Hary!!!
VG,
Selma

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige