Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: textboxen in userform aktualisieren

textboxen in userform aktualisieren
15.05.2014 20:03:04
Spenski
huhu
ich habe ein userform geöffnet mit knapp 100 textboxen.
die meisten sind über controlsource mit zellen auf Tabelle1 verknüpft andere über
zb TextBox46 = Sheets(1).Range("c6")
wen sich jetzt im tabellenblatt was ändert aktuallisieren sich diese textboxen nicht mit.
kann mir jemand sagen wie das geht?
denke mal über ein worksheets_change oder workbooks_change ? ereignis aber find im netz nur codes für 2003
danke fürs lesen

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: textboxen in userform aktualisieren
15.05.2014 20:27:08
Gerd
Hi,
da gibt es keine Versionsunterschiede 2003 - 2010 bei diesen Change-Ereignis-Prozeduren.
Gruß Gerd

AW: textboxen in userform aktualisieren
15.05.2014 20:33:08
Spenski
okay dann kann ichs nicht umsetzen :D
dank dir

AW: textboxen in userform aktualisieren
15.05.2014 20:44:14
Spenski
hallo hier nochmal das was ich versucht hab
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$b$6" Then
TextBox46 = Sheets(1).Range("c6")
End If
End Sub

wenn sich im tabelle1 in der zelle b6 etwas ändert soll userform1.textbox46 = c6 sein
gruss

Anzeige
Frage dazu,...
15.05.2014 21:09:03
Matze
Hallo Spenski,
benutzt du die UserForm mit Eigenschaft Modal=false?
dann würde ich die Variante noch verstehen das mann die Änderung gleich "sichtbar" in der UF hat.
Anderenfalls liest du doch bestimmt die TextBoxen mit der Useform/Initialize ein, oder?
Private Sub UserForm_Initialize()
Dim T As Byte
For T = 1 To 3
'A1-A3 in TextBox lesen
UserForm1.Controls("Textbox" & T).Value = Cells(T, 1).Value
Next T
End Sub
So muss in die 2 Meter,...
Gruß Matze

Anzeige
AW: Frage dazu,...
15.05.2014 21:22:52
Spenski
hallo matze die userform ist immer geöffnet und dient als eingabemaske für die arbeit
.

Private Sub UserForm_Initialize() greifft ja nur beim öffnen der uF . das funktioniert auch  _
soweit.aber halt nur beim ersten öffnen
wenn ich aber in der maske was eingebe ,kann sich im tabellenblatt was verändern , was mir auf  _
der userform angezeit werden soll....
mit einem button funktionierts auch so wie ichs will. zb

Private Sub CommandButton6_Click()
TextBox46 = Sheets(1).Range("c6")
End Sub
würd halt nur gerne das er dies autoamtisch macht sobald sich auf dem tabellenblatt was ändert
gruss

Anzeige
AW: Frage dazu,...
15.05.2014 22:06:17
EtoPHG

Hallo Spenski,
Beispiel: 1 Userform. 3 Textboxen.
Textbox1 schreibt in Zelle A6
Textbox2 schreibt in Zelle B6
Textbox3 liest von Zelle C6, in der die Formel =A6+B6 steht.
' Code im Klassenmodul der Userform
Option Explicit
Dim wks As Worksheet
Private Sub TextBox1_Change()
wks.Cells(6, 1) = Val(TextBox1)
End Sub
Private Sub TextBox2_Change()
wks.Cells(6, 2) = Val(TextBox2)
End Sub
Private Sub UserForm_Initialize()
Set wks = ThisWorkbook.Worksheets("Tabelle1")
TextBox1 = wks.Cells(6, 1).Text
TextBox2 = wks.Cells(6, 2).Text
TextBox3 = wks.Cells(6, 3).Text
End Sub
und
' Code im Klassenmodul der Tabelle1
Option Explicit
Private Sub Worksheet_Calculate()
UserForm1.TextBox3 = Cells(6, 3).Text
End Sub
Gruess Hansueli

Anzeige
AW: Frage dazu,...
15.05.2014 22:20:00
Spenski
hat wunderbar geklappt. dank dir

AW:kein Code notwendig
15.05.2014 22:15:28
Ewald
Hallo,
wenn die Textboxen Per RowSource verbunden sind, aktualisieren die sich automatisch.
Das die Userform auf ShowModal = False eingestellt ist, sollte klar sein, denn sonst kannst du ja nicht in der Tabelle ändern.
Du kannst in beiden Richtungen ändern,sowohl Textbox als auch Tabelle, allerdings nur mit Werten,Formeln werden überschrieben, da RowSource nur Text kann.
Gruß Ewald

Anzeige
AW: AW:kein Code notwendig
15.05.2014 22:21:08
Spenski
hallo ewald. die zelle die ich in der textbox anzeigen lassen will enthält eine formel.
aber hansueli sein code hat wunderbar geklappt.
gruss

AW: wenn Code dann keine RowSource
15.05.2014 22:34:19
Ewald
Hallo,
wenn Code dann die RowSource rausnehmen
Sinnvoll wäre auch bei so vielen Textboxen eine Schleife zu verwenden
Gruß Ewald
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Textboxen in Userform aktualisieren


Schritt-für-Schritt-Anleitung

Um die Textboxen in einer Userform automatisch zu aktualisieren, wenn sich Daten im Arbeitsblatt ändern, kannst Du das Worksheet_Change-Ereignis verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Userform hinzu: Rechtsklicke im Projekt-Explorer auf dein Projekt und wähle Einfügen -> UserForm.

  3. Füge Textboxen hinzu: Ziehe aus der Toolbox die erforderliche Anzahl an Textboxen in das Userform.

  4. Öffne das Modul des Arbeitsblatts: Doppelklicke auf das Arbeitsblatt, dessen Änderungen Du verfolgen möchtest (z.B. Tabelle1).

  5. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Not Intersect(Target, Me.Range("B6")) Is Nothing Then
           UserForm1.TextBox46.Value = Me.Range("C6").Value
       End If
    End Sub
  6. Initialisiere das Userform: Doppelklicke auf das Userform und füge den folgenden Code hinzu:

    Private Sub UserForm_Initialize()
       TextBox46.Value = Sheets(1).Range("C6").Value
    End Sub
  7. Teste die Userform: Schließe den VBA-Editor und starte die Userform, um die Funktionalität zu überprüfen.


Häufige Fehler und Lösungen

  • Fehler: Textboxen aktualisieren sich nicht.

    • Lösung: Stelle sicher, dass der Worksheet_Change-Code im richtigen Arbeitsblattmodul steht und dass die Event-Handler korrekt geschrieben sind.
  • Fehler: Userform schließt sich unerwartet.

    • Lösung: Überprüfe die ShowModal-Eigenschaft des Userforms. Stelle sicher, dass sie auf False gesetzt ist.

Alternative Methoden

Eine alternative Methode zur Aktualisierung der Textboxen in der Userform ist die Verwendung der Worksheet_Calculate-Prozedur. Diese Methode funktioniert gut, wenn Du sicherstellen möchtest, dass die Textboxen aktualisiert werden, sobald Excel eine Berechnung durchführt.

Private Sub Worksheet_Calculate()
    UserForm1.TextBox3.Value = Cells(6, 3).Value
End Sub

Diese Methode ist besonders nützlich, wenn Du mit Formeln arbeitest, die sich auf andere Zellen beziehen.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung der UserForm:

  1. Drei Textboxen Beispiel:

    • TextBox1 schreibt in Zelle A6.
    • TextBox2 schreibt in Zelle B6.
    • TextBox3 liest von Zelle C6, wo die Formel =A6+B6 steht.
    ' Code im Klassenmodul der Userform
    Private Sub TextBox1_Change()
       ThisWorkbook.Worksheets("Tabelle1").Cells(6, 1).Value = Val(TextBox1)
    End Sub
    
    Private Sub TextBox2_Change()
       ThisWorkbook.Worksheets("Tabelle1").Cells(6, 2).Value = Val(TextBox2)
    End Sub
    
    Private Sub UserForm_Initialize()
       TextBox1.Value = ThisWorkbook.Worksheets("Tabelle1").Cells(6, 1).Value
       TextBox2.Value = ThisWorkbook.Worksheets("Tabelle1").Cells(6, 2).Value
       TextBox3.Value = ThisWorkbook.Worksheets("Tabelle1").Cells(6, 3).Value
    End Sub

Tipps für Profis

  • Nutze Schleifen, um mehrere Textboxen gleichzeitig zu aktualisieren. Das spart Zeit und macht den Code wartungsfreundlicher.

    Dim T As Integer
    For T = 1 To 3
      UserForm1.Controls("TextBox" & T).Value = ThisWorkbook.Worksheets("Tabelle1").Cells(T, 1).Value
    Next T
  • Verwende RowSource für einfache Datenbindungen, wenn Du keine Formeln in den Zellen hast.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Userform immer die aktuellen Werte anzeigt? Um sicherzustellen, dass die Userform immer die aktuellen Werte anzeigt, implementiere das Worksheet_Change-Ereignis, das die Textboxen aktualisiert, wenn sich die Daten im Arbeitsblatt ändern.

2. Was ist der Unterschied zwischen UserForm_Initialize und Worksheet_Change? UserForm_Initialize wird nur einmal beim Öffnen der Userform aufgerufen, während Worksheet_Change jedes Mal aktiviert wird, wenn sich ein Wert auf dem Arbeitsblatt ändert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige