Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1932to1936
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
Zelle kopieren wenn Bedingungen (nicht)
05.06.2023 11:39:11
Marcel Sch

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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle kopieren wenn Bedingungen (nicht)
05.06.2023 12:42:08
GerdL
Hallo Marcel,
das Sternchen tut es nur beim Like-Operator. Du möchtest nur die ersten fünf Stellen abgleichen.

 ... And Left(cell(0, -2), 5) > Artnr Then
Gruß Gerd


AW: Zelle kopieren wenn Bedingungen (nicht)
05.06.2023 13:11:26
Marcel Sch
Hallo,

super, das funktioniert so!
Recht herzlichen Dank!

Gruß
Marcel

Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige