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

Variablen beim öffnen befüllen

Variablen beim öffnen befüllen
21.06.2002 10:17:42
Thomas Wolpert
Hallo,
Meine Recherche im Archiv mir zwar schon viel weitergeholfen, aber bei meinem folgenden Problem komme ich leider nicht weiter. Ich möchte folgendes tun:
Beim Start meiner Mappe soll ein Code ablaufen, der automatisch eine mehrdimensionale Variable rs(20) aus einem Tabellenblatt "Stamm" befüllt. Diese Variablen sollten dann während der Arbeit im Tabellenblatt "Formular" ständig zur Verfügung stehen und mir , wenn ich im Formular etwas eintrage in einer MSGBox den entsprechenden Wert ausgeben.

Leider kann ich die Variablen rs(20) nicht als public definieren.

Hat jemand eine Idee? Das selbständige Ausführen der Makros würde ich entweder über den Makronamen "autoexec" oder über "private sub workbook_open()" lösen. Auch wie ich einen Code automatisch nach Eingabe starte habe ich im Archiv gefunden. Aber wie die böse Variable ihr Gedächtnis behält, da komm ich nicht drauf.
Wäre super, wenn jemand 'ne Idee hätte.
Gruß
Thomas


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Variablen beim öffnen befüllen
21.06.2002 12:20:55
Rainer
Lieber Thomas!

Definiere die Variable in einem normalen Modulblatt am Beginn des Moduls außerhalb einer Sub oder einer Funktion; ob DIM rs(20) as ... oder PRIVAT, STATIC, GLOBAL ... (siehe in der Hilfe unter 'Gültigkeit von Variablen' nach), musst du dann selbst entscheiden). Das Befüllen der Variable würde ich in der Workbook_Open() machen.

Lieben Gruß
Rainer

Re: Variablen beim öffnen befüllen
21.06.2002 12:43:59
Thomas Wolpert
Hallo Rainer,

ich habe unter Modul1 jetzt folgenden Code:
Dim x, zeile
Dim rs(36)

Private Sub workbook_open()
Sheets("Stamm").Activate
For x = 0 To 20
rs(x) = Cells(x + 3, 2)
Next x
Sheets("Formular").Activate
End Sub

Ich hoffe hier liest er ein, wobei ich nicht sehe, daß das Sheet "Stamm" aktiviert ist.
Auf jeden Fall ist er nach dem öffnen im "Formular".
hier habe ich folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range("c10:C77", "AG10:AG77")) Is Nothing Then
ActiveCell.Offset(-1, 0).Activate
zelle = ActiveCell.Address
x = ActiveCell.Value
MsgBox ("aktive Zelle: " & zelle & "/" & x & "/" & rs(x))

'Load UserForm1 das kommt später noch
'UserForm1.Show

End If
End Sub

Wenn ich jetzt unter C15 eine Zahl eingebe, kommt "Fehler beim Kompilieren: Sub oder Function nicht definiert" und meine rs(x) ist markiert.

Hast Du bitte noch eine Idee?

Viele Grüße
Thomas

P.S.: Wie machen das manche, daß in ihrem Code die Systemwerte blau sind?



Anzeige
Re: Variablen beim öffnen befüllen
21.06.2002 16:10:53
Rainer
Lieber Thomas!

Beachte Folgendes:
Der Workbook_Open() Code darf nicht in einem 'normalen' Modulblatt sein, sonst wird er nicht erkannt - also auch nicht ausgeführt. Wechsle in den VBA-Editor und klicke im Projekt-Fenster doppelt auf 'DieseArbeitsmappe'. Dort gib den Workbook_Open() Code ein.
Für die Worksheet_Change()-Ereignisprozedur klickst du doppelt auf gewünschte Tabelle, zB 'Tabelle1 (Formular)'.
Die Variablendekleration schließlich in ein normales Modul.

Ich habe den Worksheet_Change()-Code kaum geändert, da ich nicht weiß, welche Daten du darin stehen hast. So funktioniert es aber bei mir.


Ne Kleinigkeit: du lässt nur 21 Einträge einlesen, dein Array hat aber Platz für 37 Einträge.

Liebe Grüße
Rainer

P.S.:
Den formatierten Code kopiert man zwischen
~begin~
... Code ...
~end~

Anzeige
Super es klappt
21.06.2002 16:45:59
Thomas Wolpert
Hallo Rainer,
Dein Vorschlag ist super, es hat funktioniert.
Danke,danke, danke
Und die Idee mit dem

ist mir lieber als meine Lösung.
1000 Dank, ich hoffe ich kann mal was zurückgeben.

Schönes Wochenende
Thomas

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige