Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

In VBA ein Formularsteuerelement direkt ansteuren

Forumthread: In VBA ein Formularsteuerelement direkt ansteuren

In VBA ein Formularsteuerelement direkt ansteuren
17.02.2015 12:50:20
Daniel
Hallo! Ich würde gerne wissen, wie ich den Eingabebereich eines Kombinationsfelds per VBA verändern kann, OHNE es zu selecten. Hier ist meine SUB. Ich entschuldige mich im Voraus für meine Art des Code schreibens, darum kümmer ich mich später
Sub Deckelhinzufuegen()
'Abkürzungen definieren
Dim WS As Object, A As String, B As String, C As String, R As Range, S As Object, WB As  _
Workbook, path As String, Antwort As Integer, Name As String, x As Integer, Betrag As String
Set WS = Worksheets:
A = "Tabelle1"
B = "Tabelle2"
C = "Tabelle3"
'Zellverknüpfung auf '0' setzen!
WS(B).Range("D3").ClearContents
'MsgBox: Wen möchten Sie auf den Deckel eintragen? Bitte Namen und Vornamen angeben!
'MsgBox: Namen eingeben
'MsgBox: ok drücken
'Name in Eigabebereich einbinden
Antwort = MsgBox("Möchten Sie einen neuen Deckel hinzufügen?", vbQuestion + vbYesNo, "Deckel  _
hinzufügen?")
If Antwort = vbYes Then
Name = InputBox("Bitte den vollständigen Namen eigeben (Vorname und Nachname!)", "  _
_
Deckel hinzufügen", "Max Mustermann")
If Name = "" Then End
x = 3
Do Until WS(B).Cells(x, 2) = ""
x = x + 1
Loop
Betrag = InputBox("Welcher Betrag soll auf den Deckel von " + Name + " eingezahlt   _
_
werden?", "Betrag auf Deckel von " + Name + " einzahlen", "20")
If Betrag = "" Then End
WS(B).Cells(x, 2) = Name
WS(B).Cells(x, 3) = Betrag
WS(C).Range("E13") = WS(C).Range("E13") + Betrag
WS(B).Range("$B$2:$K$" + CStr(x + 2)).Sort key1:=WS(B).Range("B3"), order1:= _
xlAscending, Header:=xlYes
'200 wird als Maximum gesetzt, da mehr Deckel unwarscheinlich sind
WS(A).Shapes.Range(Array("Drop Down 47")).Select
With Selection
.ListFillRange = "Tabelle2!$B$3:$B$" + CStr(x)
End With
WS(A).Range("D16").Select
WS(B).Range("E1").ClearContents
End If
End Sub
Das fett und kursive ist der entscheidende Teil. WS(A) ist schreibgeschützt, daher wird am Ende nochmal WS(A).Range("D16").Select, damit das Kombinationsfeld nicht weiterhin ausgewählt ist, sondern garkeine Zelle (schreibschutz) ausgewählt ist. Es funktioniert, ist aber nicht hübsch. Und ich will nicht mit SELECT arbeiten.
Ich danke euch im Voraus für eure Hilfe!
LG Daniel Schöler

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In VBA ein Formularsteuerelement direkt ansteuren
17.02.2015 12:56:05
ransi
Hallo,
Mach mal so:
Sheets("Tabelle1").DropDowns("DropDown 47").ListFillRange = "Tabelle2!$B$3:$B$" & X

Den Namen des Tabellenblattes musst du anpassen.
rqansi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige