Anzeige
Archiv - Navigation
1792to1796
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

Monat aktualisieren unter Bedingung

Monat aktualisieren unter Bedingung
25.11.2020 09:55:06
Tamara
Hallo liebe Community,
da ich an diesen Problem schon länger sitze und keine Lösung finde, wende ich mich hier an euch.
Folgende Situation liegt vor: Es werden nur zwei Spalten einer Tabelle betrachtet. Die eine Spalte enthält Datumsangaben im Format MM.JJJJ und die andere Spalte enthält Statusangaben (von 0%-100%) und auch das Wort "Realisiert".
Nun sollen am Anfang eines jeden Monats (z.B. Anfang Oktober) alle Angaben mit dem vorherigen Monat (z.B. September) abgeändert werden in den aktuellen Monat (z.B. Oktober) unter der Bedingung, dass in der zweiten Spalte nicht "realisiert steht sondern eine Prozentzahl. Dies soll automatisch oder per Button geschehen.
Habt ihr Ideen wie ich das realisieren kann?
Anbei noch ein kleines Beispiel wie das aussieht:
Realisierung I Status
Jan 20 I Realisiert
Okt 20 I Realisiert
Dez 20 I 90%
Nov 20 I 100%

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nachfrage
25.11.2020 10:38:14
ralf_b
d.h. du möchtest das das Datum in den Zellen geändert wird, wo nebenan eine Prozentzahl steht?
wie oft wird die Datei am Tag genutzt?
AW: nachfrage
25.11.2020 10:50:59
Tamara
Ja richtig. Aber nur die Daten die im vorherigen Monat liegen sollen in den aktuellen Monat geändert werden. Also wenn wir Oktober 2020 haben sollen alle September 2020 Daten in den Oktober 2020 umgewandelt werden, falls eine Prozentzahl in der Spalte daneben steht.
Die Datei bzw. die Tabelle ist eine aus mehreren Tabellen angefügte Tabelle (mit PowerQuery). An diesen "Quellentabellen" wird täglich gearbeitet. Jedoch wird die Tabelle selbst nur zweimal bis dreimal in der Woche aktualisiert und direkt genutzt.
Anzeige
PowerQuery na dann
25.11.2020 11:58:22
ralf_b
werden sich bestimmt bald die PQ spezies hier drauf stürzen.
Wenn die Tabelle aktualisiert wird, sind die Spalten von denen wir reden auch importiert?
Wenn die Datei Makrocode enthält muß sie im format xlsm abgespeichert werden.
Somit ändert sich der Dateiname. Das könnte zum Problem werden wenn andere Prozesse darauf zugreifen wollen. Alternativ müsste der Code von außerhalb der Datei darauf zugreifen.
hiermmal ein Makro das in Spalte A und B die Werte sucht. Spalten sind einfach anpassbar.
Es wird ausgeführt wenn das Arbeitsblatt aktiviert wird.
Der code prüft ob es der 1.des Monats im aktuellen Jahr ist.
Dann arbeitet er sich durch die Datumsspalte.
Steht ein Datum drin und liegt das datum im Vormonat, dann wird auf Text ungleich "realisiert" geprüft. In dem Fall wird das Datum auf den aktuellen Monat angepasst.
einfügen mit rechtsklick auf Tabellennamen, code anzeigen. einfügen
Private Sub Worksheet_Activate()
Dim l As Long
Dim spalteDatum  As String
Dim spalteStatus As String
spalteDatum = "A"
spalteStatus = "B"
If Date = DateSerial(Year(Date), Month(Date), 1) Then
For l = 1 To Cells(Rows.Count, spalteDatum).End(xlUp).Row
If IsDate(Cells(1, spalteDatum)) And DateDiff("m", Cells(l, spalteDatum), Date) = 1 Then
If Cells(l, spalteStatus).Value  "realisiert" Then
Cells(l, spalteDatum).Value = DateSerial(Year(Cells(l, spalteDatum)), Month(Date),  _
Day(Cells(l, spalteDatum)))
End If
End If
Next l
End If
End Sub

Anzeige
AW: PowerQuery na dann
25.11.2020 12:31:57
Tamara
Ich hab mal versucht den Code zu übernehmen, jedoch wird mir bei der zweiten Zeile (" Dim 1 As Long") ein "Fehler beim Kompilieren" angezeigt. Ich habe die Option Explicit aktiviert. Liegt es daran? Wie kann ich den Fehler beheben?
AW: PowerQuery na dann
25.11.2020 12:39:28
peterk
Hallo
Dim L nicht Dim 1
Ein kleines L als Variable erzeugt unleserlichen und fehleranfälligen Code
AW: PowerQuery na dann
25.11.2020 12:54:45
Tamara
Vielen Dank! Ich habe den Code jetzt übernommen und kann erst zum 01.12 dann sehen ob es funktioniert. Bin gespannt!
AW: PowerQuery na dann
25.11.2020 12:58:53
ralf_b
ne du kannst das auch gleich prüfen.
die eins ist der Vergleichstag. einfach auf 25 ändern
und sorry wegen dem kleinen L. ich hab auch option explicit gesetzt.
If Date = DateSerial(Year(Date), Month(Date), 1) Then

hier mal mit dem üblichen i

Private Sub Worksheet_Activate()
Dim i As Long
Dim spalteDatum  As String
Dim spalteStatus As String
spalteDatum = "A"
spalteStatus = "B"
If Date = DateSerial(Year(Date), Month(Date), 1) Then
For i = 1 To Cells(Rows.Count, spalteDatum).End(xlUp).Row
If IsDate(Cells(i, spalteDatum)) And DateDiff("m", Cells(i, spalteDatum), Date) = 1 Then
If Cells(i, spalteStatus).Value  "realisiert" Then
Cells(i, spalteDatum).Value = DateSerial(Year(Cells(i, spalteDatum)), Month(Date), _
_
Day(Cells(i, spalteDatum)))
End If
End If
Next i
End If
End Sub

Anzeige
AW: PowerQuery na dann
01.12.2020 09:25:19
Tamara
Hallo Ralf,
leider war ich die letzten Tage krank und konnte den korrigierten Code erst jetzt prüfen. Beim Durchführen wird mir der "Laufzeitfehler 13: Typen unverträglich" angezeigt.
Wie kann ich diesen Fehler beheben?
AW: PowerQuery na dann
01.12.2020 09:56:34
ralf_b
und in welcher Zeile oder bei welchem Codeteil tritt der Fehler auf?
AW: PowerQuery na dann
01.12.2020 16:28:57
Tamara
Es wird mir nicht angezeigt an welcher Stelle des Codes der Fehler eintritt. Wie kann ich das herausfinden?
AW: PowerQuery na dann
01.12.2020 16:58:41
ralf_b
normalerweise bleibt der Debugger auf der Codezeile stehen in der der Fehler auftritt und diese wird Gelb markiert.
Formellösung xl365/xlWeb
25.11.2020 15:51:49
lupo1
Die hat den Vorteil, dass man gleich sieht, ob man das korrekte auf die Quelle überkopieren wird.
E1:
=LET(
ab;A1:INDEX(B:B;ANZAHL2(A:A));
a;INDEX(ab;;1);
b;INDEX(ab;;2);
WENN((WENNFEHLER(DATEDIF(a;HEUTE();"M");)=1)*(b"realisiert");
WAHL({1.2};a+32-TAG(a+31);"realisiert");ab))

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige