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.

Benutzerdefinierte Daten finden - VBA
#1
Hallo zusammen,

Ich suche in einer Spalte nach dem Größtwert einer Zahl. Die Formatierung der Zelle ist benutzerdefiniert mit einem angestellten Buchstaben (z.B. gebe ich in die Zelle 35 ein und er zeigt mir 35A an).

Mein Code sieht wie folgt aus:

Code:
Dim c As Range
Dim maxName as Variant

With Worksheets("Tabelle1").Range("L28:L35")

    Set c = .Find(Application.WorksheetFunction.Max(Worksheets("Tabelle1").Range("L28:L35")), LookIn:=xlValues)

    If Not c Is Nothing Then

    MaxName = c.Offset(0, -1)

    End If

End With

Das seltsame ist, dass der Code meist beim ersten Ausführen funktioniert und dann plötzlich nicht mehr. Dann bringt Excel den Laufzeitfehler 91; Objektvariable oder With-Blockvariable nicht festgelegt.

Es scheint in jedem Fall mit der benutzerdefinierten Einstellung zusammenzuhängen. Setze ich die Formatierung der Zellen auf "Standard" funktioniert das Makro nämlich auch bei mehrmaligem Start anstandslos. Kann mir jemand erklären wo der Fehler liegt und wie ich den Code entsprechend ändern muss, damit er auch bei der benutzerdefinierten Zellformatierung immer ohne Fehler läuft? Dr. Google hat mir leider nicht weiter geholfen.

Danke und Gruß
Sebbo
Antworten Top
#2
Hallo Sebbo,

bei mir funktioniert es auch mit der Formatierung sowohl mit Deinem Code als auch mit diesem:

Code:
With Worksheets("Tabelle1").Range("K28:L35")
  maxName = Application.Index(.Columns, Application.Match(Application.Max(.Columns(2)), .Columns(2), 0), 1)
End With

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Sebbo
Antworten Top
#3
Hallo Uwe,

vielen Dank für deine Hilfe und sorry für die späte Rückmeldung!

Ich verstehe den Fehler immer noch nicht, aktuell tritt er aber auch nicht mehr auf. Gott weiß warum...
Danke das du es geprüft hast!

Viele Grüße
Sebbo
Antworten Top


Gehe zu:


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