Auswahl über mehrere Blätter löschen
#1
Hallo wertes Forum,

ich stehe mal wieder vorm Wald...

In der angehängten Datei möchte ich im Blatt "Liste" einige Zellen auswählen und anschließend in der kompletten Zeile die Inhalte löschen und die Zeile grau markieren.
Zusätzlich soll das genauso auf dem ausgeblendeten Blatt "Druck" passieren.

Mein Code markiert die Zeilen und färbt sie auch auf beiden Blättern grau. Leider werden die Inhalte nur im Blatt "Liste" gelöscht.
Code:
Sub Makro1()
'
Dim Zelle As Range, Bereich As Range
Dim lngZeile As Long
Dim wksListe As Worksheet, wksDruck As Worksheet


Set wksListe = ThisWorkbook.Sheets("Liste")
Set wksDruck = ThisWorkbook.Sheets("Druck")

lngZeile = Rows.Count

With wksListe
    For Each Zelle In Selection
        If Bereich Is Nothing Then
            Set Bereich = Zelle.EntireRow
        Else
            Set Bereich = Union(Bereich, Zelle.EntireRow)
        End If
       
        If Zelle.Row < lngZeile Then
            lngZeile = Zelle.Row
        End If
    Next Zelle
    Bereich.Select
    .Cells(lngZeile, 1).Activate
End With

If MsgBox("Sollen die gewählten Positionen verschoben werden?", vbYesNo + vbQuestion + vbSystemModal, "Auftrag verschieben") = vbNo Then
    End
End If

With wksListe
    wksDruck.Visible = True
    .Activate
    Sheets(Array(wksListe.Name, wksDruck.Name)).Select
    With Selection
        .ClearContents
        With .Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorDark1
            .TintAndShade = -0.149998474074526
            .PatternTintAndShade = 0
        End With
    End With
    .Cells(1, 1).Select
    wksDruck.Visible = False
    .Activate
End With

'
End Sub

.xlsx   Test Inhalt löschen.xlsx (Größe: 9,75 KB / Downloads: 6)

Wie bekomme ich auch im Blatt "Druck" im selben Bereich die Inhalte gelöscht?

Vielen Dank für Eure Hilfe,
Lutz
Antworten Top
#2
Hallo Lutz,

z.B. so:

Code:
Sub aaa()
  Worksheets("Druck").Range(Selection.EntireRow.Address).Delete
  Selection.EntireRow.Delete
End Sub

Gruß, Uwe
Antworten Top
#3
Hallo Uwe,

funktioniert soweit super.

Ziel der Aufgarbe ist es am Ende aus einer Datei zwei zu machen (mit SaveCopyAs), wobei die markierten Zeilen in der ersten Datei gelöscht werden sollen und in der zweiten nur die markierten Zeilen erhalten bleiben sollen.
Und das Ganze mit jeweils zwei Blättern (eines zum drin arbeiten und eines in einer aufgehübschten Druckversion).

Mit Deiner Hilfe konnte ich jetzt die Aufgabe lösen. Die Datei wird dupliziert und in der ersten Datei werden die Zeilen in beiden Blättern geleert und grau markiert.
In der zweiten Datei müssen jetzt die Zeilen, die nicht der Auswahl entsprechen gelöscht werden.

Dazu nutze ich folgenden Code:
Code:
With wksListeKopie
    .Activate
    For intZeile = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
'        If Intersect(.Cells(intZeile, 1), Selection) Is Nothing Then
        If Intersect(.Cells(intZeile, 1), Bereich.Address) Is Nothing Then
            If BereichKopie Is Nothing Then
                Set BereichKopie = .Cells(intZeile, 1).EntireRow
            Else
                Set BereichKopie = Union(BereichKopie, .Cells(intZeile, 1).EntireRow)
            End If
        End If
    Next intZeile
    BereichKopie.Select
End With

Das setzt natürlich voraus, das zwischen dem Duplizieren der Datei und der Ausführung dieses Codes die Auswahl nicht geändert wird (die beim Duplizieren übernommen wird), sicherer wäre aus meiner Sicht, wenn ich die Prüfung "If Intersect(.Cells(intZeile, 1), Selection) Is Nothing Then" mit dem ursprünglich bestimmten Bereich abgleichen könnte statt mit der aktuellen Auswahl.

Anbei dazu nochmal eine angepasste Datei (die an meinem Versuch natürlich in einen "Typen unverträglich"-Fehler läuft):

.xlsm   Test Inhalt löschen.xlsm (Größe: 17,86 KB / Downloads: 0)

Nochmal vielen Dank für Deine Hilfe,
Lutz
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste