PDA

Vollständige Version anzeigen : Excel2000 versus Excel2003


hurricane65
14.07.2006, 22:26
Moin Forum,
habe in Excel 2003 SP3 eine Anwendung erstellt die funzt ohne Probleme. Die gleiche Anwendung läuft auf einem Rechner mit Excel 2000 nicht insofern eine Fehlermeldung kommt die besagt das etwas nicht gefunden wurde. Gibt es bei den Versionen einen generellen Unterschied? weil der VBA-Code in 2000 wird nach dem debuggen nicht bemängelt??? Für Eure Hilfe im voraus schon mal vielen Dank.

jinx
15.07.2006, 01:53
<font size="2" face="Century Gothic">Moin, Michael,

ja nein vielleicht ;) Gibt Excel auch einen etwas genaueren Text bei der Fehlermeldung aus, oder erscheint nur die winkende Flagge mit dem Hinweis: keine Bearbeitung möglich? :grins: (Okay, die Fehlermeldung gibt es meines Wissens noch nicht ;))

Hast Du in der VBE schon einmal die Verweise an der Version überprüft?</font>

hurricane65
15.07.2006, 09:49
Moin jinx,
ja nein vielleicht Gibt Excel auch einen etwas genaueren Text bei der Fehlermeldung aus, oder erscheint nur die winkende Flagge mit dem Hinweis: keine Bearbeitung möglich? (Okay, die Fehlermeldung gibt es meines Wissens noch nicht ) Es ist immer wieder eine Freude Deine Beiträge in diesem Forum zu lesen :grins:

Die Verweise sind bei beiden Versionen gleich. Hab den möglichen Fehler gefunden :upps: Aus welchen Gründen auch immer ist die formatierung in den Zellen in der gesucht wird ein Sonderformat in Chinesisch(VR China) :mad: K.A. warum dies so ist. Werd es Montag nochmal in der Firma überprüfen. Falls dies nicht der Fehler ist werd ich mich nochmal melden.

hurricane65
17.07.2006, 14:14
Moin zusammen,
tja, an der Formatierung lag's nett :mad: Der Fehler ist immer noch da!
@jinx, würdest Du die Datei bei Dir mal testen? Ich weiss nicht warum der Fehler nur in der Firma entsteht?

jinx
17.07.2006, 17:45
<font size="2" face="Century Gothic">Moin, Michael,

mit welcher Version, wenn das Betriebssystem Windows XP Pro/Home ist?</font>

MyPass
17.07.2006, 21:36
Der Text der Fehlermeldung dürfte ein ziemliches Geheimnis sein *gg* - zumindest kann ich den im Thread nirgends finden!

Ciao
MyPass

hurricane65
18.07.2006, 13:55
Moin zusammen,
muss mich ein wenig korrigieren.habe in Excel 2003 SP3... es muss Excel 2002 SP3 heissen.
@jinx Die Version bei mir ist Excel 2002 SP3, BS ist WinXp Pro 5.1.2600 Service Pack 2 Build 2600
In der Firma haben wir WinNT.Ich versuch's aber nochmal. Daten werden über Array eingelesen, müsste Dir, jinx, bekannt vor kommen ;) Sub ArrayAusfallZeiten()

Dim dteStart As Date
Dim dteEnde As Date
Dim myArray() As Variant
Dim lngArrCounter As Long
Dim lngLastRow As Long
Dim lngCounter As Long
Dim lngFoundRow As Long
Dim lngFillCol As Long
Application.ScreenUpdating = False
dteStart = Worksheets("Schichtplan").Range("G4").Value
dteEnde = DateSerial(Year(dteStart), Month(dteStart) + 1, 0)
With Worksheets("Abwesenheitsliste")
lngLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
ReDim myArray(1 To lngLastRow, 1 To 5)
For lngCounter = 2 To lngLastRow
If .Cells(lngCounter, 4).Value >= dteStart And .Cells(lngCounter, 4).Value <= dteEnde Or _
.Cells(lngCounter, 5).Value >= dteStart And .Cells(lngCounter, 5).Value <= dteEnde Then
lngArrCounter = lngArrCounter + 1
myArray(lngArrCounter, 1) = .Cells(lngCounter, 1).Value
myArray(lngArrCounter, 2) = .Cells(lngCounter, 2).Value
If .Cells(lngCounter, 4).Value < dteStart Then
myArray(lngArrCounter, 3) = dteStart
Else
myArray(lngArrCounter, 3) = .Cells(lngCounter, 4).Value
End If
If .Cells(lngCounter, 5).Value > dteEnde Then
myArray(lngArrCounter, 4) = dteEnde
Else
myArray(lngArrCounter, 4) = .Cells(lngCounter, 5).Value
End If
myArray(lngArrCounter, 5) = .Cells(lngCounter, 8).Value
End If
Next lngCounter
End With

If lngArrCounter = 0 Then aktualisieren
With Worksheets("Schichtplan")
Application.EnableEvents = False
.Range("G8:AK199").ClearContents
Application.EnableEvents = True
For lngCounter = LBound(myArray) To lngArrCounter
On Error Resume Next
lngFoundRow = .Range("A1:A350").Find(myArray(lngCounter, 1), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Row
If Not .Cells(lngFoundRow, 2).Value = myArray(lngCounter, 2) Then
lngFoundRow = .Range("A1:A350").Find(myArray(lngCounter, 1), After:=.Cells(lngFoundRow, 1), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Row
End If
If Err <> 0 Then
MsgBox "Personalnummer " & myArray(lngCounter, 1) & " nicht vorhanden, bitte prüfen.", vbCritical, "Hinweis"
Err.Clear
Else
For lngFillCol = Day(myArray(lngCounter, 3)) To Day(myArray(lngCounter, 4))
.Cells(lngFoundRow, 6 + lngFillCol).Value = UCase(myArray(lngCounter, 5))
Next lngFillCol
End If
Next lngCounter
End With
Application.ScreenUpdating = True
Change
End Sub
Dabei kommt dann der Fehler das die Personalnummer nicht vorhanden sein soll. Dies passiert aber nur in der Firma :mad: Und ich hab immer noch k.a. warum??

jinx
18.07.2006, 18:05
<font size="2" face="Century Gothic">Moin, Michael,

ein Blick in meine Excel-Partition auf meinem Rechner belehrt mich ganz shcnell, dass ich mehr als einen Code aus anderer Leute Codings zusammengestellt habe, manchmal auch etwas unter zuhilfenahme der verbliebenen grauen Masse. Mit dem Hintergrund des Aufrufs und der Daten könnte das Geheimnis vielleicht gelüftet werden - selbst unter Windows XP Pro SP 2 und Excel2000 SP 3... ;)</font>

hurricane65
18.07.2006, 20:28
Moin jinx,
habe mir erlaubt Dir die Mappe zu schicken :) hoffe Du findest damit diesen merkwürdigen Fehler :)

jinx
19.07.2006, 05:14
<font size="2" face="Century Gothic">Moin, Michael,

wenn ich nur die Steuerelemente betätige, mit dem der Code ausgelöst wird, passiert bei mir unter Excel2000 nur das, was soll. Gibt es eine bestimmte Situation, in der es bei Dir zum fehlerhaften Verhalten kommt? Oder meinst Du die Mitteilung, dass die Personalnummer nicht gefunden wird im August 2006? Ich benötige bitte etwas genauere Angaben, da ich keine Zeit habe, eine Anwendung komplett durchzutesten (kann man ja schon an der Reaktion auf diesen Beitrag ersehen). ;)</font>

hurricane65
19.07.2006, 13:48
Moin jinx,
sorry für meine sperrlichen Informationen zur Fehlerbeschreibung.
dass die Personalnummer nicht gefunden wird im August 2006 genau dies meine ich. Wobei ich, wenn ich Ehrlich bin, nur den August getestet habe. Aber da kommt auf dem Firmenrechner der Fehler das die PersNr nicht vorhanden sei. Dies passiert wenn ich den Spinbutton zum Monatswechsel nutze. Und auf meinem Rechner läuft's ohne Probleme mmh..?

jinx
20.07.2006, 05:24
<font size="2" face="Century Gothic">Moin, Michael,

die Find-Methode wurde zwischen XL9 und XL10 um einen Parameter ergänzt, der aber meiner Meinung nach nicht die Ursache für den Laufzeitfehler ist. Nach einer Veränderung der Parameter für die Suche läuft der Code bei mir unter Excel2000 ohne Probleme (und Laufzeitfehler). Der veränderte Code sieht dort dann wie folgt aus (auch optisch etwas anders aufbereitet):

For lngCounter = LBound(myArray) To lngArrCounter
On Error Resume Next
lngFoundRow = .Range("A1:A350").Find(myArray(lngCounter, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False).Row</font>

hurricane65
20.07.2006, 13:52
Moin, jinx,
Danke für Deine Hilfe :) Werd's morgen in der Firma testen und mich dann melden!

hurricane65
23.07.2006, 10:33
Moin zusammen,
@jinx, jo das war der Fehler. DANKE :)