Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro in Funktion

Makro in Funktion
11.12.2003 11:52:00
Frank
Hallo,
ich habe mir ein Makro in folgende Funktion umgewandelt:


Function Dienst(zelle) As Integer
Dim z As Integer
Application.Volatile
'range(F9).select (stand vorher im Makro)
Do While ActiveCell.Borders(xlEdgeBottom).LineStyle <> xlNone
If Left(ActiveCell.Value, 1) = "F" And _
ActiveCell.Offset(1, -5).Value = "Angestellter" And _
ActiveCell.Offset(4, 0).Value <> "U" And _
ActiveCell.Offset(4, 0).Value <> "K" And _
ActiveCell.Offset(4, 0).Value <> "FA" And _
ActiveCell.Offset(4, 0).Value <> "FT" Then _
z = z + 1
ActiveCell.Offset(28, 0).Select
Loop
End Function

Wenn ich die Funktion mit Dienst(F9) ausführe, wird leider nichts berechnet.
Was mache ich falsch ? Als Makro lief alles einwandfrei.
Gruß
Frank

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveCell --> zelle
11.12.2003 11:55:30
Galenzo
Hallo,
ändere mal alle "ActiveCell" in deiner Funktion in "zelle".
Die Funktion soll ja mit der Zelle F9 arbeiten, die du ja als Parameter übergibst. Momentan tut's sie's jedoch noch mit der aktiven Zelle.

mfg
AW: ActiveCell --> zelle
11.12.2003 12:35:50
Frank
Hallo Galenzo,
ich habe alles geändert. Wenn ich die Funktion eingebe fängt er an zu rechnen und hört
nicht mehr auf. Wie kann das sein ?
Gruß
Frank
AW: ActiveCell --> zelle
11.12.2003 14:25:59
Galenzo
Hallo,
ja - dein ursprüngliches Makro durchläuft mehrere Zellen eines Bereiches und tut irgendwas, wenn eine Zelle einen bestimmten Rahmen hat - so wie ich das sehe.
Wenn du sowieso nur EINE Zelle prüfst, brauchst du diese WHILE-Schleife garnicht.

Also sollte auch so geh'n - ohne jetzt zu hinterfragen, was du mit dieser Funktion bezweckst....


Function Dienst(zelle) As Integer
Application.Volatile
if zelle.Borders(xlEdgeBottom).LineStyle <> xlNone And _
zelle.Value, 1) = "F" And _
zelle.Offset(1, -5).Value = "Angestellter" And _
zelle.Offset(4, 0).Value <> "U" And _
zelle.Offset(4, 0).Value <> "K" And _
zelle.Offset(4, 0).Value <> "FA" And _
zelle.Offset(4, 0).Value <> "FT" Then _
Dienst = 1
End Function


mfg
Anzeige
AW: ActiveCell --> zelle
11.12.2003 14:31:33
Frank
Hallo Galenzo,
ich brauche diese Funktion um in einem Dienstplan die Anzahl bestimmter Dienste zu zählen. Mit einer Formel geht es nicht. Ich brauche die while schleife deshalb schon.
Das Makro läuft ja schnell, deshalb wundert es mich warum die Funktion nicht mehr aufhört
zu berechnen.
Gruß
Frank
AW: Makro in Funktion
11.12.2003 11:55:35
GerdW
Eine Funktion ist dazu da, einen Wert zu berechnen und zurückzugeben.
In deinem Fall den Wert von Dienst.
Warum solls überhaupt eine Funktion sein?

Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige