mal funktionierts, mal nicht...
20.08.2007 12:00:27
Hubitz
jaja ich weiss, der Betreff ist äußerst aussagekräftig, aber was besseres ist mir am Montag "morgen" nicht eingefallen.
Folgendes Problem:
Das folgende Makro ist voll funktionsfähig, läuft und überbringt mir den/die gesuchten Werte aus meiner Tabelle.
ABER:
regelmäßig zeigt mit das Makro eine #WERT! Fehlermeldung an. wenn ich nun in die Makro-Zelle doppel klicke und ENTER drücke, ist alles wieder gut...
WANN tritt der Fehler auf fragt Ihr Euch? naja, meistens nur wenn ich von einem Tabellenblatt in ein anderes wechsele. durch die application.volatile sollte das Makro ja eigentlich auf veränderugen reagieren...
Fällt Euch dazu was ein?
Hier das makro:
Function Getriebeauswahl(Übersetzung As Integer, Leistung As Double) As Double
' Makro ermittelt die Baugröße und die Stufenzahl
' anhand der Übersetzung und Nennleistung. Werte aus Tabelle "Nennleistung P2N"
Dim Bereich1 As Integer ' Zeilengrenze oben
Dim Bereich2 As Integer ' Zeilengrenze unten
Dim x As Double ' Laufzeitstring Zeile
Dim y As Integer ' Laufzeitstring Spalte
Dim i As Integer ' Laufzeitvariable Spalte
Dim N As Integer ' Laufzeitvariable Zeile
Dim Getriebetyp As Integer ' Auswahl Stirnradgetriebe / Kegelstirnrad
Application.Volatile
Getriebetyp = Worksheets("Getriebe").[U9].Value
If Getriebetyp = "1" Then 'Stirnradgetriebe
Bereich1 = "94"
Bereich2 = "131"
Else ' Kegelstirnradgetriebe
Bereich1 = "49"
Bereich2 = "87"
End If
'####################### Auswahl der Übersetzung ####################
For i = Bereich1 To Bereich2
x = Worksheets("Getriebe").Cells(i, 1).Value
' x = Zelleninhalt aus Spalte 1 (Übersetzung) Zeile "Bereich1 - _
Bereich2"
Do While Übersetzung = y ' Durchlauf der Zeile i Spaltenweise
If y 0 Then ' Abfrage auf leeren Zelleninhalt
'####################### Auswahl der Stufenzahl ###########################
Worksheets("Getriebe").Cells(i, N).Activate 'Aktivierung der Zelle zum Auslesen _
der Schriftfarbe
If ActiveCell.Font.ColorIndex = 1 Then ' Schriftfarbe SCHWARZ
Sheets("Getriebe").[E29].Value = "2"
ElseIf ActiveCell.Font.ColorIndex = 3 Then ' Schriftfarbe ROT
Sheets("Getriebe").[E29].Value = "3"
ElseIf ActiveCell.Font.ColorIndex = 5 Then ' Schriftfarbe BLAU
Sheets("Getriebe").[E29].Value = "4"
End If
Getriebeauswahl = Worksheets("Getriebe").Cells(48, N).Value ' Auslesen der _
Getriebebaugröße aus Zeile 48 Spalte N
ElseIf y = 0 Then
GoTo step
End If
Exit Function
Loop
step:
Next N
End Function
über Ideen freut sich
Hubitz