Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1780to1784
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
Zeile finden und überschreiben VBA
10.09.2020 13:26:21
Anne
Hallo,
diese Anfrage schließt sich an das folgende Thema an:
https://www.herber.de/forum/archiv/1776to1780/1777714_Zeile_finden_und_ueberschreiben_VBA.html#1778025
Anbei die angepasste Datei. Wenn man die Userform (Schaltfläche dazu befindet sich auf Tabelle1) aufruft habe ich alles genau erklärt und auch mein Problem geschildert, welches ich habe:
https://www.herber.de/bbs/user/140170.xlsm
Grob gesagt, möchte ich mit Hilfe einer Userform eine Tabelle nach einem Wert durchsuchen. Diesen Wert in einer Combobox(1) ausgeben und die dazugehörigen Spalten in andere Comboboxen und Textboxen übernehmen. Einzelne Comboboxen sollen nur mit einem Dropdown, der vorgegeben ist, abgeändert werden können oder Textboxen die einfach überschrieben werden. Abschließend möchte ich die Änderungen, die in der Userform gemacht wurden, in den Comboboxen mit Dropdown oder im Textfeld mit der Überschreibung, mit einem Button in die Tabelle überschreiben.
In den Comboboxen dürfen für die Änderung nur die Werte aus dem Dropdown genommen werden und nicht einfach irgendwelche.
Ich hoffe, nun habe ich mein Problem ausführlich und zu eurer Zufriedenheit geschildert. Über eure Hilfe, wäre ich mehr als Dankbar!!
Vielen lieben Dank und liebe Grüße
Anne

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile finden und überschreiben VBA
10.09.2020 17:22:10
fcs
Hallo Anne,
nachfolgend der Code des Userforme etwas aufgeräumt.
Die Combobox4 hab ich mal außen vor gelassen, da du sie ja nur zum Testen hast.
Meine Frage noch: Was soll mit dem Wert in der Combobox5 passieren, wenn du auf Anpassen klickst?
Ich habe hier erst einmal eine Prüfung eingebaut, ob ein Wert gewählt wurde.
LG
Franz
Option Explicit
Dim bAnpassenClick As Boolean
Private Sub UserForm_initialize()
Dim werte As Object
Dim i, lngZeileMax, lngZeileMaxMA As Long
lngZeileMax = Tabelle1.UsedRange.Rows.Count
With Me.ComboBox1
.RowSource = "Tabelle1!A2:E" & lngZeileMax
.ColumnCount = 5
.Style = fmStyleDropDownList
.ListIndex = -1
.ListRows = 8
End With
lngZeileMaxMA = Tabelle2.UsedRange.Rows.Count
With Me.ComboBox2
.RowSource = "Tabelle2!A2:B" & lngZeileMaxMA
.ColumnCount = 2
.Style = fmStyleDropDownList
.ListRows = 5
End With
Set werte = CreateObject("Scripting.Dictionary")
With Worksheets("Tabelle3")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(i, 3) = "F" Then
werte(.Cells(i, 2).Text) = 0
End If
Next
End With
Me.ComboBox3.List = Application.Transpose(werte.Keys)
ComboBox5.Style = fmStyleDropDownList
Set werte = Nothing
End Sub
Private Sub ComboBox1_Change()
Dim i As Long
With ComboBox1
If .ListIndex = -1 Or .Text = "" Then
ComboBox2.Value = ""
ComboBox3.Value = ""
ComboBox5.Value = ""
TextBox1.Value = ""
Else
If bAnpassenClick = False Then
ComboBox2.Value = .List(.ListIndex, 1)
ComboBox3.Value = .List(.ListIndex, 2)
TextBox1.Value = .List(.ListIndex, 3)
End If
End If
End With
End Sub
Private Sub ComboBox3_Change()
Dim i As Long
With Worksheets("Tabelle3")
Me.ComboBox5.Clear
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Me.ComboBox3 = .Cells(i, 2) And .Cells(i, 3) = "F" Then
Me.ComboBox5.AddItem .Cells(i, 1)
End If
Next i
End With
End Sub
Private Sub CommandButton1_Click()
Dim r As Long
If Me.ComboBox5.ListIndex = -1 Then
MsgBox "Es ist noch kein Wert in Combobox5 gewählt!", vbOKOnly, "Prüfung Dateneingabe"
Exit Sub
End If
bAnpassenClick = True
With Sheets("Tabelle1")
r = ComboBox1.ListIndex + 2
.Cells(r, 2).Value = ComboBox2
.Cells(r, 3).Value = ComboBox3
.Cells(r, 4).Value = TextBox1
End With
bAnpassenClick = False
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige