Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1568to1572
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
Inhaltsverzeichnis

UF - Aufruf über re MT - Befüllung v. Lbl

UF - Aufruf über re MT - Befüllung v. Lbl
21.07.2017 07:20:18
STeve
Hallooooooooooo miteinander.........hätte schon wieder mal eine Frage/Bitte.
Eine UF wird über das WorkSheet_Change-Ereignis geladen.
Beschriftungen mehrere Label's werden über Variablen:
Public MitarbeiterName As String, ND_Tag_Ende As String, WTAnfang As String, WTEnde As String
befüllt.
Private Sub UserForm_Activate()
lbl1.Caption = MitarbeiterName
lblND_Tag.Caption = WTAnfang & ", " & ND_Tag
lblND_Tag_Ende.Caption = WTEnde & ", " & ND_Tag_Ende
End Sub

Frage/Bitte:
Dank Matthias L kann ich über die re. MT (nur in best. Range) weitere UFs laden, jedoch funktioniert hier die Beschriftungen über die Public Variablen nicht.
Wer kann mir da einen Tipp geben?
Danke und mfg
STeve

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

Betreff
Datum
Anwender
Anzeige
AW: UF - Aufruf über re MT - Befüllung v. Lbl
21.07.2017 08:54:22
yummi
Hallo Steve,
versuchs mal mit vollständig referenzieren.
Also:
Userformname.element.methode = wert
Wenn Du immer nur mit Eleement referenziert, dan ngilt das nur für die aktuelle Userform, du willst aber in verschiedene schreiben, wenn ich dich richtig verstehe.
Gruß
yummi
AW: UF - Aufruf über re MT - Befüllung v. Lbl
21.07.2017 11:55:38
STeve
Hallo Yummi........danke für deine schnelle Antwort.
Wenn ich vollständig referenziere funktioniert es auch nicht.
Weitere Frage:
Initialize() wird ja vor Activate()
gemacht.
Wenn ich :
Private Sub UserForm_Initialize()
frmeinzelnenNDverplanen.lbl1.Caption = ActiveSheet.Range("A21").Value ' so zeigt richtig an
.....................................= Range(Cells(Target.Row,1)).Value ' so funktioniert nicht
Bräuchte eben mehrere Target Werte als Eintrag in die Userform.
Wie könnte ich die Target.Werte in die UF bringen.
Danke
Anzeige
AW: UF - Aufruf über re MT - Befüllung v. Lbl
21.07.2017 14:38:10
yummi
Hallo Steve,
entweder du schreibst das für jedes Element der Userform
frmeinzelnenNDverplanen.lbl1.Caption = ActiveSheet.Range("A21").Value
frmeinzelnenNDverplanen.lbl2.Caption = ActiveSheet.Range("A22").Value
usw
oder wen nes zu viele sind kannst Du das auch mit eienr Schleife machen
z.B.

i = 21
For Each x In UserForm1.Controls
If TypeName(x) = "Label" Then
x.Text = ActiveSheet.Range("A" & i).Value
i= i+ 1
End If
Next
Gruß
yummi
Hier eine Beispieldatei....lg
21.07.2017 18:08:29
STeve
Hi Yummi.....Klasse Danke die Schleife kommt sicher mal zum Einsatz.
Aber leider hast du mich nicht richtig verstanden. Deshalb auf offen gestellt und diese Datei erstellt:
https://www.herber.de/bbs/user/115001.xlsm
Erklärung der angehängten Datei:
Wenn du im gelben Bereich mit rechter Maustaste klickst bietet es dir Userformen an.....nimm die 2....die erste geht hier nicht.
Jetzt beim Öffnen der Userform soll nicht oben Label 1 stehen sondern entweder Yummi oder STeve - kommt darauf an in welchem Bereich (oben oder unten) du die UF mit re. MT aufrufst.
Die Variablen MitarbeiterName usw. gehen nicht. Auch direkt mit Range (Cells(Target.Row,1).Value geht nicht.
Bitte um Tipps/Lösungen.
Danke und mfg
STeve
Anzeige
AW: Hier eine Beispieldatei....lg
22.07.2017 14:52:53
fcs
Hallo Steve,
du musst als erstes die Zeile und Spalte der aktiven Zelle ermitteln und Variablen zuweisen.
Da die Werte später beim Eintragen der Werte ins Tabellenblatt wieder benötigst werden, deklariert man diese Variablen im Userform-Code als Private in den ersten Zeilen.
Dann kann man ohne Probleme die benötigten Werte einlesen.
Gruß
Franz
Im Userform-Code als erste Zeilen einfügen

'Die Werte der beiden Variablen Zeile und Spalte werden in der UserForm_Activate-Prozedur mit _
Werten gefüllt
Private Zeile As Long       'Merker für die Zeile der aktiven Zelle
Private Spalte As Long      'Merker für die Spalte der aktiven Zelle
Private Sub UserForm_Activate()
Dim datDatum As Date
'Zeile und Spalte der aktiven Zelle merken für das Eintragen der Eingaben in das Userform
Zeile = ActiveCell.Row
Spalte = ActiveCell.Column
'Daten aus Tabellenblatt einlesen
With ActiveSheet
datDatum = .Cells(1, Spalte).Value
lblNamedesderzeitzubearbeitendenBeamten.Caption = .Cells(Zeile, 1).Text
lblND_Tag.Caption = Format(datDatum, "DDDD, DD.MM.YYYY")
lblND_Tag_Ende.Caption = Format(datDatum + 1, "DDDD, DD.MM.YYYY")
End With
End Sub

Anzeige
Perfekt gelöst........DANKE fcs
22.07.2017 21:48:52
STeve
Hallo fcs.......Absolut perfekt. Genau das was es machen soll. Habe wieder was gelernt.
Dein Code kurz und knackig.
Brauche alles nur kopieren und genau dort wo du sagst einfügen......besser kann es nicht gehen.
DANKE dir dass dich dieser Aufgabe/Frage/Bitte gestellt und gelöst hast.
Wünsche dir einen schönen Abend.
mfg STeve
Danke auch an Yummi.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige