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

Probleme durch Umstellung von Excel 2000 nach 2003

Probleme durch Umstellung von Excel 2000 nach 2003
11.05.2007 09:26:00
Excel
Hallo,
durch die Umstellung von Excel 2000 auf 2003 funktionieren seltsamerweise viele Dateien bzw. Makros nicht mehr korrekt bzw. nur schleppend, die ich in Excel 2000 erstellt hatte.
Mir stellt sich nun die Frage, liegt es an der Datei oder an der Installation von Excel 2003.
Ich habe z.B. eine Mappe in Excel 2000 erstellt, in der recht viele Makros hinterlegt sind und entsprechend auch im Hintergrund ablaufen. Unter Excel 2000 läuft diese auch einwandfrei, unter Excel 2003 jedoch recht schleppend bzw. langsam. Beim Öffnen der Datei wird erstmal der Bildschirm weiß, die Sanduhr läuft and so on !. Der Wechsel in die Entwicklungsumgebung funktioniert auch nicht gerade auf Tastendruck.
Anliegend habe ich mal eine Datei angefügt, die auch in Excel 2000 problemlos arbeitet, jedoch in Excel 2003 nicht so. Es handelt sich um eine Mappe, in der die täglichen Bankvorgänge erfasst werden sollen bzw. des Monats ersichtlich sind. Jeweils zu Monatsanfang erfasst man im ersten Tabellenblatt das Anfangsdatum des Monats. Durch ein Makro werden die Bezeichnungen der Tabellenblätter entsprechend der Bank und Monat benannt, sowie durch eine bedingte Formatierung die Wochenenden und Feiertage farblich hervorgehoben. Eigentlich nichts besonderes bzw. umfangreiches, dennoch werden einerseits bei Excel 2003 die Tabellenblätter nicht umbenannt, sowie kann ich nur äußerst schleppend in die Entwicklungsumgebung wechseln, wobei es den Anschein hat, als wenn dabei eine Schleife ablaufen bzw. abgearbeitet würde. Seltsamerwiese wird das Tabellenblatt umbenannt, wenn ich den 1.9. eingebe !
https://www.herber.de/bbs/user/42414.zip
Ich wäre euch super dankbar, wenn Ihr vielleicht die Datei mal bei Euch unter Excel 2003 kurz testen und mir Euer feedback geben könntet bzw. Ihr vielleicht mir Tip's oder gar eine Lösung hättet.
Danke
Uli

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
12.05.2007 07:57:41
Excel
Hallo Uli,
ich hab die Datei mal unter Excel97 geladen. Da gibt es auch Probleme, die nicht unbedingt "altersbedingr" sind.
Das Problem bei der Umbenennung der Blattnamne ist wohl auf eine nicht korrekte Deklaration bzw. Wertzuweisung zur Variablen s zurückzuführen.
Du liest das Datum in Zelle B4 in die als String deklarierte Variable s . Anschließend soll VBA aus dem Text per Format-Methode ein Datum als Text ausgeben. Das gibt Probleme.
Hier solltest du deinen Code korrigieren.

Private Sub Worksheet_Change(ByVal Target As Range)
'On Error Resume Next
If Target.Address = "$B$4" And IsDate(Target.Value) Then
Application.EnableEvents = False
Application.ScreenUpdating = False 'Bildschirm-Aktuallisierung ausschalten
Dim ws As Worksheet
Select Case Day(DateSerial(Year(Range("$B$4").Value), Month(Range("$B$4").Value) + 1, 0) _
)
Case 30
For Each ws In Worksheets
If ws.Name  Target.Parent.Name Then ws.Columns("AF:AF").Delete
Next ws
Columns("AF:AF").Delete
Case 29
For Each ws In Worksheets
If ws.Name  Target.Parent.Name Then ws.Columns("AE:AF").Delete
Next ws
Columns("AE:AF").Delete
Case 28
For Each ws In Worksheets
If ws.Name  Target.Parent.Name Then ws.Columns("AD:AF").Delete
Next ws
Columns("AD:AF").Delete
End Select
Dim s As String
'######s = Range("$B$4").Value 'Falscher Variablentyp für Datum
s = Format(Range("$B$4").Value, "mmmm yyyy")
ActiveSheet.Name = "Bank 1 " & s
ActiveSheet.Next.Activate
ActiveSheet.Name = "Bank 2 " & s
ActiveSheet.Previous.Activate
Range("$B$5").Select
Application.ScreenUpdating = True 'Bildschirm-Aktuallisierung einschalten
Application.EnableEvents = True
End If
End Sub


Nicht besonders gut ist auch, dass die Functions zum Teil doppelt vorhanden sind. Die "Function IsFeiertag(datum As Date) As Boole" ist in DieseArbeitsmappe und im Modul1 vorhanden. Public Functions sollten immer in einem Modul plaziert werden. Ob dies das Problem löst weiß ich nicht, denn unter Excel97 wurde die WorkSheet_Change-Prozedur nur gestartet, wenn ein Zellinhalt gelöscht wurde aber nicht wenn ich das Datum in Zelle B4 ändere. Hier gibt es scheinbar einen Konflikt mit der IsFeiertag-Funktion unter der bedingten Formatierung. Nachdem ich diese für alle Zellen gelöscht hatte reagiete die Worksheet_Change Prozedur korrekt.
Ob jetzt Excel2000 hier "toleranter" ist was die VBA-Programmierung angeht als Excel2003 weiß ich nicht. Dazu hab ich zu wenig Erfahrungen mit Makros unter Excel2003.
Gruß
Franz

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
13.05.2007 07:58:00
Excel
Hallöchen,
es gibt so einige Problemschen, das mit dem s ist eigentlich keins.
- viele Formeln
- vermutlich viele einzelne Formatierungen
- vermutlich gelöschter code
Lösung:
- Datei neu erstellen
-- Daten kopieren, Inhalte einfügen - Formeln
-- Tabelle neu formatieren, aber bitte nicht alles einzeln sondern große zusammenhängende Bereiche
-- code vom Bank 1 ... kopieren und in die neue Datei einfügen
-- Funktionen aus DieseArbeitsmappe wie Franz schreibt in ein Modul in der neuen Datei
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 10:47:00
Excel
Hallo Franz, hallo André,
hatte mich zu früh gefreut, ich habe leider immer noch das Problem, genau wie zuvor.
Seltsam ist insbesondere auch, daß Excel so lange braucht beim Wechsel in die Entwicklungsumgebung und zurück, und das nur bei Excel 2003 und nicht bei 2000.
Habt Ihr vielleicht noch den einen oder anderen Tip ?
Danke
Uli

AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 11:16:51
Excel
Hallo Uli,
Du hast die Datei aber noch nicht neu erstellt?
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 13:25:34
Excel
Hallo André,
wie von Dir vorgeschlagen habe ich die Datei neu erstellt, allerdings habe ich mal nur das erste Tabellenblatt genommen, das Datumformat angepasst, die Makros kopiert und die bedingte Formatierung erstellt.
Wochenenden und Feiertage werden wie bei der urprünglichen Datei korrekt formatiert bzw. farblich hervorgehoben, die Tabellenblattbezeichnung allerdings wird wieder nicht aktualisiert bzw. ausgeführt, auch der Wechsel in und von der Entwicklungsumgebung geht äußerst schleppend.
Seltsamerweise taucht dieses Problem nicht nur bei dieser Datei auf, sondern bei anderen Dateien, die ich in Excel 2000 erstellt hatte ja auch.
In Excel 2000 funktioniert ja alles, warum jetzt nich in Excel 2003 ?
Bei Arbeitskollegen mit Excel 2003 läuft die Datei auch nicht bzw. wie bei mir.
Wenn Du Excel 2003 hast, öffne bitte mal bei Dir die Datei und teil mir/uns mit, ob´s bei Dir funktioniert.
Danke
Uli

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 13:40:58
Excel
Hallo Uli,
ich hatte die Datei schon offen und sie verhält sih sehr unterschiedlich, mal schneller, mal langsamer. Wie gesagt, ich habe die Vermutung dass da irgendwas drin versteckt hängengeblieben ist. Wenn man das Excel-Fenster etwas kleiner hält als das VBA-Fenster merkt man in der VBA-Titelleiste, wie da bei Änderung der Auswahl, z.B. mit Bild Ab oder anderen Cursortasten, der Text flackert - als ob irgendein code läuft - wo doch kein entsprechender drin ist.
Den code würde ich an einer Stelle umbauen:
If Target.Address = "$B$4" And IsDate(Target.Value) Then
würde ich trennen:
If Target.Address "$B$4" Then Exit Sub
If IsDate(Target.Value) Then
ansonsten werden immer beide Bedingungen geprüft.
und wenn es keine Ergebnisse beeinflusst noch das Berechnen ausschalten. Hat aber alles wie gesagt nichts mit dem Problem zu tun.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 14:15:00
Excel
Hallo Andrè,
jetzt wissen wir, daß es das Problem nicht nur bei uns bzw. mir gibt, sondern auch bei Dir auftaucht.
Ich hatte eigentlich gedacht bzw. gehofft, daß es seit dem Upgradefiasko von Excel 97 zu 2000 keine Probleme mehr geben würde.
Komisch eigentlich, daß das Problem nicht schon irgendwo aufgetaucht ist bzw. sich auch keine Hinweis oder dergleichen im Internet findet.
Es könnte eigentlich ja nur noch an irgendeiner Einstellung in Excel liegen, zumal das Problem ja nicht nur bei dieser Datei auftaucht.
Hast Du oder irgendjemand noch eine Idee ?
Danke
Uli

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 14:47:03
Excel
Hallo Uli,
nochmal - das muss nicht an 2003 liegen. Da gibt es u 2000 einige andere Unterschiede ... Vielleicht hattest Du unter 2000 eine verkorkste personl.xls oder ander Widrigkeiten... Solch flackernde Module hatte ich auch schon in 97 und nicht erst seit 2003. Da half auch damals schon nur eine Neuerstellung oder eventuell geht auch der codecleaner. Ich hab mich aber immer für die Neuerstellung entschieden.
Die Einstellungne kannst DU vergleichen, es gibt zwar einiges mehr aber Grundsätzliches ist wieder vorhanden.
Hoffe geholfen zu haben Grüße von André aus Gera - Stadt der Buga 2007 - Excel-97-2003

Anzeige
AW: Probleme durch Umstellung von Excel 2000 nach
14.05.2007 08:39:00
Excel
Hallo Franz,
danke für die Lösung, funktioniert nun einwandfrei. :-)
Meine Vermutung, daß der Fehler durch die Umstellung von Excel 2000 auf 2003 kam, war falsch.
Es hat definitiv daran gelegen, das 's' nicht als 'date' deklariert war, und insbesondere auch die Funktion 'IsFeiertag' einerseits in der Mappe und im Modul1 hinterlegt war, also doppelt.
Damit die Bezeichnung der Tabellenblätter mit Monatsnamen und Jahr benannt werden, habe ich noch 's=Format(Range("$B$4").Value, "mmmm yyyy")' gelöscht und stattdessen 'ActiveSheet.Name="Bank " & Format(s, "mmmm yyyy") ergänzt.
Uli
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige