VisualBasic [Excel VBA] Werte kopieren über Schleife mit 2 Bedingungen?

Nico_B

Lt. Junior Grade
Registriert
Sep. 2010
Beiträge
345
Hallo.

Ich habe eine Excel-Arbeitsmappe mit mehreren Tabellenblättern. Auf dem Tabellenblatt Erfassung werden Vorgänge erfasst. Einmal im Jahr (Erste Bedingung) sind bestimmte Fälle (2. Bedingung) zu melden. Hierfür habe ich ein zweites Tabellenblatt angelegt, dass den Namen Meldebogen trägt. Nun wollte ich mit Hilfe einer Schleife die relevanten Werte aus dem Tabellenblatt Erfassung auf den Meldebogen kopieren. Leider klappt mein Ansatz jedoch nicht. Vielleicht könnt ihr mir weiterhelfen.

Code:
Sub Meldebogenerstellen()
  
Dim i As Integer, j As Integer
Dim AR1 As Integer, AR2 As Integer
  
'Parameter für den Zielbereich
eZ1 = Worksheets("Optionen").Range("B107").Value 'erste Zeile
lZ1 = Worksheets("Optionen").Range("B108").Value 'letze Zeile
eS1 = Worksheets("Optionen").Range("B96").Value 'erste Spalte
lS1 = Worksheets("Optionen").Range("B102").Value 'letzte Spalte
 
'Quelldaten
AR1 = Worksheets("Optionen").Range("B75").Value   'erste Zeile der Quelldaten
AR2 = Worksheets("Optionen").Range("B76").Value   'letzte Zeile der Quelldaten
 
'Jahr; 1. Bedingung Format JJJJ
KJ = Worksheets("Meldebogen").Range("B1").Value
 
j = eZ1
 
With Worksheets("Erfassung")
    For i = AR1 To AR2
        If .Cells(i, 13) = "Meldevorgang" And .Cells(i, 1).xj = KJ Then 
            .Range("A" & i).Copy
                 Worksheets("Meldebogen").Range("A" & j).PasteSpecial Paste:=xlPasteValues
            .Range("B" & i).Copy
                 Worksheets("Meldebogen").Range("B" & j).PasteSpecial Paste:=xlPasteValues
            j = j + 1
        End If
    Next i
End With
  
End Sub

Es scheint an der Abfrage
Code:
        If .Cells(i, 13) = "Meldevorgang" And .Cells(i, 1).xj = KJ Then
zuhabern. Mit dem Jahr auslesen aus dem Datum.
 
Moin,

also erstmal die Frage: Was funktioniert denn nicht? kopiert das Skript gar nichts? oder die Falschen Zellen?... bisschen mehr Infos :))

und ich habe mal ein ähnliches Skript geschrieben, also zum werte kopieren, ich würde an deiner Stelle mal folgendes probieren:

If .Cells(i, 13).Value = "Meldevorgang" and usw.

du musst immer auf den Wert (Value) der Zelle zugreifen ;) dann sollte das eigentlich funktionieren

Grüße, Nico
 
Zurück
Oben