Für fehlende Tage Zeilen einfügen
Hallo
Bin Neuling was VBA angeht, darum diese Frage.
Beim Googlen leider nicht fündig geworden.
In meiner Spalte A mit Datum fehlen Tage davor und danach um das Jahr voll zu machen.
z.b die Datums vom 1.2.2008 bis 30.11.2008 sind vorhanden, jedoch für den Januar fehlen die 31 Zeilen und die Tage ebenso für den Dezember.
Wie kann ich durch ein Marco die fehlenden Tage ermitteln und dafür Zeilen und Datum einfügen lassen. Datumsbeginn ist variabel.
Eventueller zusatz Datenreihe mit lücken.
Für eine Lösung bedanke ich mich im voraus.
Mfg
Hubert der Solardatenauswerter
Antwort schreiben
Antwort 1 von Saarbauer vom 19.12.2020, 09:49 Options
Hallo,
muss du unbedingt ein Makro haben?
Du könntest auch in der vorhandenen Tabelle 31 Zeilen ( oder auch mehr) ab 1.2.08 markieren unf dann über Zeilen einfügen den entsprechenden Platz schaffen, anschliessend die ersten paar Zeilen vom Februar markieren und nach oben ziehen. Jetzt überflüssige Zeilen löschen.
Für den Zeitraum bis Jahresende gleiche Prozedur am Tabellenende
Sonst sind etwas genauere Angaben zum Tabellenaufbau erforderlich oder Beispiel
Gruß
Helmut
Antwort 2 von Wetterigel vom 19.12.2020, 22:11 Options
Hallo Helmut
Danke für deine Antwort.
Händisch wie vorgeschlagen habe ich es bisher gemacht und habe auch kein Problem damit.
Möchte in Zukunft diese Arbeit mir abnehmen lassen von einem Makro.
In die Exceltabelle werden Daten aus einer Solaranlage öffters eingelesen die danach ausgewertet werden.
Die Tabelle besteht aus 10 Spalten die verschiedene Werte enthalten.
In Spalte A steht immer das Datum. Die Datenreihe beginnt aber nie mit dem 1.1.2008 und endet auch nicht mit dem 31.12.2008.
Dies wird aber für meine weitere Auswertungstabell aber so benötigt.
Für jeden Tag im Jahr eine Zeile.
Gruß Hubert
Antwort 3 von Saarbauer vom 20.12.2020, 11:22 Options
Hallo,
versuch es mal hiermit
Sub Datum()
Zeilen = Range("A2").Value - DateSerial(Year(Range("A2").Value), 1, 1) + 1
If Zeilen > 1 Then
Rows("2:" & Zeilen).Select
Selection.Insert Shift:=xlDown
Range("A" & Zeilen + 1 & ":A" & Zeilen + 2).Select
Selection.AutoFill Destination:=Range("A2:A" & Zeilen + 2), Type:=xlFillDefault
End If
Letzte_Zeile = Range("A65536").End(xlUp).Row + 1
Zeilen = DateSerial(Year(Range("A2").Value), 12, 31) - DateSerial(Year(Range("A2").Value), 1, 1) + 2
If Zeilen > Letzte_Zeile Then
Range("A" & Letzte_Zeile - 2 & ":A" & Letzte_Zeile - 1).Select
Selection.AutoFill Destination:=Range("A" & Letzte_Zeile - 2 & ":A" & Zeilen), Type:=xlFillDefault
End If
End Sub
ich gehe davon aus, dass du das Makro einpflegen kannst
Gruß
Helmut
Antwort 4 von Wetterigel vom 20.12.2020, 18:04 Options
Hallo Helmut,
danke für dein Makro. Es funktioniert toll.
Nochmals Vielen Dank
Mfg Hubert