Hallo zusammen.
Ich habe eine Arbeitsmappe mit mehreren Tabellen.
Nun möchte ich gerne per Macro bestimmt Zellen kopieren und in ein neues Blatt einfügen.
Es soll alles Zeilenweise kopiert werden, wenn in Zelle F ein "EZ" steht und in Zelle D die Variable "Artnr.", die ich vorher per InputBox abfrage, NICHT enthalten ist.
Sonderheit bei der Art.-Nr ist, das dort nur die ersten 5 Ziffern abgefragt werden, die können aber auch länger sein.
Zum Beispiel 12345-678-900, wobei da nur 12345 geprüft wird. wenn dort eine andere Zahl steht, soll das ganze kopiert werden.
Mein bisheriger Code:
Public blnMakroStart As Boolean
Public Artnr As String
Sub artkopieren() ''control As IRibbonControl
blnMakroStart = True '' Um Nacher im Modul 8 "formatactiv" die Art-Nr zu übernehmen
Dim ws As Worksheet
Dim blatt As Object
Dim blattname As String
Dim bolFlg As Boolean
Dim cell As Range
Artnr = InputBox(Title:="Kom.#", Prompt:="Bitte Kom.-# eingeben:", Default:=12345)
If Artnr = "" Then Exit Sub
'Blattname definieren
blattname = "Kopierte Daten"
'** Prüfen, ob das Blatt, welches eingefügt werden soll bereits vorhanden ist
'** Nur einfügen, wenn Blatt noch nicht vorhanden ist
For Each blatt In Sheets
If blatt.Name = blattname Then bolFlg = True
Next blatt
'** Blatt nur einfügen, wenn noch nicht vorhanden
If bolFlg = False Then
Sheets.Add
With ActiveSheet
.Name = blattname
.Move after:=Sheets(Worksheets.Count)
End With
Else
MsgBox "Blatt schon vorhanden;" & Chr(13) & Chr(10) & "bitte umbenennen", vbOKOnly, "Fehler"
Exit Sub
End If
Call Formataktiv
''MsgBox Artnr
With Sheets(2)
For Each cell In .Range("F6:F" & .Cells(Rows.Count, "F").End(xlUp).Row)
If cell.Value = "EZ" And Not cell(0, -2).Value = Artnr & " * " Then
cell.EntireRow.Copy Destination:=Sheets(blattname).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
End If
Next
End With
End Sub
Der Call von "Formatactiv" formatiert nur das Blatt, wie Zeilenabstände etc.
Deswegen auch die beiden Public Variablen, da die dort dann verarbeitet werden.
Wie könnte ich das ganze lösen?
Gruß,
Marcel