Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Unerklärliches Problem in Excel 2000 VBA

gelöscht_265507 / 7 Antworten / Baumansicht Nickles

Hilfe:

Ich erstelle mir Kalenderblätter, in denen in der ersten Zeile die Tageszahlen stehen und in der zweiten Zeile die Tage (Mo, Di)

Bei dieser Gelegenheit markiere ich die Zellen der Wochenenden mit Farben.
Das funktioniert auch mit diesem Code.









Nun habe ich versucht, die Farben zu ändern. Das interessiert ihn nicht.
Dann habe ich die Markierungsfunktion mal ganz entfernt.









Das interessiert ihn  auch nicht. Er macht lustig die alten Farben und Markierungen.

Was passiert denn hier?

bei Antwort benachrichtigen
gelöscht_265507 Nachtrag zu: „Unerklärliches Problem in Excel 2000 VBA“
Optionen

Ich glaube, diese alberne Compilierung hat sich einfach nur verschluckt.

Aus einem Makro "Public Sub TabellenBlätterErstellen()" rufe ich nach dem Erstellen die einzelne Monate auf, um die Blätter zu füllen. "Public Sub Monat()".

Ich habe die deswegen "Public" gemacht, weil ich ja Variablen übernehmen muss.

Nun habe ich beim ersten einmal das "Public" entfernt, kompiliert, danach das "Public" wieder hinzugefügt und nun tut er richtig.


Das ist für mich zu hoch.

bei Antwort benachrichtigen
Hyperboreal gelöscht_265507 „Ich glaube, diese alberne Compilierung hat sich einfach nur ...“
Optionen
Das ist für mich zu hoch.
Hallo,

Wieso?
Du hast doch das Problem gelöst und "geistig durchdrungen".
Ist doch alles o.k.
Das Debugging von Windows-Anwendungen ist nun mal
recht kompliziert.

Gruss

Hyperboreal
bei Antwort benachrichtigen
gelöscht_265507 Hyperboreal „Hallo, Wieso Du hast doch das Problem gelöst und geistig ...“
Optionen

Das ist aber nicht befriedigend.

Während des stufenweise Programmierens hat ja alles funktioniert.

Erst nachdem ich Änderungen gemacht hatte, hat ihn das nicht interessiert.

Selbst als ich ganze Code-Blöcke gelöscht hatte, hat er das trotzdem richtig ausgeführt.
(Ach, wenn das auch bei einem leeren Tank ginge)

Und erst mit dem Entfernen von Public - das war aber mehr zufällig - hat er auf einmal  alles wieder gemerkt.

Das ist möglicherweise ein Geheimnis in Excel 2000. Das Mitschleppen der Variablen in andere Makros ist wohl nicht sauber programmiert.

bei Antwort benachrichtigen
Hyperboreal gelöscht_265507 „Das ist aber nicht befriedigend. Während des stufenweise ...“
Optionen
Das ist möglicherweise ein Geheimnis in Excel 2000. Das Mitschleppen der Variablen in andere Makros ist wohl nicht sauber programmiert.

Meinst du jetzt Excel allgemein oder dein Programm?
Es wird wohl an deinem Programm liegen.

'Public' ist ja etwas, was man wie die Pest meiden sollte.

Zu gross ist die Wahrscheinlichkeit, dass es irgendwann zu Konflikten kommt.

Das Argument "auf Public Vars kann man so schön einfach zugreifen"
ist tödlich. Viele Probleme kommen von global verwendeten Variablen.

Gruss
Hy
bei Antwort benachrichtigen
gelöscht_265507 Hyperboreal „Meinst du jetzt Excel allgemein oder dein Programm Es wird ...“
Optionen

Ja, ich glaube, es liegt auch am Programm.

Ich brauche aber eine Variable, die ich beim Start der Makros aus einer Zelle auslese (das Jahr), um dann die 12 Kalenderblätter zu erstellen.

Wenn ich jetzt wieder eine Änderung vornehme, dann macht er sie nicht, nehme ich das Public raus, dann macht er das, hat aber als Jahr nur 1990.

Irgendwie muss ich das ändern. Ist sicherlich nur eine Frage der Zeit.

bei Antwort benachrichtigen
Hyperboreal gelöscht_265507 „Ja, ich glaube, es liegt auch am Programm. Ich brauche aber ...“
Optionen
Ist sicherlich nur eine Frage der Zeit.

Hier im doppelten Sinne der Bedeutung... Lachend

Gruss
Hy
bei Antwort benachrichtigen
gelöscht_265507 Hyperboreal „Hier im doppelten Sinne der Bedeutung... Gruss Hy“
Optionen

Wenn man selbst programmiert, sieht man die eigenen Fehler nicht.

Ich habe schlichtweg vergessen das Datum den Zellen zuzuordnen, das heißt, es dort einzutragen.
Verlegen


Nun funktioniert es auch ohne Public.

Die maßgeblichen Variablen werden im Teil "Option Explizit" eingetragen (Dim) und auch dann stehen die anscheinend wohl auch überall zur Verfügung.

VBA ist eine schrecklich Sprache, wenn man sich nur einmal im Jahr damit beschäftigt.

bei Antwort benachrichtigen