Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
776to780
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
776to780
776to780
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellen zusammenführen

Tabellen zusammenführen
05.07.2006 08:30:42
Daniel
Hallo!
Ich möchte Daten aus mehreren Tabellen (z.B. "LG","FT"...) in eine Tabelle
"Alle Daten" zusammenfassen.
Die Blätter bestehen jeweils aus 7 wichtigen Spalten, A-H. Diese sollen auch nach A-H ins Zielblatt kopiert werden, aber:
In B steht ein Datum. Danach soll sortiert werden.
Wie geht das per VBA?
Danke für eure Hilfe.
Daniel

27
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen zusammenführen
05.07.2006 09:24:26
Daniel
Hallo Sylvio,
bei mir kommt da ein Fehler:
DataOption1. Benanntes Argument nicht gefunden!?
Zudem hatte ich vergessen, dass es in jeder Tabelle Spaltenüberschriften gibt, auch in der Zieltabelle. Die Prozedur soll also erst ab Zeile 2 beginnen.
Danke,
Daniel
AW: Tabellen zusammenführen
05.07.2006 12:31:43
Sylvio
Hallo Daniel,
dann setz die Cells-Werte einfach ne Zeile tiefer.
Und in welcher zeile tritt den der Fehler auf?
Bei mir funzt das einwandfrei?
gruß Sylvio
Anzeige
AW: Tabellen zusammenführen
05.07.2006 12:42:02
Daniel
Hallo Sylvio,
diese Zeile wird markiert, und zwar nicht gelb sondern blau.
"Benanntes Argument nicht gefunden."
DataOption1:=xlSortNormal
Grüße,
Daniel
AW: Tabellen zusammenführen
05.07.2006 14:31:16
Sylvio
Hallo Daniel,
setz mal den Macro-recorder ein und zeichne eine Sortierung deiner daten auf und vergleich mal den Quellcode.
vermutlich ist der Befehl im 2000 anders als im 2003.
Gruß Sylvio
AW: Tabellen zusammenführen
05.07.2006 15:08:24
Daniel
Ahhh. Verstehe. Das kriege ich denke ich hin.
Nochmal danke für die Hilfe!
Grüße
Daniel
Das geht so doch nicht.
05.07.2006 15:20:15
Daniel
Hallo Sylvio,
das geht so doch nicht. Ich konnte das ja erst jetzt testen.
Anscheinend braucht das Makro genau die richtige Reihenfolge der Blätter.
In meiner Originaldatei ist das aber nicht der Fall.
Das Zielblatt kommt an ganz anderer Stelle als die Quellblätter.
Die Quellblätter sind genau 12. Diese sind zusammenhängend, während sich das Zielblatt nicht direkt daneben befindet.
Wie muss das Makro dann aussehen?
Gruß und Danke!
daniel
Anzeige
AW: Das geht so doch nicht.
05.07.2006 16:25:46
Sylvio
Hallo Daniel,
mal paar grundlegende Erklärungen.
Es muss ein Sheet mit der Bezeichnung "Ziel" geben, dies sollte wenn möglich das erste Sheet sein.
Möchtest du das nicht, musst du in der Schleife noch eine If-Bedingung einbauen die erst den Sheetnamen überprüft, nicht das du dann Sheet "Ziel" ins Sheet "Ziel" kopierst.
Wie die anderen Sheets heißen ist mir egal auch wie viele ist mir egal.
meine Schleife läuft von i=2 als dem zweiten Sheet bis zum letzten welches sich im Workbook befindet.
Gruß Sylvio
AW: Das geht so doch nicht.
05.07.2006 16:31:46
Daniel
Hallo Sylvio,
danke für die Erklärung.
Wie muss es dann heißen, wenn ich die Sheets vom 5. bis zum 16. Sheet habe.
Davor und danach kommen noch andere Sheets, die mit dieser Prozedur nichts zu tun haben.
For i= 5 to 16?
Gruß,
Daniel
Anzeige
AW: Das geht so doch nicht.
05.07.2006 16:56:19
Sylvio
Hallo Daniel,
klar doch einfach statt for i=2 i=5 schreiben. Dann fängt er beim fünften Blatt an. to 16 hört es beim 16ten Sheet auf, geht auch. :-)
Gruß Sylvio
AW: Das geht so doch nicht.
05.07.2006 17:06:35
Sylvio
Hallo Daniel,
noch paar Ergänzungen:
er prüft erst ob die 4 ersten Datenblätter + 16 Datenblätter vorhanden sind. Ansonsten kommt ne Meldung und er beendet.
Er überspringt das Sheet "Ziel" falls es in der Schleife auftaucht.

Sub Test()
first = 1
Application.DisplayAlerts = False
prüf = ThisWorkbook.Sheets.Count - 4
If prüf <= 16 Then
MsgBox "Sie haben keine 16 Datenblätter für die nachfolgende Schleife zur Verfügung!", vbCritical, "Hinweis"
Exit Sub
End If
For i = 1 To 16
If ThisWorkbook.Sheets(i).Name = "Ziel" Then i = i + 1
ThisWorkbook.Sheets(i).Activate
ThisWorkbook.Sheets(i).Range(ThisWorkbook.Sheets(i).Cells(1, 1), ThisWorkbook.Sheets(i).Cells(ThisWorkbook.Sheets(i).Cells(1, 1).End(xlDown).Row, 8)).Select
Selection.Copy
ThisWorkbook.Sheets("Ziel").Activate
If first = 1 Then
ThisWorkbook.Sheets("ziel").Cells(1, 1).Select
Selection.Insert
End If
If first = 2 Then
ThisWorkbook.Sheets("ziel").Cells(1, 1).End(xlDown).Offset(1, 0).Select
Selection.Insert
End If
first = 2
Next i
ThisWorkbook.Sheets("Ziel").Columns("B:B").Select
Range(ThisWorkbook.Sheets("Ziel").Cells(1, 1), ThisWorkbook.Sheets("Ziel").Cells(ThisWorkbook.Sheets("Ziel").Cells(1, 1).End(xlDown).Row, 8)).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ThisWorkbook.Sheets("Ziel").Cells(1, 1).Select
Application.DisplayAlerts = True
End Sub

Gruß Sylvio
Anzeige
AW: Das geht so doch nicht.
06.07.2006 08:32:29
Daniel
Hallo Sylvio,
leider funktioniert das nicht.
Die Anordnung ist so:
Die Quellblätter sind die Blätter 4 bis 15, und das Zielblatt ist Blatt 16.
Kopiert werden soll jeweils A-H, außer der 1. Zeile.
Im Moment kopiert er Sheets, die nicht dazu gehören, z.B. Sheet 1 und 2.
Zudem kopiert er dann die Inhalte nebeneinander und nicht untereinander.
Außerdem sollen nur die Inhalte kopiert werden.
Wahrscheinlich habe ich mich zuvor einfach dumm ausgedrückt?
Wäre nett, wenn du mir trotzdem nochmal kurz heflen würdest.
Daniel
AW: Das geht so doch nicht.
06.07.2006 12:16:50
Sylvio
Hallo Daniel,
so hier noch einmal eine neue Mappe. Auf Sheet IT1 gehts los.
https://www.herber.de/bbs/user/34891.xls
Gruß Sylvio
Anzeige
AW: Das geht so doch nicht.
06.07.2006 12:48:11
Daniel
Hi Sylvio!
Sehr gut! Danke!
Außer das Sortiern geht alles, aber das kriege ich selbst hin hoffe ich.
Danke für die Hilfe und noch einen schönen Tag!
Daniel
Moment
06.07.2006 12:58:58
Sylvio
Hallo Daniel,
Was geht am sortieren nicht?
Gruß Sylvio
AW: Moment
06.07.2006 13:07:10
Daniel
Hi,
das hatten wir zu Beginn schon. Damit kann er nichts anfangen:
DataOption1:=xlSortNormal
Leider kommt es in meiner Originaldatei aber zu einem anderen Fehler:
Anwendungs der objektidefinierter Fehler.
ThisWorkbook.Sheets("ziel").Cells(2, 1).End(xlDown).Offset(1, 0).Select
Die ganze zeile wird gelb markiert.
Den Block zwischen weiter: und Application.ScreenUpdating = True
habe ich gelöscht, damit es nicht zu dem Sortierfehler kommt.
woher kommt dieser fehler? Ich habe extra darauf geachtet, dass alles Stimmt.
Grüße
Daniel
Anzeige
AW: Moment
06.07.2006 15:08:18
Sylvio
Hallo Daniel,
Das "Ziel" mal groß schreiben.
Wenn es immer noch nicht geht. End(xlDown) mal in der Hilfe suchen ob es den Befehl im 2000 gibt.
wegen DataOption1:=xlSortNormal einfach mal eine Sortierung von Daten mit makro aufzeichnen und schauen was er da schreibt. Ich hab leider kein 2000 hier zum testen.
Gruß Sylvio
AW: Moment
06.07.2006 15:26:12
Daniel
Hi,
in deiner Beispieldatei läuft es ja (abgesehen vom sortieren).
Wenn ich das Makro dann in meine Datei übertrage kommt dort der Fehler.
Ist mir völlig unverständlich.
Wenn ich das aber in xlUp ändere, dann kommt kein Fehler. Allerdings kopiert er dann nach rechts und nicht untereinander.
Grüße,
Daniel
Anzeige
AW: Moment
06.07.2006 16:20:07
Sylvio
Hallo Daniel,
das versteh ich nicht xldown heißt es definitiv wegen nach unten gehen, deshalb darfst xlup nicht schreiben.
Hast mal versucht deine Daten in meine Datei zu schieben?
wegen sortieren sie mal meinen Ergänzungspost.
Das muss doch gehn!!!
Gruß Sylvio
AW: Moment
06.07.2006 16:29:31
Daniel
okay,
ich habe das gemacht.
Es liegt definitiv an den Daten. In deiner Datei geht es auch nicht.
Wo sind die Unterschiede?
1. Die Daten sind formatiert
2. Die Spalten enthalten Formeln.
Wegen der Formeln. Wahrscheinlich werden diese mitkopiert.
Es sollen aber nur Werte kopiert werden, das heißt wenn die Formel
kein Ergebnis hat, soll auch nichts kopiert werden.
Vielleicht liegt es daran?
Grüße
Und danke fürs Durchhaltevermögen.
Anzeige
AW: Moment
07.07.2006 07:30:53
Sylvio
Hallo Daniel,
kannst deine Datei mal hochladen?
Gruß Sylvio
AW: Moment
07.07.2006 08:53:56
Daniel
Hallo Sylvio,
meine Originaldatei ist zu groß.
Ich habe daher eine sehr reduzierte Beispieldatei angefertigt:
https://www.herber.de/bbs/user/34913.xls
Ich denke die Formel in G und H macht Probleme beim kopieren!?
Mich interessieren beim Kopiren aber nur die Werte. Also in diesem Fall
nur Blatt LG4 und FT5 die Zeile 2.
Grüße,
Daniel
AW: Moment
07.07.2006 09:21:28
Sylvio
Hallo Daniel,
also das wegen der Formeln ist nicht das Problem!
schreib Anstelle: Selection.Insert
folgendes: Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
korregiere bitte ebenfalls diesen Abschnitt:
If first = 2 Then
ThisWorkbook.Sheets("Ziel").Cells(1, 1).End(xlDown).Offset(1, 0).Select
'Selection.Insert
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Die Sache mit dem xlDown ist das Problem!!! Es müssen in jeden der 15 Datensheets mindestens zwei Datenreihen vorhanden sein dann funzt es bei mir einwandfrei.
Gruß Sylvio
Anzeige
AW: Moment
07.07.2006 09:34:31
Daniel
Yipieee!!!
Das war also die Ursache. Okay, darauf muss man erstmal kommen.
Danke für die Hilfe. Damit ist alles geschafft.
Grüße,
Daniel
Na geht doch :-)
07.07.2006 09:44:46
Sylvio
Hallo Daniel,
vielleicht fällt mir noch ne Lösung ein, damit es auch für eine Zeile klappt. Falls der Post dann nicht schon im Archiv ist. :-)
Viel Erfolg weiterhin mit deiner Datei.
Gruß Sylvio
AW: Na geht doch :-)
07.07.2006 09:46:30
Daniel
Hi Sylvio,
danke. Nach kurzer Zeit der Verwendung der Datei werden mehr als zwei Zeilen da sein.
Ist also keinn wirkliches Problem.
Grüße,
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige