Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Befüllen von leeren Zellen
#1
Hallo zusammen,
ich habe eine Tabelle in der nach Eintragung von Start- und Enddatum Zellen befüllt werden sollen. Dabei soll ein Forecast für das aktuelle Geschäftsjahr erstellt werden. Nach Eintragung der Datumswerte soll identifiziert werden, inwiefern der Zeitraum in dem Geschäftsjahr (Okt. 2018 - Sept. 2019) liegt. Mir ist es soweit gelungen, den Anfang und das Ende des Zeitraums zu identifizieren, jedoch gelingt es mir nicht die dazwischen befindlichen Zellen zu füllen.

ich hänge mal ein Bild zur Verdeutlichung des Problems an.

Ich habe auch schon versucht mit einer For Each-Schleife und mit Offset die leeren Felder zu identifizieren und füllen, jedoch habe ich dabei noch einen Denkfehler, sodass ab der ersten ausgefüllten Zelle die komplette Zeile bis Spalte 23 bzw. W ausgefüllt wird.

Danke für eure Hilfe!

Code:
Sub Forecast()

Dim startMonat As Long
Dim startJahr As Long
Dim endMonat As Long
Dim endJahr As Long
Dim startDatum As Date
Dim endDatum As Date
Dim Zeile As Long
Dim ZeileMax As Long
Dim rngZelle As Range

ZeileMax = Worksheets("GJ_18_19").Cells(Rows.Count, 2).End(xlUp).Row

For Zeile = 7 To ZeileMax

startDatum = Cells(Zeile, 6)
endDatum = Cells(Zeile, 7)

startMonat = Month(startDatum)
startJahr = Year(startDatum)
endMonat = Month(endDatum)
endJahr = Year(endDatum)

If startMonat < 10 And startJahr = 2018 Then Cells(Zeile, 12) = Cells(Zeile, 11) / 35

If startMonat = 10 And startJahr = 2018 Then Cells(Zeile, 12) = Cells(Zeile, 11) / 35
If startMonat = 11 And startJahr = 2018 Then Cells(Zeile, 13) = Cells(Zeile, 11) / 35
If startMonat = 12 And startJahr = 2018 Then Cells(Zeile, 14) = Cells(Zeile, 11) / 35
If startMonat = 1 And startJahr = 2019 Then Cells(Zeile, 15) = Cells(Zeile, 11) / 35
If startMonat = 2 And startJahr = 2019 Then Cells(Zeile, 16) = Cells(Zeile, 11) / 35
If startMonat = 3 And startJahr = 2019 Then Cells(Zeile, 17) = Cells(Zeile, 11) / 35
If startMonat = 4 And startJahr = 2019 Then Cells(Zeile, 18) = Cells(Zeile, 11) / 35
If startMonat = 5 And startJahr = 2019 Then Cells(Zeile, 19) = Cells(Zeile, 11) / 35
If startMonat = 6 And startJahr = 2019 Then Cells(Zeile, 20) = Cells(Zeile, 11) / 35
If startMonat = 7 And startJahr = 2019 Then Cells(Zeile, 21) = Cells(Zeile, 11) / 35
If startMonat = 8 And startJahr = 2019 Then Cells(Zeile, 22) = Cells(Zeile, 11) / 35
If startMonat = 9 And startJahr = 2019 Then Cells(Zeile, 23) = Cells(Zeile, 11) / 35

If endMonat > 9 And endJahr = 2019 Then Cells(Zeile, 23) = Cells(Zeile, 11) / 35

If endMonat = 10 And endJahr = 2018 Then Cells(Zeile, 12) = Cells(Zeile, 11) / 35
If endMonat = 11 And endJahr = 2018 Then Cells(Zeile, 13) = Cells(Zeile, 11) / 35
If endMonat = 12 And endJahr = 2018 Then Cells(Zeile, 14) = Cells(Zeile, 11) / 35
If endMonat = 1 And endJahr = 2019 Then Cells(Zeile, 15) = Cells(Zeile, 11) / 35
If endMonat = 2 And endJahr = 2019 Then Cells(Zeile, 16) = Cells(Zeile, 11) / 35
If endMonat = 3 And endJahr = 2019 Then Cells(Zeile, 17) = Cells(Zeile, 11) / 35
If endMonat = 4 And endJahr = 2019 Then Cells(Zeile, 18) = Cells(Zeile, 11) / 35
If endMonat = 5 And endJahr = 2019 Then Cells(Zeile, 19) = Cells(Zeile, 11) / 35
If endMonat = 6 And endJahr = 2019 Then Cells(Zeile, 20) = Cells(Zeile, 11) / 35
If endMonat = 7 And endJahr = 2019 Then Cells(Zeile, 21) = Cells(Zeile, 11) / 35
If endMonat = 8 And endJahr = 2019 Then Cells(Zeile, 22) = Cells(Zeile, 11) / 35
If endMonat = 9 And endJahr = 2019 Then Cells(Zeile, 23) = Cells(Zeile, 11) / 35

'For Each rngZelle In Range("L" & Zeile & ":W" & ZeileMax)
'    If rngZelle <> "" And rngZelle.Offset(0, 1) = "" Then
'        rngZelle.Offset(0, 1) = rngZelle
'    End If
'Next rngZelle
   
Next Zeile

End Sub
Antworten Top
#2
Zitat:ich hänge mal ein Bild zur Verdeutlichung des Problems an.
Da ist kein Bild. Aber erspar bitte dir und uns die Mühe eines Bildes und hänge eine anonymisierte Beispielmappe an, das hilft wesentlich mehr.

Und wieso arbeitest du nicht einfach mit Formeln?
Schöne Grüße
Berni
Antworten Top
#3
Hier eine Beispielmappe.

Es muss nicht unbedingt VBA sein, jedoch habe ich bisher die anderen Funktionen auch über VBA gemacht, welche soweit gut funktioniert haben.
Gerne kann es auch eine Lösung mit Formeln sein!
Antworten Top
#4
Tja, ich kann nach wie vor keine Datei sehen.
Schöne Grüße
Berni
Antworten Top
#5
Hallo Jonas,

Zitat:Da ist kein Bild. Aber erspar bitte dir und uns die Mühe eines Bildes und hänge eine anonymisierte Beispielmappe an, das hilft wesentlich mehr.

... ich schließe mich diesen Ausführungen meines Vorredners an.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#6
Oh Entschuldigung, ich hatte vergessen "Attachment hinzufügen" zu klicken. Nun müsste die Datei hochgeladen sein.


Angehängte Dateien
.xlsx   Beispielmappe.xlsx (Größe: 10,17 KB / Downloads: 11)
Antworten Top
#7
Grundsätzlich würde ich mit dieser Formel arbeiten:

Code:
=WENN(ODER(MONAT($F7)=MONAT(H$6);MONAT($G7)=MONAT(H$6));$K7/35;"")
Wobei zB in F7 das Startdatum und in H6 der Monat steht. Schreibe dazu nicht "Okt. 18" sondern 01.10.2018 und formatiere es einfach so, dass es als Okt. 18 angezeigt wird.
Schöne Grüße
Berni
Antworten Top
#8
Vielen Dank schon mal für die Formel, habe deinen Vorschlag umgesetzt! Wie bekomme ich jedoch hierbei die "Zwischenräume" gefüllt. Sprich der MA ist von Jan 19 bis April 19 angestellt, dann wird in der Tabelle der Zellenwert in Spalte Jan 19 und April 19 ausgefüllt, die Zellen für Feb 19 und März 19 bleiben hierbei ja leer.

Hintergrund ist der, dass ich die Zellenwerte addieren und mit einem Stundensatz multiplizieren will für die Gesamkosten. Sprich wenn der MA 4 Monate in dem Geschäftsjahr angestellt ist, sollen auch 4 Zellen ausgefüllt werden.
Antworten Top
#9
So?
Code:
=WENN(ODER(UND(MONAT($F7)<=MONAT(H$6);JAHR($F7)=JAHR(H$6));UND(MONAT($G7)>=MONAT(H$6);JAHR($G7)=JAHR(H$6)));$K7/35;"")
Schöne Grüße
Berni
Antworten Top
#10
Hallo Jonas.

Hier wäre ein etwas anderer Ansatz.

Ich habe in Deinem Beispiel eine leere Oktober '19 Spalte P angefügt und dort diese Formel eingebaut:

WENN(UND(O5>0;DATUM(JAHR(P$3);MONAT(P$3);1)<=$C5);O5;"")

Erst ziehst Du diese in Spalte P über alle Zeilen nach unten. Und dann innerhalb jeder Zeile bis zu der ersten zu füllenden Zelle nach links. Die Zelle mit dem Anfangswert darfst Du aber nicht überschreiben. 

So werden Zeilen-weise alle Zwischenräume aufgefüllt. 

Ein Beispiel im Anhang. Dort habe ich das bis Zeile 11 ausgeführt. 

Ich hoffe es hilft.

LG Peter


Angehängte Dateien
.xlsx   111 Forum 2018.10.08 Zellen zwischendurch füllen.xlx.xlsx (Größe: 11,94 KB / Downloads: 1)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste