Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion in Makro aufrufen

Funktion in Makro aufrufen
02.03.2019 15:28:08
Hans
Hallo zusammen,
ich habe eine Funktion geschrieben, die auch super funktioniert:
Function num_einheiten(land As String)
' Gibt an wieviele Einheiten in dem Land stehen
Application.Volatile
Dim b As Range
Dim a As Integer
With Worksheets("Eingabe").Range("D21:D62")
Set b = .Find(land, LookIn:=xlValues)
End With
num_einheiten = WorksheetFunction.Max(Range(Cells(b.Row, 5), Cells(b.Row, 10)))
End Function

Wenn ich diese jedoch in diesem Makro aufrufe, wird der Wert dieser Funktion immer verzögert berechnet. Erst nach mehrfachem Klicken in einer anderen Zell erscheint dann plötzlich der korrekte Wert. Was mach ich beim Aufruf der Funktion falsch?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As Integer
Application.EnableEvents = False
'Länder befüllen in Spalte V
If Not Intersect(Target, Range("N36")) Is Nothing Then
Sheets("Eingabe").Cells(36, 17) = ""
a = WorksheetFunction.Min(num_einheiten(Range("N36")), 3)
Range("N39").Value = a
End If
Application.EnableEvents = True
End Sub

Fehlt hier eine bestimmte Zeile?
Viele Grüße und danke
Chritsian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion in Makro aufrufen
02.03.2019 16:16:46
Hans
Es ist komisch. Wenn ich erneut in die Zelle N36 klicke, dann wird die Funktion ausgeführt.
AW: Funktion in Makro aufrufen
02.03.2019 16:27:33
onur

If Not Intersect(Target, Range("N36")) Is Nothing Then

Das Selection_Change-Event soll nur auf N36 reagieren? Was soll das bringen?
AW: Funktion in Makro aufrufen
02.03.2019 16:43:07
Sulprobil
Hallo Hans,
Was willst Du erreichen, bitte?
Du kannst doch einfach in Eingabe!N39 schreiben:
=MIN(3;MAX(INDEX(E21:E62;VERGLEICH(N36;D21:D62;0)):INDEX(J21:J62;VERGLEICH(N36;D21:D62;0))))
Viele Grüße,
Bernd P
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige