Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Bereich Abfragen

Betrifft: Bereich Abfragen von: Matthias
Geschrieben am: 01.10.2020 07:17:08

Guten Morgen Wissende,


ich habe folgenden VBA Code

Sub Uebertrag_AlleMontagefirma()
Dim loAnz As Long, loLetzte As Long
Dim raBereich As Range, raZelle As Range
Dim lngCalc As Long
Application.ScreenUpdating = False
lngCalc = Application.Calculation
Application.Calculation = xlCalculationManual
With Worksheets("Montagefirma")
    .Range("A1:xfd" & .Cells(.Rows.Count, 1).End(xlUp).Row).Clear
End With
With Worksheets("Terminplan")
    .Columns("A:B").Hidden = False
    Set raBereich = .Range("B1:B" & .Cells(.Rows.Count, "B").End(xlUp).Row)
    For Each raZelle In raBereich.SpecialCells(xlCellTypeVisible)
        If raZelle.Text = .Range("F2") .Text Then
            raZelle.EntireRow.SpecialCells(xlCellTypeVisible).Copy
            loAnz = loAnz + 1
            With Worksheets("Montagefirma")
                loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row
                If .Cells(1, "A") = "" Then loLetzte = 1
                .Cells(loLetzte, "A").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
                .Cells(loLetzte, "A").PasteSpecial Paste:=xlPasteFormats
            End With
        End If
        Application.CutCopyMode = False
    Next raZelle
    .Columns("A:B").Hidden = True
End With
Application.Calculation = lngCalc
MsgBox "Es wurden " & loAnz & " Sätze übertragen."
Set raBereich = Nothing
End Sub

ich frage dort die Zelle F2 ab und wenn diese mit dem Einträgen in Spalte B übereinstimmt werden alle Zeilen mit Übereinstimmung in ein anderes Tabellenblatt kopiert.

Wie kann ich nun den Code so verändern, dass ich nicht nur eine Zelle (also F2) abfragen kann sondern mehrere.


Danke im Voraus für die Hilfe


Matthias

Betrifft: AW: Bereich Abfragen
von: MRUTOR
Geschrieben am: 01.10.2020 07:29:59

Hallo,

mit AND z.B.:
If raZelle.Text = .Range("F2").Text AND raZelle.Text = .Range("F3").Text Then

Das kannst du beliebeig weiterfuehren. Dann wird Then nur ausgefuehrt wenn alle Bedingungen zutreffen. Mit OR geht es auch, wenn nur eine von mehreren Bedingungen zutreffen soll.

Gruss Tor

Betrifft: AW: Bereich Abfragen
von: Matthias
Geschrieben am: 03.10.2020 10:49:35

Hallo Tor

vielen dank für deine Hilfe, funktioniert sehr gut,

wenn ich die Zellen in nun in einer Anderen Tabellenblatt abfragen möchte,
was müsste ich dann eingeben

If raZelle.Text = .Range("F2").Text AND raZelle.Text = .Range("F3").Text Then

Gruss
Matthias

Betrifft: AW: Bereich Abfragen
von: Hajo_Zi
Geschrieben am: 04.10.2020 09:02:21

Hallo Matthias,

With Worksheets("andere Tabelle")
.Columns("A:B").Hidden = False

Gruß Hajo

Betrifft: AW: Bereich Abfragen
von: MRUTOR
Geschrieben am: 05.10.2020 14:23:57

Hallo Matthias,

na wenn diese Zellen in einem anderen Blatt liegen, dann musst du hier halt auf das andere BlAtt referenzieren:
If raZelle.Text = Sheets("AndresBlatt").Range("F2").Text AND raZelle.Text = Sheets("AndresBlatt")..Range("F3").Text Then
Gruss Tor