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
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
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
Top


Gehe zu:


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