Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1384to1388
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
Automatische Änderung in Userforntextboxen
11.10.2014 21:06:07
Heiko
Guten Abend zusammen
Ich habe, für euch sicherlich, ein kleines Problem.
Ich habe eine Exceldatei mit 2 Arbeitsblättern.
(1. AB = Fzg / 2. AB = Berechnungen)
In 1. stehen in Spalte A verschiedene Namen und in den folgenden Spalten dazugehörige Zahlenwerte (Grundwerte).
Die 2. ist genauso aufgebaut wie die 1., nur werden hier die Zahlenwerte des 1. ABs mit einer in der Userform befindlichen Textbox( überträgt die Zahl an eine Zelle (N2) auf dem 2. AB) multipliziert.
In der Userform habe ich eine Combobox, die mit den Namen des 1. AB befüllt wird.
Wähle ich dort einen Namen aus, sollen die Textboxen die jeweiligen Zahlenwerte aus dem 2. AB anzeigen.
Dies funktioniert auch prima.
Über die einzelne Textbox(AnzahlFzg) übergebe ich einen neuen Wert an die Tabelle. Jetzt sollten sich eigentlich die Werte in den Textboxen ändern, tun sie aber leider nicht.
Was muss ich machen, um dies hinzubekommen?
Ich hoffe ihr könnt mir helfen :)
Danke schon mal im voraus.
Benutze Excel 2013
Hier noch der Code, den ich bis jetzt habe (einiges auch hier im Forum gefunden):
MfG. H. Steinborn
----------------------------------------------------------------------------
Option Explicit
'Combobox mit Daten fuellen

Private Sub UserForm_Initialize()
With Auswahl_Fzg
Auswahl_Fzg.RowSource = "Fzg!A3:A26" 'Tabelle Fzg Spalte A
.Value = "- Fahrzeug auswählen -" 'Anzeige in der Combobox
.ListRows = 15 'kann ich an die Anzahl der Einträge anpassen
End With
'Abfrage aktueller Wert in Tabelle
Me.AnzahlFzg.ControlSource = "Berechnungen!N2"
End Sub

'Fuellen der Textboxen mit den Daten des ausgewaehlten Fzg

Private Sub Auswahl_Fzg_Change()
Dim F As Variant
Set F = Sheets("Fzg").Range("A3:A26").Find(Auswahl_Fzg)
If Not F Is Nothing Then
Label10.Caption = Sheets("Berechnungen").Range("B" & F.Row) 'Testlabel
Stahl = Sheets("Berechnungen").Range("B" & F.Row)
Carbon = Sheets("Berechnungen").Range("C" & F.Row)
Waffenstaerke = Sheets("Berechnungen").Range("D" & F.Row)
Panzerung = Sheets("Berechnungen").Range("E" & F.Row)
WaffenRW = Sheets("Berechnungen").Range("F" & F.Row)
Sicht = Sheets("Berechnungen").Range("G" & F.Row)
MP = Sheets("Berechnungen").Range("I" & F.Row)
Sprit = Sheets("Berechnungen").Range("J" & F.Row)
Zeit = Sheets("Berechnungen").Range("L" & F.Row)
End If
End Sub

'Uebergabe der Zahl aus Textbox an die Tabelle

Private Sub AnzahlFzg_change()
Sheets("Berechnungen").Range("N2") = AnzahlFzg.Value
End Sub

'Zahlenformat anpassen (Tausender)

Private Sub Stahl_Change()
If IsNumeric(Stahl.Text) Then Stahl.Text = Format(Stahl.Text, "#,##0")
End Sub

'Zahlenformat anpassen (Tausender)

Private Sub Carbon_Change()
If IsNumeric(Carbon.Text) Then Carbon.Text = Format(Carbon.Text, "#,##0")
End Sub

'Zahlenformat anpassen (Tausender)

Private Sub Waffenstaerke_Change()
If IsNumeric(Waffenstaerke.Text) Then Waffenstaerke.Text = Format(Waffenstaerke.Text, "#,##  _
_
_
_
_
0")
End Sub

'Formatierung der Zeitangabe

Private Sub Zeit_Change()
Zeit = Format(Zeit, "hh:mm:ss")
End Sub

' ---------------------------------------------------------
' Label sollte genauso formatiert werden, wie die Textboxen - geht aber nicht

' Private Sub label10_Activate()
' Labels10.Caption = Format(Sheets("Berechnungen").Range("B" & F.Row), "#,##0")
' End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Automatische Änderung in Userforntextboxen
11.10.2014 21:54:13
Steffi
Hallo,
wenn ich das richtig verstehe, dann willst du dass die Einträge in den Textboxen (Stahl, Carbon etc.) aktualisiert werden wenn der Wert aus der Textbox 'AnzahlFzg' an das Tabellenblatt übergeben wird. Ich würde das Ganze dann so machen:
Private Sub Auswahl_Fzg_Change()
Einträge_aktualisieren
End Sub
Private Sub AnzahlFzg_change()
Sheets("Berechnungen").Range("N2") = AnzahlFzg.Value
Einträge_aktualisieren
End Sub
Private Sub Einträge_aktualisieren()
Dim F As Worksheet
Set F = Sheets("Fzg").Range("A3:A26").Find(Auswahl_Fzg)
If Not F Is Nothing Then
Label10.Caption = Sheets("Berechnungen").Range("B" & F.Row) 'Testlabel
Stahl = Sheets("Berechnungen").Range("B" & F.Row)
Carbon = Sheets("Berechnungen").Range("C" & F.Row)
Waffenstaerke = Sheets("Berechnungen").Range("D" & F.Row)
Panzerung = Sheets("Berechnungen").Range("E" & F.Row)
WaffenRW = Sheets("Berechnungen").Range("F" & F.Row)
Sicht = Sheets("Berechnungen").Range("G" & F.Row)
MP = Sheets("Berechnungen").Range("I" & F.Row)
Sprit = Sheets("Berechnungen").Range("J" & F.Row)
Zeit = Sheets("Berechnungen").Range("L" & F.Row)
End If
Set F = Nothing
End Sub

Warum das mit dem Label nicht geht: da würde ich mal darauf tippen dass es daran liegen könnte, dass das Sub, welches das Label ändern soll, die Variable 'F' nicht kennt. Ist ja nur in einem anderem Sub definiert.
Gruß Steffi

Anzeige
AW: Automatische Änderung in Userforntextboxen
11.10.2014 21:56:56
Steffi
Kleinen Fehler gefunden:
Es sollte
Dim F as Range
heißen.

AW: Automatische Änderung in Userforntextboxen
12.10.2014 17:05:26
Heiko
Hallo Steffi
Danke für die schnelle Antwort. Ich werde dies sogleich testen und dann berichten.
Gruß Heiko

AW: Automatische Änderung in Userforntextboxen
12.10.2014 20:38:21
Heiko
Hallo Steffi
Ich nochmal:
Habe deinen Code so bei mir angepasst. Er funktioniert einwandfrei. Danke nochmal.
Ich habe mit einem Kollegen noch etwas rumgebastelt an dem Code und verwende jetzt nur noch Labels. Das hatte ich vorher so nicht hinbekommen.
Das ganze sieht dann wie folgt aus im Code: (für die, die später auch mal sowas benötigen)
Private Sub Einträge_aktualisieren()
Dim F As Range
Set F = Sheets("Fzg").Range("A3:A26").Find(Auswahl_Fzg)
'Werte aus Tabelle "Berechnungen" in die Labels schreiben und formatieren
If Not F Is Nothing Then
lblStahl.Caption = Format(CDbl(Sheets("Berechnungen").Range("B" & F.Row)), "#,##0")
lblCarbon.Caption = Format(CDbl(Sheets("Berechnungen").Range("C" & F.Row)), "#,##0")
lblWaffenstaerke.Caption = Format(CDbl(Sheets("Berechnungen").Range("D" & F.Row)), "#,##0")
lblPanzerung.Caption = Format(CDbl(Sheets("Berechnungen").Range("E" & F.Row)), "#,##0")
lblWaffenRW.Caption = Format(CDbl(Sheets("Berechnungen").Range("F" & F.Row)), "#,##0")
lblSicht.Caption = Format(CDbl(Sheets("Berechnungen").Range("G" & F.Row)), "#,##0")
LblMP.Caption = Format(CDbl(Sheets("Berechnungen").Range("I" & F.Row)), "#,##0")
lblSprit.Caption = Format(CDbl(Sheets("Berechnungen").Range("J" & F.Row)), "#,##0")
lblZeit.Caption = Format(Sheets("Berechnungen").Range("L" & F.Row), "hh:mm:ss")
End If
Set F = Nothing
End Sub
Also nochmal Danke für deine Hilfe.
Gruß Heiko
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige