Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Wenn ein Wert aus Zelle B19:O19 < 10 dann


Betrifft: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 09:35:59

Hallo wie kann ich mit Vba den wert der Zellen von B19.O19 abfragen, das dieser kleiner 10 ist ?

In zelle B19-O19 wird der Wert per Formel =WENN(E8="";"";WENN(K1größer17;(HEUTE()-E8+365);(HEUTE()-E8+180))) errechnet.

Für eure Hilfe bin ich sehr dankbar.

Als 2. Frage Hätte ich dann: Ist es möglich auf einem anderen tabellenblatt (welches namen aus Zelle B2 des aktiven tabellenblatts hat) zuzugreifen und diesen rot zu färben wenn die zahl kleiner 10 ist und wieder schwarz wenn kein wert oder größer 10?

  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Werner
Geschrieben am: 25.01.2019 12:14:00

Hallo Philip,

so:

Public Sub Test()
'Blattname anpassen
With Worksheets("Tabelle1")
    If WorksheetFunction.CountIf(.Range("B19:O19"), "<" & 10) > 0 Then
        MsgBox "Hier dann dein weiterer Code"
    Else
        MsgBox "Hier dann keine Ahnung"
    End If
End With
End Sub
Gruß Werner


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 12:46:08

Wenn ich den Code über F5 ausführe funktioniert es. Allerdings weißt er mich nicht darauf hin Wenn ich nur in der Mappe bin


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Werner
Geschrieben am: 25.01.2019 13:01:05

Hallo Philip,

mit der Aussage kann ich nichts anfangen. Was meinst du mit Allerdings weißt er mich nicht darauf hin Wenn ich nur in der Mappe bin?

Frage:
Wo hast du den Code? Im Codemodul eines Tabellenblattes?
Der Code gehört in ein allgemeines Modul.

Wie sieht der Code aus, den du aktuell in Benutzung hast?

Gruß Werner


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 13:15:45

Der Code befindet sich in dem Arbeitsblatt "Muster EBT"
Wenn ich jetzt in das Blatt gehe und in der Zeile B19 ändert sich der Werkt auf Kleiner 10 passiert nichts.

Ich habe mir jetzt überlegt das es am besten wäre wenn er die Messagebox über ein Makro (button) auf einem anderen Arbeitsblatt aufruft. Würde das gehen?
Ich muss dazu sagen (Muster Ebt) wird kopiert und es entstehen weitere Blätter mit anderem Namen. Diese möchte ich dann über den Button alle abfragen, falls das möglich ist

Private Sub Test()
'Blattname anpassen
With Worksheets("MusterEBT")
    If WorksheetFunction.CountIf(.Range("B19:O19"), "<" & 10) > 0 Then
        MsgBox "Hier dann dein weiterer Code"
    Else
        'Nichts
    End If
End With
End Sub



  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Werner
Geschrieben am: 25.01.2019 13:21:02

Hallo Philip,

dann kopier das Makro doch, wie schon geschrieben, in ein allgemeines Modul. Auf irgendeinem Blatt kannst du dir dann einen Button erstellen und diesem Button dann das Makro zuweisen.

Gruß Werner


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 13:34:42

Hallo Werner,

Wie kann ich denn das Makro auf alle Tabellen beziehen die namentlich in "Tabelle EBT" (B:B) stehen?

hast du da eine lösung?
Mit dem Makro habe ich soweit hinbekommen das der aufruf für das eine Blatt funktioniert.


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 13:40:26

Hallo Werner,

Wie kann ich denn das Makro auf alle Tabellen beziehen die namentlich in "Tabelle EBT" (B:B) stehen?

hast du da eine lösung?
Mit dem Makro habe ich soweit hinbekommen das der aufruf für das eine Blatt funktioniert.


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Werner
Geschrieben am: 25.01.2019 13:59:43

Hallo Philip,

was ich mich Frage, warum das häppchenweise kommt.

Public Sub Test()
Dim i As Long, strBlattname As String

With Worksheets("Tabelle EBT")
    loLetzte = .Cells(.Rows.Count, 2).End(xlUp).Row
    For i = 1 To loLetzte
        strBlattname = .Cells(i, 2)
        With Worksheets(strBlattname)
            If WorksheetFunction.CountIf(.Range("B19:O19"), "<" & 10) > 0 Then
                MsgBox "Wert kleiner 10 in Tabelle " & strBlattname
            Else
                MsgBox "Hier dann keine Ahnung"
            End If
        End With
    Next i
End With
End Sub
Gruß Werner


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 14:10:00

Tut mir leid, das liegt daran das ich noch nicht so weiß was alles möglich ist.
Als du dann sagtest das das über ein Modul aufgerufen werden muss, dachte ich das es dann besser wäre wenn ich das über einen Button machen kann.

Bei dem Code kommt jetzt der Fehler das Worksheets(strBlattname) außerhalb des Bereichs liegt. Ich denke das liegt daran das nicht alle Namen dort auch eine Tabelle haben. Kann mann in den Code schreiben wenn ein name keine Tabelle hat nur die nehmen die er findet?

Ich danke dir schonmal vielmals bis hierhin :)


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Werner
Geschrieben am: 26.01.2019 05:54:11

Hallo Philip,

so:

Public Sub Test()
Dim i As Long, strBlattname As String, ws As Worksheet
 
With Worksheets("Tabelle EBT")
    loLetzte = .Cells(.Rows.Count, 2).End(xlUp).Row
    For i = 1 To loLetzte
        strBlattname = .Cells(i, 2)
        For Each ws In ThisWorkbook.Worksheets
            If ws.Name = strBlattname Then
                With ws
                    If WorksheetFunction.CountIf(.Range("B19:O19"), "<" & 10) > 0 Then
                        MsgBox "Wert kleiner 10 in Tabelle " & ws.Name
                    Else
                        MsgBox "Hier dann keine Ahnung"
                    End If
                End With
                Exit For
            End If
        Next ws
    Next i
End With
End Sub
Gruß Werner


  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 28.01.2019 08:59:38

Super besten Dank :)


  

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T. von: Werner
Geschrieben am: 28.01.2019 11:09:20




  

Betrifft: AW: Wenn ein Wert aus Zelle B19:O19 < 10 dann von: Philip
Geschrieben am: 25.01.2019 13:01:12

Oder kann ich mit einem Makro von einem anderen Tabellenblatt die Abfrage Public Sub Test() starten?