excel vba msgbox
Nabend, vielleicht kennt sich hier jemand mit vba aus.
Ich habe ein Modul, welches nachdem es gestartet wurde, mehrere Vlookup`s ausführen und die Ergebnisse in einer MsgBox darstellen soll. - Funktioniert, bis man die Application.WorksheetFunktion(..) aktiviert. Es wirft verschiedene Fehler aus, je nachdem was man ändert, meisst ein "Objekt"-Fehler.
Das Modul wird ausgelöst, wenn in der Tabelle in einer beliebigen Zeile (L:L) ein bestimmter Wert ausgegeben wird.
Der Suchbegriff wird über eine Formel in Sheets(1) ausgelöst. Der Code sieht so wüst aus, weil ich verschiedene Dinge probiert habe..
Die Tabelle berechnet sich minütlich neu. Was ich auch nicht rausgefunden habe, ist diese MsgBox nur einmalig nach Auslösen des Events anzeigen zu lassen, aktuell kommt sie jedesmal pro Minute wieder - für jedes Event/Zeile, wo der Wert zutrifft. Und führt zu ziemlich vielen Boxen im Laufe der Zeit.
Sub asd()
Dim LfdNr As Long
Dim Kennzeichen As String
Dim Fahrer As String
Dim Suchbegriff As String
Suchbegriff = "Prüfen!"
Set Status = Range("L8:L1337")
Set Matrix = Range("A8:L1337")
For Each Zelle In Status
If Zelle.Value = Suchbegriff Then
'If Zelle.Value = Suchbegriff And a = False Then
' a = True
Det = Det & Application.WorksheetFunction.VLookup("Prüfen!", Range("A8:L1337"), 1, False)
LfdNr = LfdNr & Application.WorksheetFunction.VLookup(Suchbegriff, Abmeldeliste.Range("A8:L1337"), 1, False)
Det = Det & vbNewLine & "Kennzeichen: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 3, False)
Det = Det & vbNewLine & "Fahrer: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 5, False)
Det = Det & vbNewLine & "Ort: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 8, False)
Det = Det & vbNewLine & "Ankunftszeit: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 11, False)
'MsgBox "Laufende Nummer: " & LfdNr & Det, vbOKOnly + vbInformation, "Details zur Fahrt : "
MsgBox "Details zur Fahrt : " & Det, vbOKOnly + vbInformation, "Achtung!"
Exit For
End If
Next
Exit Sub
End Sub
Dim LfdNr As Long
Dim Kennzeichen As String
Dim Fahrer As String
Dim Suchbegriff As String
Suchbegriff = "Prüfen!"
Set Status = Range("L8:L1337")
Set Matrix = Range("A8:L1337")
For Each Zelle In Status
If Zelle.Value = Suchbegriff Then
'If Zelle.Value = Suchbegriff And a = False Then
' a = True
Det = Det & Application.WorksheetFunction.VLookup("Prüfen!", Range("A8:L1337"), 1, False)
LfdNr = LfdNr & Application.WorksheetFunction.VLookup(Suchbegriff, Abmeldeliste.Range("A8:L1337"), 1, False)
Det = Det & vbNewLine & "Kennzeichen: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 3, False)
Det = Det & vbNewLine & "Fahrer: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 5, False)
Det = Det & vbNewLine & "Ort: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 8, False)
Det = Det & vbNewLine & "Ankunftszeit: " & Application.WorksheetFunction.VLookup(Abmeldeliste.Range("A8:K1337"), 11, False)
'MsgBox "Laufende Nummer: " & LfdNr & Det, vbOKOnly + vbInformation, "Details zur Fahrt : "
MsgBox "Details zur Fahrt : " & Det, vbOKOnly + vbInformation, "Achtung!"
Exit For
End If
Next
Exit Sub
End Sub
Über Ideen, Anregungen oder gar die Lösung würde ich mich sehr freuen.