Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1724to1728
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

Daten splitten funktioniert nicht

Daten splitten funktioniert nicht
26.11.2019 15:12:18
Okan
Guten Tag liebe Excel freunde,
ich habe ein problem, was ich selber nicht lösen kann.
Ich habe ein Makro erstellt, welcher nur bis zu "' Tabellenblatt SAP Split mit Daten füllen" funktioniert und danach in eine Endlosschliefe geht.
Dabei muss ich dann excel sofort beenden.
Hier ist der Code:
Sub process_start()
' DAIMLER Prozess Start
' DAIMLER Daten kopieren und in neue Tabellenblatt einfuegen; Tabellenblatt umbennen in "DAG"
Range("H:I,K:K,Q:Q,D:D,F:F").Select
Range("F1").Activate
Application.CutCopyMode = False
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Cells.Select
Cells.EntireColumn.AutoFit
Sheets("Tabelle1").Select
Sheets("Tabelle1").Name = "DAG"
' Primary Key DAIMLER Tabellenblatt erstellen; Primary Key bis zum letzten Datensatz (Spalte B)  _
ziehen
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
Range("A1").Select
ActiveCell.FormulaR1C1 = "Primary Key"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=RC[3]&""PM-""&RC[1]"
Range("A2").Select
Dim Ende As Long, arr, ze, anz, z
With ActiveSheet
Ende = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("A2").AutoFill Destination:=Range("A2:A" & Ende), Type:=xlFillDefault
End With
' Tabellenblatt DAG kopieren und an Ende stellen; Doppelte Werte DAIMLER Tabellenblatt  _
entfernen; Tabellenblattbezeichnungen aendern; Formel für Spalte F bis zum letzten Datensatz (Spalte A) einfügen
Sheets("DAG").Select
Sheets("DAG").Copy After:=Sheets(4)
Sheets("DAG").Select
Columns("A:G").Select
ActiveSheet.Range("$A:$G").RemoveDuplicates Columns:=1, Header:= _
xlYes
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=SUMIF('DAG (2)'!C[-5]:C,DAG!RC[-5],'DAG (2)'!C)"
Range("F2").Select
With ActiveSheet
Ende = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("F2").AutoFill Destination:=Range("F2:F" & Ende), Type:=xlFillDefault
End With
' Tabellenblatt DAIMLER entfernen
Sheets("DAIMLER").Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
Sheets("SAP Daten").Select
' DAIMLER vorbereitung Prozess Ende
' SAP Daten Vorbereitung Prozess start
' Molsheim Tabellenblatt wird erstellt
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$I").AutoFilter Field:=2, Criteria1:="101263"
Cells.Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Sheets("Tabelle3").Select
Sheets("Tabelle3").Name = "101263"
' Im Tabellenblatt SAP Daten werden die Molsheim Daten gelöscht; Es wird nach Lieferscheinen  "" Then
del = Cells(z, 1)
ship = Cells(z, 2)
w = Cells(z, 3)
anz = Cells(z, 4)
SU = Cells(z, 5)
GI = Cells(z, 6)
Cty = Cells(z, 7)
ame = Cells(z, 8)
shPT = Cells(z, 9)
Sheets("SAP Split").Cells(ze, 1) = del
Sheets("SAP Split").Cells(ze, 2) = ship
Sheets("SAP Split").Cells(ze, 3) = w
Sheets("SAP Split").Cells(ze, 4) = anz
Sheets("SAP Split").Cells(ze, 5) = SU
Sheets("SAP Split").Cells(ze, 6) = GI
Sheets("SAP Split").Cells(ze, 7) = Cty
Sheets("SAP Split").Cells(ze, 8) = ame
Sheets("SAP Split").Cells(ze, 9) = shPT
For i = 1 To UBound(arr, 1)
If w = arr(i, 1) Then
Sheets("SAP Split").Cells(ze, 1) = del
Sheets("SAP Split").Cells(ze, 2) = ship
Sheets("SAP Split").Cells(ze, 3) = arr(i, 2)
Sheets("SAP Split").Cells(ze, 4) = anz
Sheets("SAP Split").Cells(ze, 5) = SU
Sheets("SAP Split").Cells(ze, 6) = GI
Sheets("SAP Split").Cells(ze, 7) = Cty
Sheets("SAP Split").Cells(ze, 8) = ame
Sheets("SAP Split").Cells(ze, 9) = shPT
ze = ze + 1
Sheets("SAP Split").Cells(ze, 1) = del
Sheets("SAP Split").Cells(ze, 2) = ship
Sheets("SAP Split").Cells(ze, 3) = arr(i, 3)
Sheets("SAP Split").Cells(ze, 4) = anz
Sheets("SAP Split").Cells(ze, 5) = SU
Sheets("SAP Split").Cells(ze, 6) = GI
Sheets("SAP Split").Cells(ze, 7) = Cty
Sheets("SAP Split").Cells(ze, 8) = ame
Sheets("SAP Split").Cells(ze, 9) = shPT
'Stop
End If
Next i
ze = ze + 1
End If
Next z
' Primary Key SAP Split Tabellenblatt erstellen; Primary Key bis zum letzten Datensatz (Spalte  _
B) ziehen
Sheets("SAP Split").Select
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
Range("A1").Select
ActiveCell.FormulaR1C1 = "Primary Key"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=RC[1]&RC[3]"
Range("A2").Select
With ActiveSheet
Ende = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("A2").AutoFill Destination:=Range("A2:A" & Ende), Type:=xlFillDefault
End With
' Tabellenblatt SAP entfernen
Sheets("SAP").Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
MsgBox ("Makro abgeschlossen!")
End Sub
Ich bedanke mich im Voraus für eure Hilfe.
Mit freundlichen Grüßen
Okan Firat

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten splitten funktioniert nicht
26.11.2019 15:52:44
UweD
Hallo
Eine Beispieldatei wäre hilfreich.
AW: Daten splitten funktioniert nicht
26.11.2019 17:25:01
onur
Du hast 2 verschachtelte Schleifen (z und i), die je 10.000 mal laufen, also 100.000.000 mal - da wunderst du dich?
For i = 1 To UBound(arr, 1)

Waum eigentlich UBOUND? du weisst doch, dass das Array bis 10.000 geht!
AW: Daten splitten funktioniert nicht
26.11.2019 17:26:31
onur
Du hast 2 verschachtelte Schleifen (z und i), die je 10.000 mal laufen, also 100.000.000 mal - da wunderst du dich?
For i = 1 To UBound(arr, 1)
Waum eigentlich UBOUND? du weisst doch, dass das Array bis 10.000 geht!
AW: Daten splitten funktioniert nicht
26.11.2019 17:55:19
Günther
Moin Okan,
mit Power Query sollte das problemlos möglich sein.
Was mich aber immer wieder den Kopf schütteln lässt: SAP im Einsatz haben aber eine veraltete Office/Excel-Version.
Gruß
Günther
Anzeige
AW: Daten splitten funktioniert nicht
27.11.2019 09:55:24
Okan
Hi,
ich wollte am Ende eigentlich den Bereich arr = Sheets("KombiPack").Range("A1:C1000") sowie den Bereich For z = 1 To 10000 Variabel halten.
Was ich aber nicht verstehe ist, dass wenn ich den Code ' Tabellenblatt SAP Split mit Daten füllen selbstständig in einem anderen Tabellenblatt ausführe, dieser mir binnen Millisekunden das gewünschte Ergebnis mitteilt.
Jedoch hängt sich derselbe Code in dem oben beschriebenen Beispiel auf.
Ich freue mich auf weitere Hinweise.
LG
AW: Daten splitten funktioniert nicht
27.11.2019 10:23:47
onur
„Ich freue mich auf weitere Hinweise“ - Dann solltest du MEINEN nicht auch noch ignorieren.
AW: Daten splitten funktioniert nicht
27.11.2019 11:13:56
Okan
Hi Onur,
ich habe deinen Hinweis berücksichtigt und den Bereich KombiPack auf A1:C3 gesenkt.
Warum der UBound?
Ich musste den Wert i definieren. Hier ein Beispiel:
Ich habe den Datensatz mit den Inhalten:
Packmittel 500X
Dieser Packmittel ist aber ein Kombi. Sprich es besteht aus Packmittel 5001 u. 5000
Ich muss nun den Datensatz duplizieren (untereinander) und jeweils als neues Packmittel 5001 u. 5000 angeben.
Da ich in dem worksheet KombiPack eine Matrix erstellt habe mit 3 Kombipackmittelbezeichnungen und den dazugehörigen jeweils 2 Packmitteln, wollte ich das mit dem UBound lösen.
Anzeige
AW: Daten splitten funktioniert nicht
27.11.2019 11:19:26
onur
Wenn du ein Array von Zeile 1 bis 10000 hast, ist Ubound(arr,1) immer 10000!
AW: Daten splitten funktioniert nicht
27.11.2019 11:32:21
Okan
Hi Onur,
danke. Ich habe das Problem nun Lösen können.
LG

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige