Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Ganze Zeile in andere Tabelle kopieren

Ganze Zeile in andere Tabelle kopieren
09.07.2020 13:48:55
Nadja
Hallo ihr Lieben!
Meine VBA Kenntnisse sind aktuell sehr bescheiden, daher bräuchte ich eure Hilfe. Und ja, ich hab online schon viel rumgesucht, auf englischen und deutschen Seiten. Aber genau das was ich suche habe ich nicht gefunden.
Ich möchte für meine Arbeit eine Tabelle erstellen, die automatisch nach bestimmten Kriterien von der Haupttabelle in die spezifischen Tabellen kopiert:
In der Haupttabelle (Blatt 1) werden Patienten inklusive der Station aufgeführt. Das Makro soll in einer bestimmten Spalte (6) nach den Stationen suchen und dann die komplette Zeile in das jeweile Tabellenblatt in eine identische Tabelle einfügen. Das habe ich bis hierhin auch hingekriegt. Leider kopiert es die Zeilen nicht von oben nach unten (also in die jeweils erste leere Zeile), sondern orientiert sich danach, in welcher Zeile es in der Haupttabelle steht. Wenn die erste Zeile mit der Station B 2 in der Haupttabelle also in Zeile 15 vorkommt, wird sie auch im Tabellenblatt der B 2 in Zeile 15 kopiert und vorher habe ich 14 leere Zeilen. Das ist halt sehr unübersichtlich.
Filterfunktion würde ich lieber nicht nehmen. Es werden viele Leute damit arbeiten und ich möchte die Möglichkeiten, aus Versehen etwas zu verstellen soweit es geht minimieren. In der Haupttabelle ist ein Button für das Makro zum Aktualisieren.
Mein Code (einer davon) sieht aktuell so aus:

Sub KopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Tabelle1
ZeileMax = .UsedRange.Rows.Count
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For Zeile = 2 To ZeileMax
If .Cells(Zeile, 6).Value = "A 1" Or .Cells(Zeile, 6).Value = "A1" Then
.Rows(Zeile).Copy Destination:=Tabelle2.Rows(n)
n = n + 1
ElseIf .Cells(Zeile, 6).Value = "B 2" Or .Cells(Zeile, 6).Value = "B2" Then
.Rows(Zeile).Copy Destination:=Tabelle3.Rows(n)
n = n + 1
Else
.Rows(Zeile).Copy Destination:=Tabelle4.Rows(n)
n = n + 1
End If
Next Zeile
End With
End Sub

Hier die Testdatei:
https://www.herber.de/bbs/user/138903.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Teste mal
09.07.2020 14:19:36
Fennek
Hallo,

Sub Main
with sheets("Haupttabelle")
for i = 2 to cells(rows.count, 1).end(xlup).row
if not isempty(cells(i,1)) and SheetExist(cells(i, "F")) then
range(cells(i,1), cells(i, "F")).copy sheets(cells(i,"F")).cells(rows.count,1).end(xlup). _
offset(1)
else
range(cells(i,1), cells(i, "F")).copy sheets("Rest").cells(rows.count,1).end(xlup).offset(1)
endif
next i
end with
End Sub
Function SheetExists(shName As String) As Boolean
Dim sh As Worksheet
On Error Resume Next
Set sh = Sheets(shName)
On Error GoTo 0
SheetExists = Not sh Is Nothing
End Function
mfg
Anzeige
AW: Teste mal
09.07.2020 15:02:57
Nadja
Hallo Fennek,
danke für die schnelle Antwort. Ich hab´s mal getestet und irgendwie klappt das bei mir nicht.
Es kopiert immer nur in die "Rest" Tabelle. Zwar schön von oben nach unten, aber jedesmal wenn ich auf den Button klicke werden die Zeilen zudem nochmal kopiert.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige