Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1308to1312
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
Variable an Userform übergeben
22.04.2013 10:59:41
Horst
Schönen Guten Tag die Damen und Herren,
Mein Problem ist das folgende:
Bei einem Klick auf einen Button soll eine neue Tabelle geöffnet und mit gewissen Daten gefüllt werden. Im Nachgang ist der Bezug einer Userform auf dieses neue Tabellenblatt herzustellen. Da ein Klick auf diesen Button immer ein neues Tabellenblatt öffnen soll, wird die Benennung über eine Variable "Diagramm" & f zugeordnet. Das klappt soweit auch. Nun soll jedoch die Userform immer auf "Diagramm" & f zugreifen, das will jedoch nicht so recht. Wie übergebe ich die Variable f in meinem Code an die Userform?

Option Explicit
Dim i As Integer
Dim f As Variant
Private Sub UserForm_Initialize()
For i = 1 To 19
With Controls("CheckBox" & i)
' Bezeichnung aus Überschriften der Zeile 1 und Spalte in Tag-Eigenschaft ermitteln
.Caption = Worksheets("Diagramm" & f).Cells(1, CLng(.Tag)).Value
' Wert der Kontrollkästchen nach Anzeigezustand der Spalten einstellen
.Value = Not Worksheets("Diagramm" & f).Columns(CLng(.Tag)).Hidden
End With
Next i
End Sub
Private Sub CommandButton1_Click()
For i = 1 To 19
With Controls("CheckBox" & i)
' Spalte ausblenden, wenn CheckBox deaktiviert
Worksheets("Diagramm" & f).Columns(CLng(.Tag)).Hidden = Not .Value
End With
Next i
Unload Me
Zeitlicher_Verlauf.Show
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Bei mir erscheint immer Laufzeitfehler 9. Also denke ich, dass f nicht korrekt deklariert ist.
Vielen Dank für eure Hilfe!
Horst

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable an Userform übergeben
22.04.2013 11:01:51
Hajo_Zi
Hallo Horst,
Userform1.Tag="Diagramm" & f
und Tag in UserForm auslesen.

AW: Variable an Userform übergeben
22.04.2013 11:10:47
Horst
Vielen Dank für deine fixe Antwort,
die Zeile Userform1.Tag="Diagramm" & f soll in den Code, in welchem das neue Tabellenblatt erstellt und benannt wird? Wie würde ich den Tag in der Userform dann aufrufen und deklarieren?

AW: Variable an Userform übergeben
22.04.2013 11:15:42
Hajo_Zi
warum aufrufen, deklarieren. Davon habe ich nichts geschrieben.
Worksheets(Userform1.Tag)
Gruß Hajo

Anzeige
AW: Variable an Userform übergeben
22.04.2013 11:18:06
Rudi
Hallo,
Da ein Klick auf diesen Button immer ein neues Tabellenblatt öffnen soll
zeig mal den Code.
Gruß
Rudi

AW: Variable an Userform übergeben
22.04.2013 11:34:06
Horst

Sub Hilfstabelle()
Dim f As Variant
f = 1
Sheets("Tabelle1").Select
Range( _
"D:D,E:E,F:F,G:G,H:H,I:I,J:J,K:K,L:L,M:M,N:N,O:O,V:V,W:W,X:X,Y:Y,Z:Z,AF:AF,AG:AG" _
).Select
Selection.Copy
Worksheets.Add.Name = "Diagramm" & f
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormat = "0.00"
'Sheets("Diagramm" & f").Visible = False
Datenwahl.Tag = "Diagramm" & f
End Sub
f würde ich um 1 erhöhen, wenn das Diagramm gezeichnet wurde und demnach das f=1 am Anfang des Codes rausnehmen(in einen vorhergehenden Code, welcher nur einfach ausgeführt wird), damit f hier nicht wieder überschrieben wird

Anzeige
AW: Variable an Userform übergeben
22.04.2013 11:34:30
Horst
'Häckchen

AW: Variable an Userform übergeben
22.04.2013 11:40:53
Rudi
Hallo,
schreib f doch einfach in eine Public-Variable.
Gruß
Rudi

AW: Variable an Userform übergeben
22.04.2013 11:53:37
Horst
Das habe ich gemacht, trotzdem erscheint der Fehler...bei Anzeige von Datenwahl.Show:
Sub Weiter()
Call Hilfstabelle
Datenwahl.Show
End Sub
Wobei das doch weniger mit der Zeile als mit dem Unterprogramm zu tun haben sollte, oder?!

AW: Variable an Userform übergeben
22.04.2013 11:54:27
Horst
Häckchen die Zweite

AW: Variable an Userform übergeben
22.04.2013 12:25:03
Rudi
Hallo,
in ein Modul:
Option Explicit
Public f As Integer
Sub Weiter()
f = 2
Hilfstabelle
Datenwahl.Show
End Sub
Sub Hilfstabelle()
Sheets("Tabelle1").Range("D:O,V:Z,AF:AG").Copy
Worksheets.Add.Name = "Diagramm" & f
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormat = "0.00"
End Sub

Gruß
Rudi

Anzeige
AW: Variable an Userform übergeben
22.04.2013 12:53:01
Horst
Danke für deine Hilfe!
Jetzt wird mir nur noch unter Markieren von f bei
.Caption = Worksheets("Diagramm" & f).Cells(1, CLng(.Tag)).Value
'Mehrdeutiger Name: ~' angezeigt.
Und noch eine allgemeinere Frage: Muss ich eine Public Variable in jedem Sub wieder deklarieren oder gilt das automatisch dann auch für diesen Code?

AW: Variable an Userform übergeben
22.04.2013 13:15:38
Rudi
Hallo,
Muss ich eine Public Variable in jedem Sub wieder deklarieren
dann gilt sie nur für diese Prozedur.
Lies doch mal die Hilfe zur Public-Anweisung.
Gruß
Rudi

Anzeige
AW: Variable an Userform übergeben
22.04.2013 14:33:31
Horst
Gut. Jetzt ist es ja schwer den Code einer Userform innerhalb einer Prozedur aufzufassen. Demnach muss ich diese doch à la Hajo übergeben, oder nicht?
Ich bin jetzt durchaus n bissl verwirrt, f wird immernoch nicht angenommen, demnach jetzt die Mischung aus eurer beiden Hinweise:

Option Explicit
Public f As Integer
Dim a As Variant
Sub Weiter()
f = 1
Hilfstabelle
Datenwahl.Show
End Sub
Sub Hilfstabelle()
Sheets("Tabelle1").Range("D:O,V:Z,AF:AG").Copy
Worksheets.Add.Name = "Diagramm" & f
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.NumberFormat = "0.00"
Datenwahl.Tag = "Diagramm" & f
End Sub

sowie:
Option Explicit
Dim i As Integer
Sub UserForm_Initialize()
'Worksheets (Datenwahl.Tag)
For i = 1 To 19
With Controls("CheckBox" & i)
' Bezeichnung aus Überschriften der Zeile 1 und Spalte in Tag-Eigenschaft ermitteln
.Caption = Worksheets(Datenwahl.Tag).Cells(1, CLng(.Tag)).Value
' Wert der Kontrollkästchen nach Anzeigezustand der Spalten einstellen
.Value = Not Worksheets(Datenwahl.Tag).Columns(CLng(.Tag)).Hidden
End With
Next i
End Sub
Sub CommandButton1_Click()
For i = 1 To 19
With Controls("CheckBox" & i)
' Spalte ausblenden, wenn CheckBox deaktiviert
Worksheets(Datenwahl.Tag).Columns(CLng(.Tag)).Hidden = Not .Value
End With
Next i
Unload Me
Zeitlicher_Verlauf.Show
End Sub
Sub CommandButton2_Click()
Unload Me
End Sub
Unter Anzeige von 'Datenwahl.Tag = "Diagramm" & f' erscheint Laufzeitfehler 9 :/

Anzeige
AW: Variable an Userform übergeben
22.04.2013 16:12:40
Rudi
Hallo,
Sub UserForm_Initialize()
'Worksheets (Datenwahl.Tag)
For i = 1 To 19
With Controls("CheckBox" & i)
' Bezeichnung aus Überschriften der Zeile 1 und Spalte in Tag-Eigenschaft ermitteln
.Caption = Worksheets("Diagramm" & f).Cells(1, CLng(.Tag)).Value
' Wert der Kontrollkästchen nach Anzeigezustand der Spalten einstellen
.Value = Not Worksheets("Diagramm" & f).Columns(CLng(.Tag)).Hidden
End With
Next i
End Sub

Sub CommandButton1_Click()
For i = 1 To 19
With Controls("CheckBox" & i)
' Spalte ausblenden, wenn CheckBox deaktiviert
Worksheets("Diagramm" & f).Columns(CLng(.Tag)).Hidden = Not .Value
End With
Next i
Unload Me
Zeitlicher_Verlauf.Show
End Sub

Gruß
Rudi

Anzeige
AW: Variable an Userform übergeben
22.04.2013 16:51:51
Horst
f bleibt leider nach wie vor ein 'mehrdeutiger Name: ~' :(
Danke für deine Mühen!

lad die Mappe hoch. owT
23.04.2013 10:19:10
Rudi

AW: Variable an Userform übergeben
23.04.2013 10:20:50
Horst
Ich habe mir selber geholfen mit einer Textbox. Vielen Dank ihr Zwee!

AW: Variable an Userform übergeben
25.04.2013 16:59:03
Horst
Kleine Anmerkung noch: Excel will bei mir deutsche Datumswerte, hat allerdings englische bekommen. Bei den meisten Monaten ist dies kein Problem, im März, Mai, Oktober sowie Dezember schon.
Ich habe das Problem über eine Select Case Schleife laufen lassen, welche z.B. aus dem englischen Mar das deutsche Mrz für den Monats-Array überschreibt.

42 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige