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

Funktionen auch in anderen Tabellenblättern nutzen

Funktionen auch in anderen Tabellenblättern nutzen
13.02.2004 14:11:29
MaddinP
Hallo ich habe folgendes Problem:
ich habe in vba eine Funktion geschrieben, die auch unter anderem aus einem
Tabellenblatt Werte aus Zellen ausliest. Die Funktion geht, so lange ich
sie im gleichen Tabellenblatt wie die Wertetabelle benutze, versuche ich es
aber auf einem anderen Tabellenblatt in der Arbeitsmappe, geht die Funktion
nicht bzw. liefert den Wert 0 zurück

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

Betreff
Datum
Anwender
Anzeige
AW: Funktionen auch in anderen Tabellenblättern nutzen
14.02.2004 11:18:50
Dieter Klemke
Hallo Maddin,
ich vermute, dass du keine Blattadressierung in der Funktion verwendest.
Stell doch deine Funktion mal hier ein, dann kann man sich das mal anschauen.
MfG
Dieter
AW: Funktionen auch in anderen Tabellenblättern nutzen
15.02.2004 19:40:02
MaddinP
Die ganze Funktion hate insgesamt über 2700 Zeilen, deswegen habe ich hier nur eine
Ausschnitt. Die Felder, die hier ausgelesen werden, befinden sich auf einem Tabellen-
blatt mit dem Namen "Kostenmatrix" bzw. Sheet12. Das ganze funktioniert einwandfrei,
wenn ich die funktion im Tabellenblatt Kostenmatrix auch aufrufe, aber leider nicht
in den anderen Tabellenblättern. Ich habe nirgendwo gefunden, wie ich mit vba auf
andere Tabellenblätter zugreife, als das gerade aktive Tabellenblatt.
Dim gewicht As Integer
Dim preis As Long
Dim Faktor5t As String
Dim Faktor10t As String
Dim Faktor15t As String
Dim FaktorMaxt As String
Dim Sgew5t As Long
Dim Sgew10t As Long
Dim Sgew15t As Long
Dim SgewMaxt As Long
Dim entfernung As String

Function lkosten(gewicht, entfernung)
If entfernung > 1 And entfernung <= 40 Then
lkosten = lkosten40(gewicht)
ElseIf entfernung > 40 And entfernung <= 75 Then
lkosten = lkosten75(gewicht)
ElseIf entfernung > 75 And entfernung <= 100 Then
lkosten = lkosten100(gewicht)
ElseIf entfernung > 100 And entfernung <= 150 Then
lkosten = lkosten150(gewicht)
ElseIf entfernung > 150 And entfernung <= 200 Then
lkosten = lkosten200(gewicht)
ElseIf entfernung > 200 And entfernung <= 250 Then
lkosten = lkosten250(gewicht)
ElseIf entfernung > 250 And entfernung <= 300 Then
lkosten = lkosten300(gewicht)
ElseIf entfernung > 300 And entfernung <= 350 Then
lkosten = lkosten350(gewicht)
ElseIf entfernung > 350 And entfernung <= 400 Then
lkosten = lkosten400(gewicht)
ElseIf entfernung > 400 And entfernung <= 500 Then
lkosten = lkosten500(gewicht)
ElseIf entfernung > 500 And entfernung <= 600 Then
lkosten = lkosten600(gewicht)
ElseIf entfernung > 600 And entfernung <= 700 Then
lkosten = lkosten700(gewicht)
ElseIf entfernung > 700 And entfernung <= 800 Then
lkosten = lkosten800(gewicht)
ElseIf entfernung > 800 And entfernung <= 900 Then
lkosten = lkosten900(gewicht)
ElseIf entfernung > 900 And entfernung <= 1000 Then
lkosten = lkosten1000(gewicht)
ElseIf entfernung > 1000 And entfernung <= 1100 Then
lkosten = lkosten1100(gewicht)
ElseIf entfernung > 1100 And entfernung <= 1200 Then
lkosten = lkosten1200(gewicht)
ElseIf entfernung > 1200 Then
lkosten = manuell
End If
End Function


Function lkosten40(gewicht)
Faktor5t = Range("C64").Value
Faktor10t = Range("C65").Value
Faktor15t = Range("C66").Value
FaktorMaxt = Range("C67").Value
Sgew5t = Range("C69").Value
Sgew10t = Range("C70").Value
Sgew15t = Range("C71").Value
SgewMaxt = Range("C72").Value
If gewicht > 1 And gewicht <= 10 Then
lkosten40 = Range("C2").Value
ElseIf gewicht > 10 And gewicht <= 20 Then
lkosten40 = Range("C3").Value
End Funtion

Anzeige
AW: Funktionen auch in anderen Tabellenblättern nutzen
15.02.2004 23:23:29
Dieter Klemke
Hallo Maddin,
einer der großen Vorteil von VBA gegenüber einem manuellen Benutzer ist es, dass VBA auf Blätter zugreifen kann, die nicht aktiv sind.
Du nimmst an deiner Funktion konsequent die folgenden Ergänzungen vor:

Function lkosten40(gewicht)
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Kostenmatrix")
Faktor5t = ws.Range("C64").Value
Faktor10t = ws.Range("C65").Value
Faktor15t = ws.Range("C66").Value
FaktorMaxt = ws.Range("C67").Value
Sgew5t = ws.Range("C69").Value
Sgew10t = ws.Range("C70").Value
Sgew15t = ws.Range("C71").Value
SgewMaxt = ws.Range("C72").Value
If gewicht > 1 And gewicht <= 10 Then
lkosten40 = ws.Range("C2").Value
ElseIf gewicht > 10 And gewicht <= 20 Then
lkosten40 = ws.Range("C3").Value
End Function

MfG
Dieter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige