Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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

2 Fragen zu VBA

2 Fragen zu VBA
21.02.2021 12:59:56
BikerAndi
https://www.herber.de/bbs/user/144116.xlsm
Hallo
(Microsoft 365 keine pro version) 32Bit auf windows 7 MSO(16.0....) Sep 2019
bin gerade dabei mich in VBA einzuarbeiten und versuche das parallel zu einem kleinen Projekt anzuwenden,
Nun stehe ich vor 2 Problemen:
1. Ich habe in miner Userform sehr viele Comboboxen die bei Auswahl eines Wertes eine farbiche Hintergrundveränderung im dazugehörigen Label und einen Wert in ein danebenstehendes Textfeld setzt.
Das Problem. Wie kann ich die Veränderungen für Alle COmboboxen .Textboxen und Labels (sind Alle durchnummeriert) generell ansprechen und lediglich im Combo_Box & i Change() die Nummern der Combobox,Textbox und Label eintragen. und danach die Routine aufrufen. Ich müsste sonst für unzählige
Comboboxen den Code kopieren, das wirkt nicht gut und bin sicher dass man das eleganter lösen kann.
Beispieldatei siehe Combox für Reifen
2. Auf einem Arbeitsblatt Zelle C13 bis L13 wird der Zustand des Reifens abgefragt, der über Userform gesetzt werden soll, und zwar jedesmal eine Spalte weiter wenn sich der Zustand ändert. Die Zeile soll dann aufgefüllt werden ohne das ein Zeilenwert vorher überschrieben wird. Mit Spalten bekomme ich das hin, aber nicht für einen Zeilenbereich.
Ich hoffe ich konnte mich einigermassen verständlich ausdrücken und freue mich aud Rückantwort

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

Betreff
Datum
Anwender
Anzeige
AW: 2 Fragen zu VBA
21.02.2021 15:36:55
onur
Speichere den Wert in eine zusätzliche Spalte der Combobox und und die Farbenskala (bleibt ja immer gleich) in ein Public-Array.
Wenn die Labels, die Textboxen und ComboBoxen die gleichen Nummern hätten, wäre es noch einfacher.
Schau dir mal ComboBox56_Change und UserForm_Initialize (speziell das Befüllen von ComboBoxen 50 bis 86) an.
https://www.herber.de/bbs/user/144122.xlsm
Anzeige
AW: 2 Fragen zu VBA
21.02.2021 18:59:26
volti
Hallo Andi,
falls Du noch Bedarf hast, bietet sich für diese Massenverarbeitung noch eine Klassenprogrammierung an.
Es gibt für alle Comboboxen nur eine kleine Sub im Klassenmodul.
Mein Vorschlag:
Jedes Control hat in den Eigenschaften einen Parameter "Tag".
Gebe in einer Fleißarbeit jeder Combobox/Label/Textbox-Gruppe eine eindeutige Tag-Nummer.
Über die Tag-Nummer erkennt das Programm dann, welche Controls zusammengehören.
Für die erste Multipage habe ich das schon gemacht...
Teste mal die anliegende Beispielmappe, ob es in Deinem Sinne funktioniert.
https://www.herber.de/bbs/user/144130.xlsm
viele Grüße
Karl-Heinz
Anzeige
AW: 2 Fragen zu VBA
22.02.2021 12:51:48
BikerAndi
Hallo und erst einmal vielen Dank für das schnelle Feedback.
Habe gerade von Karl-Heinz mir mal angeschaut, das klappt prima für die Farbsteuerung. Aber den Wert bekomme ich nicht in die Textbox geschrieben! ?
AW: 2 Fragen zu VBA
22.02.2021 14:18:39
volti
Hallo Andi,
die Abfrage der Textboxen ist case-sensitiv, ich hatte irgendwie nur auf die Farben geachtet, sorry.
Mit der gelben Änderngen sollten jetzt auch die Texte reinkommen. (Felder zu klein?)
Code:

[Cc][+][-]

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
Option Explicit Public WithEvents Combobox As MSForms.Combobox Private Sub ComboBox_Change() Dim vWert As Variant, iCol As Long Dim iTag As Integer, oCtrl As Object If Combobox.Tag = "" Then Exit Sub Select Case Combobox.Value Case "": iCol = 1: vWert = 0 Case "defekt": iCol = 6: vWert = -5 Case "fehlt": iCol = 5: vWert = -3 Case "51%": iCol = 4: vWert = -0 Case "ok": iCol = 3: vWert = 5 Case "neu": iCol = 2: vWert = 7 Case Else: Exit Sub End Select ' Zugeordnetes Label und Textbox anhand des Tag finden For Each oCtrl In WksFormular.Controls If oCtrl.Tag = Combobox.Tag Then Select Case TypeName(oCtrl) Case "Label": oCtrl.BackColor = Tabelle1.Cells(iCol, 5).Interior.Color Case "TextBox": oCtrl.Value = vWert End Select End If Next oCtrl End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: 2 Fragen zu VBA
22.02.2021 17:29:02
BikerAndi
Lieber Karl Heinz
Tausend Dank,. Das ist genau das was ich möchte. Vielleicht hast Du auch noch eine einfache Antwort für meine 2.te Frage?
Nochmals vielen Dank Klasse!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige