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

Zusammenführen und Sortieren

Zusammenführen und Sortieren
17.05.2016 19:46:40
Matze
Liebes Forum,
ich habe 2 Fragen an euch:
1. Besteht eine sinnvolle Möglichkeit, dass "Sortieren"-Modul mit dem Zusammenschreiben-Makro zu verbinden. Sprich, man muss nur einmal die Schaltfläche betätigen?
Sub Zusammenschreiben()
Dim ws As Worksheet
Dim wsTotal As Worksheet
Dim lngLastCol As Long
Dim lngLastRow As Long
Dim rngTotalFound As Range
Dim lngTotalRow As Long
Dim lngCounter As Long
Dim strSearch As String
Dim sTabs As String
'Tabellen, die zusammengeführt werden sollen
sTabs = "*Tabelle2*Tabelle4*Tabelle5*"
On Error GoTo Zusammenschreiben_Error
Application.ScreenUpdating = False
Set wsTotal = Sheets("Tabelle6")
'** Clear Used-Range ohne Ünerschriftzeile   (Piet)
wsTotal.UsedRange.Offset(1, 0).Delete
For Each ws In Worksheets
If InStr(1, sTabs, "*" & ws.Name & "*", vbTextCompare) > 0 _
Then
lngTotalRow = wsTotal.Cells(Rows.Count, "A").End(xlUp).Row + 1
Debug.Print lngTotalRow
With ws
lngLastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row + 1
lngLastCol = ws.Cells(1, Columns.Count).End(xlToLeft).Column
.Range("A2:A" & lngLastRow).Copy Destination:=wsTotal.Range("A" & lngTotalRow) 'Spalte A  _
_
.Range("B2:J10" & lngLastRow).Copy Destination:=wsTotal.Range("G" & lngTotalRow) 'Spalten  _
_
End With
End If
Next ws
With wsTotal
lngTotalRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("B1:F1").Copy
.Range("B2:F" & lngTotalRow).PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
End With
'** Rahmen senkrecht  - neu eingefügt -  (Piet)
lngLastRow = wsTotal.Range("A1").End(xlDown).Row
With wsTotal.Range("A1:A" & lngLastRow)
.Offset(0, 0).Borders(xlEdgeRight).LineStyle = xlContinuous
.Offset(0, 5).Borders(xlEdgeRight).LineStyle = xlContinuous
End With
'** Rahmen senkrecht  - Ende -
exit_here:
Set rngTotalFound = Nothing
Application.ScreenUpdating = True
On Error GoTo 0
Exit Sub
Zusammenschreiben_Error:
MsgBox "Fehler " & Err.Number & " (" & Err.Description & ") in der Prozedur Zusammenschreiben"
Resume exit_here
End Sub
Sortieren
Sub Schaltfläche1_Klicken()
Range("A2:O25").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
2. Wenn beim SVERWEIS der Wert 0 (kein Inhalt) rauskommt - wie bleibt die betroffene Zelle nach dem Makrodurchlauf auch leer (ohne den "0" Eintrag). Muss sie immer manuell bearbeiten.
Das Makro entstand mit der Hilfe von "Piet" und "Werner", Mitglieder dieses Forums. Danke euch beiden nochmal.
Hier noch die Beispieldatei zum besseren Verständnis:
https://www.herber.de/bbs/user/105609.xlsm
Danke für eure Hilfe

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zusammenführen und Sortieren
17.05.2016 21:17:13
Werner
Hallo Matze,
ich kann im Moment nichts downloaden. Stell mal deine Sverweis Formel hier rein.
Trotzdem den Beitrag auf offen stellen, Haken im Kästchen oben rechts neben dem Feld für das Passwort rein, vielleicht schaut ja wer anders mal rein.
Gruß Werner

AW: Zusammenführen und Sortieren
17.05.2016 21:20:55
Matze
Hallo Werner,
also 2. habe ich fast gelöst: habe einfach bei Excel Optionen die Null deaktiviert. Funktioniert!
Anderes Problem: SVERWEIS mit Datum:
=WENN(ISTFEHLER(SVERWEIS(A2;Tabelle1!$A$1:$F$30;2;0));"";SVERWEIS(A2;Tabelle1!$A$1:$F$30;2;0))
aus 01.01.2016 wird in der Endtabelle 42370. Suche momentan im Internet nach einer Lösung ...
Danke dir Werner

Anzeige
AW: Zusammenführen und Sortieren
17.05.2016 21:48:06
Werner
Hallo Matze,
für Excel ist ein Datum eine normale Zahl. Einfach deine Zielzelle im Format Datum formatieren.
Gruß Werner

AW: Zusammenführen und Sortieren
17.05.2016 21:53:51
Matze
Hallo Werner,
erstmal vorweg, hab's nun geschafft zusammenführen und sortieren zu harmonisieren.
Zum SVERWEIS mit Datum:
Mein Problem ist, dass sich die Zielzelle immer von Datum auf Standard umschaltet, sobald der SVERWEIS durchläuft. Wenn ich es danach manuell ändere geht's.

AW: Zusammenführen und Sortieren
17.05.2016 22:02:27
Werner
Hallo Matze,
kann ich so nicht nachvollziehen, kann wie schon gesagt deine Datei im Moment nicht runter laden.
Bei deiner Excel Version brauchst du zudem Wenn(Istfehler nicht.
=WENNFEHLER(SVERWEIS(A2;Tabelle1!$A$1:$F$30;2;0);"")
Gruß Werner

Anzeige
AW: Zusammenführen und Sortieren
17.05.2016 22:11:57
Matze
Hallo Werner,
Sorry, dass ich dich damit nerve, aber es steht leider immer 42370 drin, anstatt 01.01.2016 sobald das Makro durchläuft. Wenn ich danach auf die Formatierung gehe, ändert sich der Wert in 01.01.2016.
In Tabelle1 steht auch 01.01.2016 - als Datum drin.
Gruß Matze

AW: Zusammenführen und Sortieren
17.05.2016 22:20:28
Werner
Hallo Matze,
ich habe die nächsten zwei Tage keine Möglichkeit mir deine Datei anzusehen.
Ich stelle auf offen, vielleicht schaut jemand rein.
Gruß Werner

AW: Zusammenführen und Sortieren
17.05.2016 23:05:52
Matze
Hallo Werner,
danke dir :)
Ich spiele momentan noch etwas damit herum ... wird wahrscheinlich an folgendem Bereich liegen, dass es nicht das richtige Format übernimmt.
With wsTotal
lngTotalRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("B1:F1").Copy
.Range("B2:F" & lngTotalRow).PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
End With
Danke

Anzeige
AW: Zusammenführen und Sortieren
17.05.2016 23:53:16
Piet
Hallo Matze,
habe gerade erst diesen neuen Thread gesehen, und muss mich erst mal reindenken.
Schaue mir die Sache in Ruhe an und melde mich wieder wenn ich noch Fragen habe.
Bin nicht staendig im Forum, sonst haette ich es eher gesehen.
mfg Piet

AW: Zusammenführen und Sortieren
18.05.2016 00:13:15
Piet
Hallo Matze,
vielleicht habe ich das Problem erkannt, teste es bitte einmal aus.
Von der Logik her muss ein Makro den Bereich "B2:Fxx" auf Standard setzen!
Das geschieht im Makro -Zusammenschreiben- bei diesem Befehl:
wsTotal.UsedRange.Offset(1, 0).Delete - alle Zellen werden Standard
Man könnte dort eingreifen, oder viel einfacher doppelt kopieren:
.Range("B1:F1").Copy
.Range("B2:F" & lngTotalRow).PasteSpecial Paste:=xlPasteAll
.Range("B2:F" & lngTotalRow).PasteSpecial Paste:=xlPasteFormulas
Der doofe Trick ist simpel. Mit dem ersten Befehl kopierst du die ganze Zelle.
Das heisst, auch das Zellenformat von "B1:F1". Der 2. Befehl setzt die Formeln ein.
Probier mal ob es so klappt? Sonst müssen wir die Lösch Routine aendern.
Den UsedRange Bereich aufteilen geht auch, ist aber etwas schwieriger.
Würde mich freuen wenn mein Vorschlag klappt.
mfg Piet

Anzeige
AW: Zusammenführen und Sortieren
18.05.2016 00:19:57
Matze
Hallo Piet,
super, funktioniert - habe heute unzählige Foren durchgelesen ...
Danke dir nochmal :)

AW: Zusammenführen und Sortieren
18.05.2016 00:22:50
Piet
Nachtrag:
mich wundert ein wenig dass das Sortiermakro fehlerfrei laeuft, wegen Key1 = "A1"
Nach meiner Ansicht sollte Key1 auf "A2" stehen. Der 1. Zelle des Sortierbereich.
Man kann .Sort auch ohne Select zusammenschreiben. Günstiger für den Bildschirm.
Sub Schaltfläche1_Klicken()
Range("A2:O25").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Anzeige
AW: Zusammenführen und Sortieren
18.05.2016 22:15:44
Markus
Hallo Piet,
ich hätte noch eine Frage zum Sortieren an dich:
kann man Bereich(momentan A2:O25), welcher sortiert werden soll, auch automatisch anpassen lassen. Also anhand der letzten Zeile in Spalte A?
Sub Schaltfläche1_Klicken()
Range("A2:O25").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Danke

AW: Danke für die Antwort + Gruss an Werner
18.05.2016 00:36:12
Piet
ich bedanke mich für die Antwort und schönen Gruss an Werner.
Er hat ja vor mir aktiv an diesem Thread mit gearbeitet. Ein herzliches Danke von mir.
Zum zahlreiche Foren durchgelesen: - ich bin oft erstaunt wie viele Rückfragen es gibt,
bis ein Problem gelöst ist. Im Clever Forum manchmal über 10 Seiten = 50-60 Rückfragen.
Dann amüsiert es mich immer wieder das ich mit meinen bescheidenen Excel 97 Kenntnissen
doch noch helfen kann. Ich denke das wenige was ich weiss ist richtig gutes Grundwissen.
mfg Piet

Anzeige
AW: Danke für die Antwort + Gruss an Werner
18.05.2016 05:34:56
Werner
Hallo Matze, Hallo Piet,
Problem gelöst -- alles bene!!
Euch weiterhin viel Spass hier, man trifft sich!!
Gruß Werner

167 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige