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

Universal-Formular/ControlSource

Universal-Formular/ControlSource
16.04.2003 23:26:02
dkli
Hallo an den Spezialisten,

habe schon öfter interessante Anregungen im Forum gefunden, allerdings bisher nicht zu meinem derzeitigen Problem.

Programmiere ein wenig mit Excel97-VBA und schicke voraus, dass ich Variablen nicht deklariert, sondern einfach vor mich hin programmiert habe, vielleicht liegt da der Fehler.

Okay, um was geht's?

Habe mir ein Formular "gestrickt", dass bestimmte Zellen über die ControlSource-Eigenschaft einliest, darstellt und auch bearbeiten lässt. Sobald ich allerdings mit einem Click-Ereignis auf dem Formular das Tabellenblatt wechsle, wird weiterhin Bezug genommen auf die entsprechenden Zellen auf dem Tabellen-Blatt, welches beim Start des Formulares gültig war. Ich hätte allerdings gerne ein Universal-Formular, dass immer Daten vom gerade aktuellen Tabellenblatt anzeigt.

Wie lässt sich eine Gesamt-Aktualisierung während der Programm-Ausführung hinbekommen ohne dass ich explizit alle Zellbezüge per Anweisung neu setze.

Behelfe mir vorübergehend damit, dass ich das Formular nach jedem Tabellenblattwechsel z.B. über eine Schaltfläche immer neu starte. Da das geht, hat mein Problem vermute ich irgendetwas mit der Variablen-Initialisierung des Formulars zu tun.

Hoffe, ich habe mich verständlich ausgedrückt. Noch mehr hoffe ich natürlich auf eine erklärende Antwort.

Vorab schon einmal DANKE!

Dieter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Universal-Formular/ControlSource
16.04.2003 23:30:48
PeterW

Hallo Dieter,

bin zwar nicht der Spezialist aber ohne Code ist das kaum zu beantworten.

Gruß
Peter

Re: Universal-Formular/ControlSource
16.04.2003 23:34:13
Ramses

Hallo Dieter,

so ohne Code ist das schwierig zu sagen, aber ein Tip

Die Routine die zum füllen des Formulars verwendest in ein eigenes Modul auslagern und zum Beispiel

Sub Fill_Form()

benennen. Das Click-Ereignis kannst du dann so kombinieren:

Private Sub Commandbutton1_Click()
Worksheets("Andere Tabelle").Activate
Call Fill_Form()
End Sub

Damit wechselst du die Tabelle und rufst anschliessend die Routine auf, welche dir normalerweise das Formular füllt.

Zum füllen der Userform musst du dann nur noch die Anweisung

Textbox1.Value = Range("A1")

in

Userformname.Textbox1.Value = Range("A1")

umwandeln, und du hast dein Universalformular.

Gruss Rainer

Anzeige
Re: Universal-Formular/ControlSource
17.04.2003 10:01:59
dkli

Hallo Rainer,

danke für die Antwort, aber:

Es gibt keine Routine zum Füllen!

Beim Erstellen des Formulares habe ich Textfelder verwendet und direkt im Eigenschaftsfenster als Bezug für ControSource z.B. A1 oder B12 angegeben.

Somit werden Daten beim Aktivieren des Formulares direkt aus dem aktiven Arbeitsblatt eingelesen und können bearbeitet werden.

Ein Wechsel des Arbeitsblattes per Schaltfläche und Click-Ereignis beläßt aber trotzdem den Fokus auf dem ursprünglichen Arbeitsblatt.

Wollte mir einfach Programmieraufwand sparen, da ich sonst explizit den Textfelder die entsprechenden Werte zuweisen müsste und bei Verlassen des Formulares diese dann auch in der Tabelle neu zu schreiben wären.

Hoffe, jetzt wird's klarer.

Ansonsten maile ich auch gerne eine kleine Demo-Datei.

Danke für deine Hilfe!

Dieter

Anzeige
Workaround
17.04.2003 10:37:51
Ramses

Hallo,

nicht schön aber funktioniert

In das Click-Ereignis:

Hintergrund:
Mit der Controlsource Eigenschaft verweist du immer auf den Bereich der gerade aktuellen Tabelle.

Sollte also gehen.

Gruss Rainer

Re: Workaround
17.04.2003 11:10:59
dkli

Hallo Rainer,

wärst du so nett und würdest direkt mit mir Kontakt aufnehmen.

Weiß nicht wie sicher das ganze läuft (Werbung...), aber trotzdem hier meine Adresse:

dklingelhoefer11@freenet.de

Würde dir dann gerne meine Beispiel-Datei mailen, komme nämlich irgendwie nicht weiter...

Danke!

Dieter

Re: Workaround
17.04.2003 23:22:48
dkli

Hallo Rainer,

es hat mir einfach keine Ruhe gelassen. Kam mit deinen Daten irgendwie nicht weiter.

Dein letztlich entscheidender Tipp war die Zeile:
Unload Me

Habe damit noch ein wenig probiert und so läuft's jetzt:

Private Sub CommandButton1_Click()
If ActiveSheet.Name = "Blatt_1" Then
Unload Me
Worksheets("Blatt_2").Activate
UserForm1.Show
Else
Unload Me
Worksheets("Blatt_1").Activate
UserForm1.Show
End If
End Sub

Danke dir und frohe Ostern!

Dieter

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige