Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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
Change Event für 25 TextBoxen
22.09.2016 08:31:06
Franz
Liebe VBA Profis,
nachfolgendes Change Ereignis steht jeweils in den TextBoxen 4 bis 28!
Dies möchte ich nun vereinfachen, in dem ich einer Art Schleife einbaue, sodass ich das Change_Event nur einmal aufrufen muss. Eventuell kann man das auch über eine Klasseninstanz lösen.
Danke für eure Hilfe
Private Sub TextBox4_Change()
Dim iTB As Long
If IsNumeric(TextBox4.Value) = False Then TextBox4.Value = "0"
For iTB = 4 To 28
With Controls("TextBox" & iTB)
If .Text = "" Then .Text = "0"
If .Text  "0" Then
.ForeColor = &H0&
Else
.ForeColor = &HFFFFFF
End If
End With
Next iTB
Call TB_rechnen
End Sub
Sub TB_rechnen()
TextBox3.Text = CDbl(TextBox4) + CDbl(TextBox5) + CDbl(TextBox6) + CDbl(TextBox7) + CDbl(TextBox8) + CDbl(TextBox9) _
+ CDbl(TextBox10) + CDbl(TextBox11) + CDbl(TextBox12) + CDbl(TextBox13) + CDbl(TextBox14) + CDbl(TextBox15) _
+ CDbl(TextBox16) + CDbl(TextBox17) + CDbl(TextBox18) + CDbl(TextBox19) + CDbl(TextBox20) _
+ CDbl(TextBox21) + CDbl(TextBox22) + CDbl(TextBox23) + CDbl(TextBox24) + CDbl(TextBox25) + CDbl(TextBox26) _
+ CDbl(TextBox27) + CDbl(TextBox28)
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change Event für 25 TextBoxen
22.09.2016 09:12:21
Luschi
Hallo Franz Josef,
Du solltest uns noch verraten , wo die Textboxen liegen:
- auf dem Tabellenblatt oder
- im Formular
Gruß von Luschi
aus klein-Paris
PS: eine Klasseninstanz ist dabei die bessere Wahl
AW: Change Event für 25 TextBoxen
22.09.2016 10:13:40
Franz
Hallo Luschi,
diese TextBoxen liegen alle in einer UserForm!
AW: Change Event für 25 TextBoxen
23.09.2016 13:35:00
Luschi
Hallo Franz Josef,
da das Ereignis 'Change()' der Textbox bei jeder Zeicheneiungabe reagiert,
macht Dein Code doch eigentlich keinen sinn, denn da beißt sich die Katze
doch selbst in de Schwanz.
Angenommen, der User will den Wert '123' eingeben, doch schon nach dem 1. Zeichen (1) reagiert das Ereignis und führt die Berechnung aus.
Ist das so gewollt?
fragt sich Luschi
aus klein-Paris
Anzeige
AW: Change Event für 25 TextBoxen
26.09.2016 08:10:53
Franz
Hallo Luschi,
ja das ist so gewollt, dass sich die Summe der TextBox3 bei jeder Eingabe in TB4 bis TB28 aktualisiert.
(zu 99% werden ohnehin nur einstellige Zahlen eingegeben)
Danke für deine Hilfe, liebe Grüße
Josef
ich weiß nicht...
27.09.2016 18:01:38
Michael
Hi,
woher kommt den "initiale" Befüllung der TBen?
Man sollte doch meinen, daß es genügt, die Färbung (="" bzw. =0) EINMAL bei der Initialisierung zu machen und dann nur für die jeweils geänderte TB.
Ebenso die Berechnung: wenn die Werte der TBen von irgendwo eingelesen werden, steckt ja sicher ein Array dahinter: entweder Du füllst dann mit Tb1=cstr(wert(1)) oder im Array stehen ohnehin die Zahlen als Text.
Was hintert Dich daran, das Array zweispaltig anzulegen und in der zweiten Spalte die Zahlenwerte vorzuhalten? Dann müßtest Du ebenfalls nur EINMAL bei der Initialisierung rechnen, bei weiteren Änderungen kennst Du ja die Position der Zahl im Array, liest die alte aus, schreibst die neue rein und verrechnest beide Werte mit der bereits ermittelten Summe: das wäre viel weniger Aufwand.
Schöne Grüße,
Michael
Anzeige
AW: ich weiß nicht...
28.09.2016 09:51:28
Franz
Hallo Michael,
vorerst einmal danke für deinen Lösungsansatz und Denkanstoß.
Diese TBen werden mit einem Doppelklick auf eine Artikelnummer aus Tabelle Auftrag, mit den jeweiligen Lagerbeständen aus Tabelle Lager gefüllt. Nach Mengenänderung im Sortimentsraster (TB 4 bis 28) wird die Summentextbox sofort über ein Change Event neu berechnet.( Das aber für jede Texbox, also 25x)
Das abgeänderte Sortiment kann dann über eine CButton in das Auftragsformular übernommen werden.
Das Ändern von leer auf null erfolgt auch schon beim Einlesen der Daten über eine Schleife und auch nur deshalb, weil mit "" keine Textboxsummenbildung möglich ist. Dass Einfärben der ForeColor passiert eigentlich nur aus optischen Gründen, dass keine Nullen im Raster angezeigt werden.
Die Lagerbestände werden übrigens aus einer Progress Datenbank importiert.
Anzeige
ok, danke
28.09.2016 14:24:51
Michael
Hallo FJ,
na dann...
Ich war nur neugierig, möchte mich aber nicht weiter einmischen, da Dir Luschi ja bereits geholfen hat.
Schöne Grüße,
Michael

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige