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

Import zeilenweise aufteilen

Import zeilenweise aufteilen
29.04.2014 18:55:35
Thomas
Hallo Zusammen
Ich hoffe, jemand von Euch hat eine Idee, weil ich bisher keine Lösung gefunden habe.
Also, ich habe eine exportierte csv-Datei welche ich in Excel einlese (Bericht IST). Ab der Zeile 15 werden die Arbeitsstunden aufgelistet. Ab Spalte K können mehrere Maschinen vorkommen oder auch nicht (tippe mal auf max. 5).
Diese Variablen Spalten brauche ich pro jeweiligen Auftrag untereinander aufgelistet in einem neuen Arbeitsblatt (zBsp. Bericht SOLL).
Die Spalte F (Stunden total) brauche ich nicht mehr. Auch die Zeit (Start, Ende, Stunden, Pausenzeit) ist bei den Maschinen nicht relevant. Wichtig ist nur, dass diese unter dem jeweiligen Auftrag aufgelistet werden.
siehe https://www.herber.de/bbs/user/90398.xlsx
Hoffe, dass jemand eine Idee hat.
Danke
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Import zeilenweise aufteilen
30.04.2014 11:52:48
UweD
Hallo
ich hab mal ein Makro dazu gebaut. Das funktioniert bis auf eine Aussnahme...
Option Explicit
Sub TT()
On Error GoTo Fehler
Dim TB1, TB2, i%
Dim S1%, SP%, LR&
Dim TBName$, Z%
Application.ScreenUpdating = False
Set TB1 = Sheets("Bericht IST")
TBName = "Bericht SOLL (2)"
Application.DisplayAlerts = False
Sheets(TBName).Delete
Application.DisplayAlerts = True
Sheets.Add After:=Sheets(Sheets.Count)
Set TB2 = ActiveSheet
TB2.Name = TBName
LR = TB1.Cells(Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte
TB1.Range("1:14").Copy TB2.Range("a1")
Z = 15
With TB1
For i = 15 To LR
If .Cells(i, 7)  "" Then
S1 = 1: SP = 10
.Range(.Cells(i, S1), .Cells(i, SP)).Copy TB2.Cells(Z, 1)
Schleife:
If .Cells(i, SP + 1)  "" Then
S1 = SP + 1: SP = SP + 2
Z = Z + 1
TB2.Cells(Z - 1, 1).Copy TB2.Cells(Z, 1)
TB2.Cells(Z - 1, 7).Copy TB2.Cells(Z, 7)
.Range(.Cells(i, S1), .Cells(i, SP)).Copy TB2.Cells(Z, 9)
GoTo Schleife
End If
Z = Z + 1
End If
Next
End With
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub

Die Ausnahme entsteht durch
Bericht IST
 QRS
23114 Auto m. Anhänger  36




hier ist eine zusätzliche Spalte zwischen Bezeichnung und Wert (R)
Bei allen Anderen steht der Wert direkt in der Folgezelle.
Auch ist der Wert selbst anders (36 anstelle von 54) ?
Gruß UweD

Anzeige
AW: Import zeilenweise aufteilen
30.04.2014 13:04:11
Thomas
Hey UweD
Vielen Dank für deine Arbeit !!
Es gibt keine Fehler. Die Leerspalte und der Zifferunterschied 36 / 54 ist menschliches Versagen von mir. Sollte nicht so sein und bei richtiger Eingabe funzt dein Code einwandfrei.
Vielen, vielen Dank
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige