Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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
Inhaltsverzeichnis

Bestimmte Zeilen in Tabelle 2 Kopieren

Bestimmte Zeilen in Tabelle 2 Kopieren
07.01.2020 20:36:27
Dennis
Guten Abend zusammen,
ich stehe den ganzen Tag schon auf den Schlauch und möchte dennoch gerne etwas in Erfahrung bringen.
Ich habe vorher noch nicht wirklich mit VBA gearbeitet, aber möchte mir zwecks Arbeitserleichterung etwas basteln.
Es gibt 1 Excel Datei (https://www.herber.de/bbs/user/134231.xlsx) hierin befinden sich 2 Tabellen.
Tabelle 1 beinhaltet Spalte A: Paletten, Spalte B: Lagerzone, Spalte C-E: Andere Daten welche ich nun raus genommen habe.
Tabelle 2 soll ab Zeile C5 + D5 fortlaufend die Werte aus Tabelle 1, Spalte A + B hineinschreiben.
Es sollen aber nur die Daten erfasst werden welche als Lagerzone AS.... sowie BU.... besitzen. Leider schreibt er aber nur in Spalte A jeweils rein :/
Demnach käme vermutlich ein "LIKE" Operator zu Gebrauch- wo ich jedoch nicht wirklich hilfreiches für meine nicht vorhandenen Kenntnisse im Netz finde :)
Ich könnte es zwar mit "OR" umsetzen, aber da die Lagerzonen Fortlaufend hinzugefügt werden, müsste ich Wöchentlich bestimmt 10-20 OR's hinzufügen. Irgendwann wird es dann auch zu viel / zu unübersichtlich bzw. zu langsam.
Das zweite Problem was ich habe, ich hätte einen Codeschnipsel, dieser fügt aber die jeweils ganzen Zeilen ein, anstatt nur A2 & B2.
Sub KopieFilterung()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Tabelle1
ZeileMax = .UsedRange.Rows.Count
n = 5
For Zeile = 2 To ZeileMax
If .Cells(Zeile, 2).Value = "ASR1"  OR .Cells(Zeile, 2).Value = "ASRBS2"  Then
.Rows(Zeile).Copy Destination:=Tabelle2.Rows(n)
n = n + 1
End If
Next Zeile
End With
End Sub

Ich hoffe Ihr versteht was ich meine :)
Falls so etwas mit VBA gar nicht erst umsetzbar ist, wäre ich aber auch über eine Info dankbar bevor ich weiterhin rumgoogle und meine Nerven ruiniere *Gg*
Vielen Dank und einen Schönen Abend noch!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
07.01.2020 21:52:37
Rudi
Hallo,
teste mal:
Sub kopieren()
Dim rngCopy As Range, rng As Range
With Tabelle1
For Each rng In .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Select Case Left(rng.Offset(, 1).Value, 2)
Case "AS", "BU"
If rngCopy Is Nothing Then
Set rngCopy = rng.Resize(, 2)
Else
Set rngCopy = Union(rngCopy, rng.Resize(, 2))
End If
End Select
Next
End With
If Not rngCopy Is Nothing Then
rngCopy.Copy Tabelle2.Cells(5, 3)
End If
End Sub

Gruß
Rudi
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 06:36:36
Dennis
Guten Morgen Rudi,
vielen Dank! Das hat einwandfrei funktioniert!
Gibt es eine Möglichkeit das beim einfügen in Tabelle 2 die Formatierung der Zellen nicht überschrieben wird?
Anderenfalls hänge ich einfach ein neues Formatierungs-Makro dran - das ist halb so wild :)
Anzeige
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 06:49:41
Dennis
Guten Morgen Rudi,
funktioniert einwandfrei. Vielen Lieben Dank dafür :) !
Ich habe eine kleine Frage aber noch.
Es wäre schön wenn das Format der Zellen auf Tabelle 2 bestehen bleibt.
Eigentlich wäre doch folgendes Möglich?:
Aber mit .PasteSpecial kommt eine Syntax Fehlermeldung
rngCopy.Copy Tabelle2.Cells(5, 3) .PasteSpecial _
Operation:=xlPasteValues
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 10:05:05
Torsten
Hallo Dennis,
dann musst du das in 2 Zeilen schreiben:

rngCopy.Copy
Tabelle2.Cells(5, 3).PasteSpecial xlPasteValues
Application.CutCopyMode = False   'um die copy markierung wieder aufzuheben

Gruss Torsten
Anzeige
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 10:49:36
Dennis
Super Vielen Dank! Das hat mir sehr geholfen!
Jetzt stellt sich mir nur noch eine Allgemeine Frage zu VBA, wo es nichtmals eine Lösung jetzt geben muss :)
Dank des aller ersten Codes vom Rudi wird alles fortlaufend eingefügt. So war es auch von mir geplant, im Endeffekt passt es jedoch nicht mehr aufs Blatt ohne zu klein zu werden...
Ist es umsetzbar das man 20 Zeilen in Spalte C/D ausgibt und danach, daneben weitere 20 Zeilen in Spalte G/H weiter fortführt und ausgibt?
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 12:34:45
Rudi
Hallo,
Sub kopieren()
Dim rng As Range
Dim lngrow As Long, lngCol
Dim vntOUT(20, 1)
Dim objDaten As Object, oObj
Dim i As Long, j As Integer
Set objDaten = CreateObject("scripting.dictionary")
lngrow = 4
lngCol = 3
Tabelle2.Cells.ClearContents
With Tabelle1
For Each rng In .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Select Case Left(rng.Offset(, 1).Value, 2)
Case "AS", "BU"
objDaten(rng) = rng.Offset(, 1).Value
End Select
Next
End With
If objDaten.Count Then
vntOUT(0, 0) = "Palette"
vntOUT(0, 1) = "Lagerzone"
j = -1
For Each oObj In objDaten
j = j + 1
If j > 19 Then
Tabelle2.Cells(lngrow, lngCol).Resize(j + 1, 2) = vntOUT
lngCol = lngCol + 4
Erase vntOUT
vntOUT(0, 0) = "Palette"
vntOUT(0, 1) = "Lagerzone"
j = -1
Else
vntOUT(j + 1, 0) = oObj
vntOUT(j + 1, 1) = objDaten(oObj)
End If
Next oObj
End If
If j > 0 Then Tabelle2.Cells(lngrow, lngCol).Resize(j + 1, 2) = vntOUT
End Sub

Gruß
Rudi
Anzeige
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 13:14:16
Dennis
Hallo Rudi,
Wahnsinn was du da zauberst! Ich bin schwer beeindruckt.
Falls ich es ggf. finanziell gut machen kann, sag mir Bescheid! Ich schätze deine Arbeit und die verbrachte Freizeit dafür sehr!
Das Makro läuft soweit gut - es springt nach 20 Zeilen auf die nächste Spalten um.
Bei diesem Schritt verschluckt er aber 1 Palette.
In der zweiten Spalte verschluckt er am Ende auch noch 2 Paletten.
Spalte C/D: 1-20
Spalte G/H: 22-38
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 13:25:13
Dennis
Okay, mit den letzten 2 Verschluckten Paletten habe ich wie folgt gelöst:

If j > 0 Then Tabelle2.Cells(lngrow, lngCol).Resize(j + 3, 2) = vntOUT
Jedoch fehlt mir noch etwas Sinnigkeit für das Uberhüpfen von Palette 21 :)
Anzeige
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
08.01.2020 15:15:25
Rudi

Sub kopieren()
Dim rng As Range
Dim lngrow As Long, lngCol
Dim vntOUT(20, 1)
Dim objDaten As Object, oObj
Dim i As Long, j As Integer
Set objDaten = CreateObject("scripting.dictionary")
lngrow = 4
lngCol = 3
Tabelle2.Cells.ClearContents
With Tabelle1
For Each rng In .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
Select Case Left(rng.Offset(, 1).Value, 2)
Case "AS", "BU"
objDaten(rng) = rng.Offset(, 1).Value
End Select
Next
End With
If objDaten.Count Then
vntOUT(0, 0) = "Palette"
vntOUT(0, 1) = "Lagerzone"
j = 0
For Each oObj In objDaten
j = j + 1
If j > 19 Then
Tabelle2.Cells(lngrow, lngCol).Resize(j + 1, 2) = vntOUT
lngCol = lngCol + 4
Erase vntOUT
vntOUT(0, 0) = "Palette"
vntOUT(0, 1) = "Lagerzone"
j = 0
End If
vntOUT(j + 1, 0) = oObj
vntOUT(j + 1, 1) = objDaten(oObj)
Next oObj
End If
If j > 0 Then Tabelle2.Cells(lngrow, lngCol).Resize(j + 1, 2) = vntOUT
End Sub

Anzeige
AW: Bestimmte Zeilen in Tabelle 2 Kopieren
09.01.2020 06:48:40
Dennis
Vielen Dank nochmals für deine Bemühungen!
Mit ein paar kleinen Anpassungen hat es nun hingehauen.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige