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

Zeile einfügen Daten übernehmen

Zeile einfügen Daten übernehmen
16.05.2021 16:59:12
Werner
Hallo zusammen,
wer kann mir helfen?
Meine Tabelle hat Daten aus einem Protokoll das maschinell erstellt wird.
Um eine genaue Auswertung der Anlage zu gewährleisten benötige ich
jedoch eine Tabelle pro Tag für 24h (also 96 Zeilen) immer im Abstand von
15 Minuten.
Mein Problem ist, dass die Quelltabelle Lücken (fehlende Zeilen) hat.
Diese fehlenden Zeilen möchte ich per VBA einfügen und diese neue Zeile automatisch
mit der fehlenden Uhrzeit und den Werten der restlichen Zeile aus der vorherigen Zeile auffüllen.
s. Foto
Eine Beispieltabelle habe ich beigefügt.
Vielen Dank für Eure Hilfe im voraus.
LG Werner

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile einfügen Daten übernehmen
16.05.2021 17:03:55
Werner
Userbild
AW: Zeile einfügen Daten übernehmen
16.05.2021 17:04:26
Hajo_Zi
Hallo Werner,
Die Datei sehe ich nicht.
Mit Fotos kann Excel wenig anfangen. Da bist Du auch im falschen Forum.
GrußformelHomepage
AW: Zeile einfügen Daten übernehmen
16.05.2021 17:09:10
Werner
Hallo Hajo,
sorry bin neu hier.
habe jetzt die Beispiel Tabelle und das Foto (wie es aussehen soll) beigefügt.
Danke
Anzeige
Raus kein Datum in A
16.05.2021 17:19:14
Hajo_Zi
Hallo Werner,
das ist mir zu aufwendig. In Spalte A steht kein Datum sondern Text der aussieht wie ein Datum.
Dies wäre auch nur mit VBA möglich, was in Deinmer Datei nicht geht.
Gruß Hajo
AW: Zeile einfügen Daten übernehmen
16.05.2021 17:06:57
Werner
Userbild
AW: Zeile einfügen Daten übernehmen
16.05.2021 17:42:03
Nepumuk
Hallo Werner,
teste mal:
Code:

[Cc]

Option Explicit Public Sub InsertMissingRows() Dim lngRow As Long Dim dtmNextTime As Date, dtmPreviousTime As Date Dim avntTemp As Variant With Worksheets("RMB Report") For lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row To 3 Step -1 dtmNextTime = CDate(Split(.Cells(lngRow, 1).Value, " ")(1)) dtmPreviousTime = CDate(Split(.Cells(lngRow - 1, 1).Value, " ")(1)) If Round(CDbl(dtmNextTime - dtmPreviousTime), 4) > _ Round(CDbl(TimeSerial(0, 15, 0)), 4) Then Call .Rows(lngRow).Insert avntTemp = Split(.Cells(lngRow - 1, 1).Value, " ") .Cells(lngRow, 1).Value = avntTemp(0) & _ Format$(dtmPreviousTime + TimeSerial(0, 15, 0), " Hh:Nn ") & avntTemp(2) Call .Range(.Cells(lngRow - 1, 2), .Cells(lngRow - 1, 10)).Copy( _ Destination:=.Cells(lngRow, 2)) lngRow = lngRow + 1 End If Next End With End Sub

Gruß
Nepumuk
Anzeige
AW: Zeile einfügen Daten übernehmen
17.05.2021 13:56:17
Werner
Vielen Dank an alle die sich gemeldet haben und Ihre Hilfe angeboten haben.
Hallo Nepomuk
erstmal herzlichen Dank für deinen VBA Code !
Habe es ausprobiert und war zunächst überrascht wie gut es funktioniert hat.
Leider habe ich bei der Überprüfung feststellen müssen, dass meine Quelltabelle noch weitere Probleme hat.
Es fehlen nicht nur einzelne Zeilen sondern teilweise fehlen zwei oder mehr hintereinander folgende Zeilen und dazu kommt noch
dass die Quelltabelle auch mal zwischendurch ganz komische Zeit-Zeilen hat die überhaupt nicht in den 15 Min. Rhythmus passen.
Diese Zeilen sollten dann entfernt werden. Ziel sollte sein eine saubere Tabelle 24/h pro Tag mit 15 Min Abstand.
Kannst du mir nochmal helfen.
Ich habe heute vorsichtshalber mal die gesamte Quelltabelle neu (Betirebsdaten-2021-04.xlm hochgeladen.
Vielen Vielen Dank
LG W
Anzeige
AW: Zeile einfügen Daten übernehmen
17.05.2021 15:37:58
Nepumuk
Hallo Werner,
in deiner Mappe ist etwas komisch.
In der Zeilen 1948 steht:
26.04.2021, 05:31 Uhr
In der Zeile 1949 steht:
27.04.2021, 06:16 Uhr
Da würde mein neues Makro x Zeilen einfügen. Ist das Ok?
Gruß
Nepumuk
AW: Zeile einfügen Daten übernehmen
17.05.2021 17:03:16
Werner
Hallo Nepomuk,
ja das ist richtig, an diesem Tag gab es eine Störung in der Kommunikation, das kommt selten vor soll
aber dann genau so behandelt werden als ob die Zeiten in der Tabelle fehlen (also x Zeilen einfügen).
Danke
Anzeige
AW: Zeile einfügen Daten übernehmen
17.05.2021 18:09:28
Nepumuk
Hallo Werner,
teste mal:
Code:

[Cc]

Option Explicit Public Sub InsertMissingRows() Dim lngRow As Long, lngStartMinute As Long, lngRuningtMinute As Long Dim dblQuater As Double Dim dtmNextTime As Date, dtmPreviousTime As Date Dim avntTemp As Variant dblQuater = Round(CDbl(TimeSerial(0, 15, 0)), 4) With Worksheets("RMB Report") lngStartMinute = Minute(CDate(Split(.Cells(2, 1).Value, " ")(1))) For lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row To 3 Step -1 lngRuningtMinute = Minute(CDate(Split(.Cells(lngRow, 1).Value, " ")(1))) If lngRuningtMinute <> lngStartMinute And lngRuningtMinute <> lngStartMinute + 15 And _ lngRuningtMinute <> lngStartMinute + 30 And lngRuningtMinute <> lngStartMinute + 45 Then Call .Rows(lngRow).Delete End If Next For lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row To 3 Step -1 avntTemp = Split(.Cells(lngRow, 1).Value, " ") dtmNextTime = CDate(Left$(avntTemp(0), 10) & " " & avntTemp(1)) avntTemp = Split(.Cells(lngRow - 1, 1).Value, " ") dtmPreviousTime = CDate(Left$(avntTemp(0), 10) & " " & avntTemp(1)) If Round(CDbl(dtmNextTime - dtmPreviousTime), 4) > dblQuater Then Call .Rows(lngRow).Insert .Cells(lngRow, 1).Value = Format$(dtmPreviousTime + _ TimeSerial(0, 15, 0), "dd.mm.yyyy, Hh:Nn ") & "Uhr" Call .Range(.Cells(lngRow - 1, 2), .Cells(lngRow - 1, 10)).Copy( _ Destination:=.Cells(lngRow, 2)) lngRow = lngRow + 2 End If Next End With End Sub

Gruß
Nepumuk
Anzeige
AW: Zeile einfügen Daten übernehmen
18.05.2021 01:58:49
Werner
Hallo Nepomuk
herzlichesten Dank für Deine Hilfe
klappt jetzt wunderbar.
Vielen Vielen Dank
LG bleib gesund
Werner
AW: Zeile einfügen Daten übernehmen
20.05.2021 16:35:03
Werner
Hier die Fehlermeldung
Userbild
AW: Zeile einfügen Daten übernehmen
16.05.2021 20:49:10
Günther
Moin,
falls es (aus welchen Gründen auch immer) VBA nicht sein soll, dann geht es in deiner Version auch mit Power Query. Verschiedene Mausklicks, eine etwas komplexere Formel (84 Zeichen ☺) und genügend Experimentierfreude sind erforderlich. Das Ergebnis (nicht die Lösung) kannst du hier in meiner Cloud nachlesen.
 
Gruß
Günther  |  mein Excel-Blog
-.-.-.-

Da ich mich nicht mehr über den "eigenwilligen" Hindernislauf beim Foren-Upload ärgern will, stelle ich meine Uploads hier nur noch in meiner DE-Cloud zur Verfügung. Den Link findest du im Beitrags-Text. Abrufe sind natürlich freiwillig und werden selbstredend nicht ausgewertet.


Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige