409 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (737 Punkte)
Hallo guten Tag, bräuchte wieder mal eure Hilfe.

vba wenn in Zelle F8, F9, F10 usw. =HEUTE()-10 und in Zelle K8, K9, K10 usw. die Zahl kleiner als 2 dann soll in Zelle K8, K9, K10 usw. der Text "fällig" erscheinen. Danke

17 Antworten

0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)

Hallo M.O. danke aber ich habe mich nicht richtig ausgedrückt.

Private Sub Workbook_Open()
Dim lngZeile As Long
Dim lngLetzte As Long
'Name der Tabelle anpassen!
With Worksheets("Tabelle2")
  'letzte beschriebene Zeile in Spalte F feststellen
  lngLetzte = .Cells(Rows.Count, 6).End(xlUp).Row
  'alle Zeilen ab Zeile 8 durchlaufen
  For lngZeile = 8 To lngLetzte
    If .Cells(lngZeile, 6).Value = DateSerial(Year(Now), Month(Now), Day(Now) - 10) And .Cells(lngZeile, 11).Value < 2 Then Cells(lngZeile, 11) = "fällig" 
Wenn in Spalte J8, J9, J10 usw. die Zahl grösser als 100 ist, soll in Zelle K8, K9, K10 usw. kein Text "fällig" eingetragen werden. Obiger Makro soll bleiben, zb: 
And .Cells(lngZeile, 11).Value < 2 Then Cells(lngZeile, 11) = "fällig"
  Next lngZeile
End With
End Sub
Danke
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jelena,

wenn du im Makro den Teil wie beschrieben in

And .Cells(lngZeile, 11).Value < 100 Then Cells(lngZeile, 11) = "fällig"

änderst, dann wird nur bei Beträgen kleiner 100 das Wort fällig in die Spalte J geschrieben. Das ist doch was du wolltest. Oder habe ich das etwas falsch verstanden?

Gruß

M.O.

0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)
Bearbeitet von jelena

Hallo M.O. ich bräuchte dieses Makro so:

Sub faellig()
Dim lngZeile As Long
Dim lngLetzte As Long

'Name der Tabelle anpassen!
With Worksheets("Hauptformular")
  'letzte beschriebene Zeile in Spalte F feststellen
  lngLetzte = .Cells(Rows.Count, 6).End(xlUp).Row

  'alle Zeilen ab Zeile 8 durchlaufen
  For lngZeile = 8 To lngLetzte
    If .Cells(lngZeile, 6).Value <= DateSerial(Year(Now), Month(Now), Day(Now) - 10) And .Cells(lngZeile, 11).Value < 2 Then Cells(lngZeile, 11) = "fällig"

'UND wenn in Zelle J8, J9, J10 usw. die Zahl >=100 steht dann keinen Text auch wenn Datum älter als 10 Tage ab HEUTE().
  Next lngZeile
End With

End Sub         Danke.

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jelena,

da hatte ich wohl auf der Leitung gestanden sad.

Ändere die IF-Zeile wie folgt:

If .Cells(lngZeile, 6).Value <= DateSerial(Year(Now), Month(Now), Day(Now) - 10) And .Cells(lngZeile, 11).Value < 2 And .Cells(lngZeile, 10).Value < 100 Then .Cells(lngZeile, 11) = "fällig"

Gruß

M.O.

0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)

Hallo M.O. Guten morgen und Danke. Ich hätte da noch eine Bitte. 

Private Sub Workbook_Open() ist bei mir schon vorhanden, wie kann ich das lösen. Der Rest passt genau. Danke

+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Jelena,

kopiere den Code einfach in das vorhandene Makro, z.B. an den Anfang (rote Schrift = schon vorhandener Code):

Private Sub Workbook_Open()
Dim lngZeile As Long
Dim lngLetzte As Long

'Name der Tabelle anpassen!
With Worksheets("Tabelle2")
  'letzte beschriebene Zeile in Spalte F feststellen
  lngLetzte = .Cells(Rows.Count, 6).End(xlUp).Row

  'alle Zeilen ab Zeile 8 durchlaufen
  For lngZeile = 8 To lngLetzte
    If .Cells(lngZeile, 6).Value <= DateSerial(Year(Now), Month(Now), Day(Now) - 10) And .Cells(lngZeile, 11).Value < 2 And .Cells(lngZeile, 10).Value < 100 Then .Cells(lngZeile, 11) = "fällig"
  Next lngZeile
End With

'... hier kommt dann dein bereits vorhandener Code

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)
Hallo M.O. vielen vielen Dank.
...