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

OptionsGroup Werte auslesen und zurückschreiben

OptionsGroup Werte auslesen und zurückschreiben
22.11.2019 20:19:05
Peer
Hallo.
Ich habe auf eine UF zwei Optionsbutton mit den Werten "App" und Papier" als Gruppe "optGrp_Abgabeart" und möchte je nach Auswahl den Text "App" oder "Papier" in die Tabelle "Parameter" Spalte AG schreiben.
Das klappt soweit auch ganz gut.
Dabei habe ich ein Script, dass durch Doppelklick auf Spalte A von der aktiven Tabelle die Werte der dazugehörigen Zeile ausliest und in in die UF einlesen soll.
TextBoxen klappen ganz gut, bei Option Buttons bekomme ich derzeit nur das Schreiben des ausgewählten Wertes hin.
Private Sub btn_OK_Click()
'Eintrag wieder in die Zelle der ausgewählten Zeile zurück schreiben
With ActiveCell.EntireRow
.Cells(1, 34).Value = txt_Abgabe.Value
.Cells(1, 26).Value = cbx_Reisezweck.Value
'.Cells(1, 31).Value = cbx_Zielort.List(cbx_Zielort.ListIndex, 1)
'Abgabeart eintragen
If Me.opt_App.Value = True Then
.Cells(1, 33).Value = "App"
ElseIf Me.opt_Papier.Value = True Then
.Cells(1, 33).Value = "Papier"
End If
End With
'Blattschutz nach dem Schließen der UF zurücksetzen
ActiveSheet.Protect
Unload Me
End Sub

Hier steht nun in Sheet "Parameter" der jeweiligen Zeile der Werte "App" oder "Papier".
Aber das Auslesen der gewählten Zeile des aktiven Sheet lädt nicht die Werte zurück.

Private Sub UserForm_Initialize()
Dim zeile As Long
Dim Repeatings As Integer
Dim N As Integer
zeile = ActiveCell.Row
lbl_Kalendertag = Cells(zeile, 2)
txt_Abgabe = Cells(zeile, 34)
cbx_Reisezweck = Cells(zeile, 26)
cbx_Zielort = Cells(zeile, 31)
optGrp_Abgabeart = Cells(zeile, 33)
End Sub
Wie muss es geschrieben werden?
Vielen Dank für jede Hilfe.
LG
Peer

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

Betreff
Datum
Anwender
Anzeige
AW: OptionsGroup Werte auslesen und zurückschreiben
22.11.2019 21:45:34
Regina
Hi, so wie ich das lese, müsste das so gehen:

if cells(zeile,,33) = "App" then
Me.opt_App.Value = True
end if
if cells(zeile,,33) = "Papier" then
Me.opt_Papier.Value = True
end if
Gruß Regina
AW: OptionsGroup Werte auslesen und zurückschreiben
22.11.2019 21:51:44
Peer
Danke Regina.
ohne Fehlermeldung natürlich so...
if cells(zeile, 33) = "App" then
Me.opt_App.Value = True
end if
if cells(zeile, 33) = "Papier" then
Me.opt_Papier.Value = True
end if

AW: OptionsGroup Werte auslesen und zurückschreiben
22.11.2019 22:26:51
Peer
Hallo.
Ich habe noch eine weitere Frage hierzu.
Wenn ich jetzt aber 3 Option Buttons habe, wo in Spalte 24 Zeitwerte von "", 0:30 und 0:45 eingetragen sind? Sie sollen die Pausen deklarieren, die dann im gleichen UF mit einer Option Gruppe "Pause" angewählt werden. Beide Optionen haben
"keine" und soll in die jeweilige Zelle => leere Zelle
"30 min" und soll in die jeweilige Zelle => 0:30
"45 min" und soll in die jeweilige Zelle => 0:45
schreiben.
Mein Code ist bis jetzt...

If Cells(zeile, 24) = 0 Then
Me.opt_Pause0.Value = True
End If
If Cells(zeile, 24).Value > 0.5 Then
Me.opt_Pause30.Value = True
End If
If Cells(zeile, 24) > 0.75 Then
Me.opt_Pause45.Value = True
End If
LG
Peer
Anzeige
AW: OptionsGroup Werte auslesen und zurückschreiben
23.11.2019 09:54:32
Werner
Hallo Peer,
wie kommst du auf 0.5 bzw. 0.75?
Zeiten sind für Excel der entsprechende Teil eines Tages. Ein Tag (24 Sutnden) = 1. Also ist 00:30 1/24*0.5
Du kannst aber einfach die .Text Eigenschaft der Zelle abfragen.
If Cells(zeile, 24) = "" Then
Me.opt_Pause0.Value = True
End If
If Cells(zeile, 24).Text = "00:30" Then
Me.opt_Pause30.Value = True
End If
If Cells(zeile, 24).Text = "00:45" Then
Me.opt_Pause45.Value = True
End If
Gruß Werner
AW: OptionsGroup Werte auslesen und zurückschreiben
23.11.2019 11:48:43
Peer
Hallo Werner.
Ich dachte, wenn ich die Zelle als Zeitwert formatiert habe, kommt bei 0.5 30 min raus.
Falsch gedacht.
Ich habe auch mit den Texteigenschaft versucht, habe ab er .Text vergessen und deshalb funktioniert auch das nicht.
Also Danke für den Tipp.
Und setze ich die Werte wieder zurück in die Zelle...
    If Me.opt_Pause0.Value = True Then
.Cells(1, 24).Value = ""
ElseIf Me.opt_Pause30.Value = True Then
.Cells(1, 24).Value = 1 / 24 * 0.5
ElseIf Me.opt_Pause45.Value = True Then
.Cells(1, 24).Value = 1 / 24 * 0.75
End If
Auch dafür Danke.
LG
Peer
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
23.11.2019 12:07:42
Werner

263 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige