Anzeige
Archiv - Navigation
1664to1668
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

Spalteneinträge in separate Zeilen schreiben

Spalteneinträge in separate Zeilen schreiben
13.01.2019 16:00:53
Richi
Hallo Zusammen
Irgendwas ging schief bei meiner ersten Anfrage. Darum nochmals der selbe Beitrag.
Wer könnte mir bei einer kniffligen Lösung helfen?
Ich habe ein grössers File welches eine fünfjahres Planung abdeckt(Range A3:NO2993). Zeitstrahl auf Wochenbasis.
Ich möchte folgendes machen:
- Die Auslesung soll in einem separaten ExcelFile "Planungsdaten in Zeilen.xlsx" erstellt werden.
- Musterfile siehe Link. Die gelb hinterlegten Zeilen definieren den jeweiligen Zeitrange einer Fahrzeugüberholung (immer 19 Zeilen). Diese Einträge möchte ich jeweils in einer neuen Zeile hinterlegen.
- Final sollte das File folgende Infos aufweisen siehe Tabelle 2 in Muster.
https://www.herber.de/bbs/user/126673.xlsx
Für eure Hilfe schon jetzt ein herzliches Dankeschön
Gruss Richi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalteneinträge in separate Zeilen schreiben
14.01.2019 18:10:55
Matthias
Moin!
In deiner Beispielmappe sind in Tabelle2 (dem Wunschergebnis) in Spalte 8 und 9 DatumStart und DatumEnde angeben. Die kann ich in den Rohdaten in Tabelle1 nicht finden. Werden die berechnet? Wenn ja wie?
VG
AW: Spalteneinträge in separate Zeilen schreiben
15.01.2019 00:46:33
Richi
Besten Dank Matthias
Das hat geklappt.
Die Formel zur Berechnung des Wochenbeginn (Montag)ist:
"=DATUM(G2;1;1)+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7-WOCHENTAG(DATUM(G2;1;1)+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7;2)+1 G2 = Jahr / F2 = Woche
Die Formel zur Berechnung des Wochenendes (Freitag)ist:
"=DATUM(G2;1;1)+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7-WOCHENTAG(DATUM(G2;1;1)+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7;2)+5 G2 = Jahr / F2 = Woche
Liebe Gruess
Richi
Anzeige
AW: Spalteneinträge in separate Zeilen schreiben
15.01.2019 10:30:30
Matthias
Moin!
Dann hier mal die Anpassung dazu. Schau aber bitte mal. In deinem Beispiel geht bei Zeile 6 der Ergebnisse das Datum am 11.06.19 los. Die Formel und der Kalender sagen aber 10.06.19. Der Ergebnis wird immer noch in Tabelle3 eingetragen. Da der Code etwas breit ist könntenbei den Formel Umbrüche drin sein. Die einfach weider rausmachen.
Sub auswerten()
Dim daten
Dim spalten As Long, zeilen As Long
Dim zeile As Long, spalte As Long
Dim zielzeile As Long
Dim ziel, quelle
Dim ende As Boolean
Dim tempwd As Long, tempfd As Long, tempy As Long, tempm As Long
Application.ScreenUpdating = False
Set ziel = Tabelle3
Set quelle = ActiveSheet
zielzeile = 3
spalten = quelle.Cells(5, quelle.Columns.Count).End(xlToLeft).Column
zeilen = quelle.Cells(quelle.Rows.Count, 1).End(xlUp).Row
daten = quelle.Range(quelle.Cells(1, 1), quelle.Cells(zeilen, spalten))
ziel.Columns("F:G").NumberFormat = "@"
For zeile = 11 To zeilen Step 19
For spalte = 15 To spalten
If daten(zeile, spalte)  "" Then
ziel.Cells(zielzeile, 1) = daten(zeile, 1)
ziel.Cells(zielzeile, 2) = daten(zeile, 2)
ziel.Cells(zielzeile, 3) = daten(zeile, 3)
ziel.Cells(zielzeile, 4) = daten(zeile, 4)
ziel.Cells(zielzeile, 5) = daten(zeile, spalte)
ziel.Cells(zielzeile, 6) = CStr(daten(7, spalte) & "/" & daten(5, spalte))
tempy = daten(5, spalte)
tempm = daten(7, spalte)
tempfd = DateSerial(tempy, 1, 1)
tempwd = Application.WorksheetFunction.Weekday(tempfd, 2)
ziel.Cells(zielzeile, 8) = tempfd + (tempm - IIf(tempwd > 4, 0, 1)) * 7 -  _
Application.WorksheetFunction.Weekday(tempfd + (tempm - IIf(tempwd > 4, 0, 1)) * 7, 2) + 1
'DATUM(G2;1;1)+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7-WOCHENTAG(DATUM(G2;1;1) _
+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7;2)+1
ende = False
Do While spalte  4, 0, 1)) * 7 -  _
Application.WorksheetFunction.Weekday(tempfd + (tempm - IIf(tempwd > 4, 0, 1)) * 7, 2) + 5
'DATUM(G2;1;1)+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7-WOCHENTAG(DATUM(G2;1;1) _
+(F2-WENN(WOCHENTAG(DATUM(G2;1;1);2)>4;0;1))*7;2)+5
zielzeile = zielzeile + 1
End If
Next spalte
Next zeile
Application.ScreenUpdating = True
MsgBox "Fertig"
End Sub
VG
Anzeige
AW: Spalteneinträge in separate Zeilen schreiben
16.01.2019 08:17:23
Richi
Besten Dank Matthias
Läuft wie eine Eis. Super Sache.
Grazzie Mille
Richi
AW: Spalteneinträge in separate Zeilen schreiben
14.01.2019 18:28:25
Matthias
Moin!
Hier noch ein Update:
Der Code macht (bis auf meine letzte Frage) schon das gewünschte. Die Daten werden aber in das Tabellenblatt 3 geschrieben. Da könnte man entweder vorher eine neue Datei anlegen (und die der Variablen Ziel zuweisen) oder das Blatt 3 dann exportieren.
Sub auswerten()
Dim daten
Dim spalten As Long, zeilen As Long
Dim zeile As Long, spalte As Long
Dim zielzeile As Long
Dim ziel, quelle
Dim ende As Boolean
Application.ScreenUpdating = False
Set ziel = Tabelle3
Set quelle = ActiveSheet
zielzeile = 3
spalten = quelle.Cells(5, quelle.Columns.Count).End(xlToLeft).Column
zeilen = quelle.Cells(quelle.Rows.Count, 1).End(xlUp).Row
daten = quelle.Range(quelle.Cells(1, 1), quelle.Cells(zeilen, spalten))
ziel.Columns("F:G").NumberFormat = "@"
For zeile = 11 To zeilen Step 19
For spalte = 15 To spalten
If daten(zeile, spalte)  "" Then
ziel.Cells(zielzeile, 1) = daten(zeile, 1)
ziel.Cells(zielzeile, 2) = daten(zeile, 2)
ziel.Cells(zielzeile, 3) = daten(zeile, 3)
ziel.Cells(zielzeile, 4) = daten(zeile, 4)
ziel.Cells(zielzeile, 5) = daten(zeile, spalte)
ziel.Cells(zielzeile, 6) = CStr(daten(7, spalte) & "/" & daten(5, spalte))
ende = False
Do While spalte 
VG
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige