Hallo zusammen,
das Problem ist, dass ich vom Excel Arbeitsblatt auf VBA verweisen möchte und wenn man es dann schafft in den code zu kommen, hüpft der nach zwei variablendefinitionen in ein anderes Sub. Code:
Function Test(ByRef a As Range, ByRef Datum As Range) As Variant
Dim Answer1 As Variant
Dim Answer2 As Variant
Dim b As Range
Dim Wert As Long
Dim NeuePos As Range
Test = " "
NeuePos = a.Column + 3
b = Application.Cells(5, NeuePos)
Wert = a.Value
If Eingabe = True Then
Answer1 = InputBox("Bitte geben Sie Ihre tatsächliche Arbeitszeit vom " & Datum.Value & " ein." & (Chr(13)) & "[hh]:[mm]", "Zeitabfrage", Wert)
If Answer1 <> "" Then
Answer2 = Left(Answer1, 2) & ":" & Mid(Answer1, 4, 2)
Else
Eingabe = False
End If
End If
Test = Answer2
End Function
Sub Aktualisieren_Klicken()
Dim objRange As Range
'Set objRange = Application.Range(Cells(3, 26), Cells(33, 26))
Set objRange = Application.Cells(3, 26)
objRange.Dirty
Set objRange = Application.Cells(4, 26)
objRange.Dirty
Set objRange = Application.Cells(5, 26)
objRange.Dirty
Set objRange = Application.Cells(6, 26)
objRange.Dirty
Set objRange = Application.Cells(7, 26)
objRange.Dirty
Set objRange = Application.Cells(8, 26)
objRange.Dirty
Eingabe = True
End Sub
In VBA läuft der erstmal in diese Befehle:
Test = " "
NeuePos = a.Column + 3
und hier beginnt das wilde springen. Nach bisher ungeklärtem Schema springt der nun nach hier:
Set objRange = Application.Cells(4, 26)
objRange.Dirty
oder hier:
Set objRange = Application.Cells(6, 26)
objRange.Dirty
dann läuft der ganz ruhig das Sub Aktualisieren durch (Was übrigens eigentlich nur ein Button ist, der Spalte Z kontrollieren soll ob bereits ein Wert eingetragen wurde und variable "Eingabe" auf Wahr setzt. Die ist übrigens im Option Explicit deklariert, was vor einer Zeit kein Problem war. Wenn der nun die Sub eigentlich zuende hat, springt der willkürlich wieder zum Sub Anfang und läuft durch bis zu seinem Anfangspunkt. Aber anstatt wieder in die erste Function zu springen und endlich zu machen was er soll hört der einfach auf und gibt in der Zelle einen Wert Fehler aus.
Die Formel kann es eigentlich nicht sein, weil alles was die macht ist prüfen ob die Zelle VBA also den Benutzer braucht und ob der Wert von der Spalte wo auf die Function verweist mit =Wenn(Länge(Z3)=4;;Z3) zu beauftragen. Aber es kommt kein Ergebnis sondern wie gesagt nur Wert.
In Z3 steht folgendes:=Test(A3;'T&A Tagesbericht'!F3) was ja nur Variablenwerte übergibt.
Zwischenzeitlich hat es mal soweit funktioniert, dass der das Input fenster aufruft, aber das macht der wie gesagt nicht mehr und ich habe keine Ahnung, was nun dazu geführt hat.
Ich bin ratlos, bitte helft mir, da sitze ich schon ein halbes Jahr dran ohne Erfolg.
Viele Grüße
Träumerin
das Problem ist, dass ich vom Excel Arbeitsblatt auf VBA verweisen möchte und wenn man es dann schafft in den code zu kommen, hüpft der nach zwei variablendefinitionen in ein anderes Sub. Code:
Function Test(ByRef a As Range, ByRef Datum As Range) As Variant
Dim Answer1 As Variant
Dim Answer2 As Variant
Dim b As Range
Dim Wert As Long
Dim NeuePos As Range
Test = " "
NeuePos = a.Column + 3
b = Application.Cells(5, NeuePos)
Wert = a.Value
If Eingabe = True Then
Answer1 = InputBox("Bitte geben Sie Ihre tatsächliche Arbeitszeit vom " & Datum.Value & " ein." & (Chr(13)) & "[hh]:[mm]", "Zeitabfrage", Wert)
If Answer1 <> "" Then
Answer2 = Left(Answer1, 2) & ":" & Mid(Answer1, 4, 2)
Else
Eingabe = False
End If
End If
Test = Answer2
End Function
Sub Aktualisieren_Klicken()
Dim objRange As Range
'Set objRange = Application.Range(Cells(3, 26), Cells(33, 26))
Set objRange = Application.Cells(3, 26)
objRange.Dirty
Set objRange = Application.Cells(4, 26)
objRange.Dirty
Set objRange = Application.Cells(5, 26)
objRange.Dirty
Set objRange = Application.Cells(6, 26)
objRange.Dirty
Set objRange = Application.Cells(7, 26)
objRange.Dirty
Set objRange = Application.Cells(8, 26)
objRange.Dirty
Eingabe = True
End Sub
In VBA läuft der erstmal in diese Befehle:
Test = " "
NeuePos = a.Column + 3
und hier beginnt das wilde springen. Nach bisher ungeklärtem Schema springt der nun nach hier:
Set objRange = Application.Cells(4, 26)
objRange.Dirty
oder hier:
Set objRange = Application.Cells(6, 26)
objRange.Dirty
dann läuft der ganz ruhig das Sub Aktualisieren durch (Was übrigens eigentlich nur ein Button ist, der Spalte Z kontrollieren soll ob bereits ein Wert eingetragen wurde und variable "Eingabe" auf Wahr setzt. Die ist übrigens im Option Explicit deklariert, was vor einer Zeit kein Problem war. Wenn der nun die Sub eigentlich zuende hat, springt der willkürlich wieder zum Sub Anfang und läuft durch bis zu seinem Anfangspunkt. Aber anstatt wieder in die erste Function zu springen und endlich zu machen was er soll hört der einfach auf und gibt in der Zelle einen Wert Fehler aus.
Die Formel kann es eigentlich nicht sein, weil alles was die macht ist prüfen ob die Zelle VBA also den Benutzer braucht und ob der Wert von der Spalte wo auf die Function verweist mit =Wenn(Länge(Z3)=4;;Z3) zu beauftragen. Aber es kommt kein Ergebnis sondern wie gesagt nur Wert.
In Z3 steht folgendes:=Test(A3;'T&A Tagesbericht'!F3) was ja nur Variablenwerte übergibt.
Zwischenzeitlich hat es mal soweit funktioniert, dass der das Input fenster aufruft, aber das macht der wie gesagt nicht mehr und ich habe keine Ahnung, was nun dazu geführt hat.
Ich bin ratlos, bitte helft mir, da sitze ich schon ein halbes Jahr dran ohne Erfolg.
Viele Grüße
Träumerin
"Der Visual Basic ist nur so schlau wie der, der davor sitzt" - Na schön! Dann steh ich eben auf!
"Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True
"Wenn du denkst es geht nicht mehr kommt irgendwo ein Lichtlein her"
If Tunnel.Licht = JemandImTunnelDerVerzweifeltIst Then Licht.Aus = True