VBA Dropdown Menü mit Wenn Formel

  • Themenstarter Themenstarter Sartomo
  • Beginndatum Beginndatum
S

Sartomo

Hallo zusammen,

ich habe folgendes Problem. Ich will aus einem Formular aus einem Eingabefehld ein DropDown Menü erstellen, welches wiederum eine Wenn Funktion beinhaltet.

In einer Tabbelle Names Projekte steht in B3 der Projekte Name der Nachher erscheinen soll. Und als Abfrage Spalte D3. Wenn dort ein Ja drin steht soll B3 mit in das DropDown menü (Kombinationsfeld evtl.?) Wenn dort ein Nein steht soll dies nicht mehr dort erscheinen.

For intAnz = 1 To 14
Sheets("Tabelle1").Cells(ScrollBar1.Value + 1, intAnz) = Controls("Textbox" & intAnz)
Next intAnz
End Sub

Private Sub CommandButton2_Click()
' Neuer Datensatz
Dim lngLeZeile
lngLeZeile = leZeile + 1
For intAnz = 1 To 14
Sheets("Tabelle1").Cells(lngLeZeile, intAnz) = Controls("Textbox" & intAnz)
Next intAnz
End Sub

Private Sub CommandButton3_Click()
' Daten löschen
Rows(ScrollBar1.Value + 1).Delete Shift:=xlUp
End Sub

Private Sub ScrollBar1_Change()
Label15.Caption = "Datensatz " & ScrollBar1.Value & " von " & leZeile - 1
For intAnz = 1 To 14
Controls("Textbox" & intAnz) = Sheets("Tabelle1").Cells(ScrollBar1.Value + 1, intAnz)
Next intAnz
End Sub

Private Sub TextBox5_Change()

End Sub

Private Sub UserForm_Activate()
For intAnz = 1 To 14
Controls("Label" & intAnz) = Sheets("Tabelle1").Cells(1, intAnz)
Next intAnz
With ScrollBar1
.Min = 1
.Max = leZeile - 1
End With
End Sub

Function leZeile() As Long
Dim Adresse As String
Dim lngZeile As Long
Adresse = Sheets("Tabelle1").Range("A:IV").Find(What:="*", After:=Sheets("Tabelle1").Range("A65536"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Address
leZeile = CInt(Range(Adresse).Row)
End Function



Ich wäre um eine Hilfreiche Antwort sehr Dankbar. Ich habe gerade irgendwie ein Brett vor dem Kopf.

Besten Dank.
 
Könntest du bitte deinen Code formatiert posten?

[code=vb]dein Code[/code]

In welcher deiner Funktionen ist dein Programmansatz drin?
 
Also zum ersten bin ich ehrlich ein Freund hatte mir damals geholfen dies zu Programmieren für ein Einfaches Formular und dies ist halt ein der Tabellenfelder was ich zum DropDown menü machen will. Das einzige was ich mitlerweile rausgefunden habe wie ich es machen könnte wäre halt mit den Kombi feldern. Aber da komme ich dann mit der Abfrage nicht weiter. Und das Problem ist wenn ich dann einen Code habe wo ich nicht 100% durchsteige wie dieser den ich gepostet habe wüsste ich nicht wie ich die einzelne sache ändern könnte.
Visual Basic:
For intAnz = 1 To 14
Sheets("Tabelle1").Cells(ScrollBar1.Value + 1, intAnz) = Controls("Textbox" & intAnz)
Next intAnz
End Sub

Private Sub CommandButton2_Click()
' Neuer Datensatz
Dim lngLeZeile
lngLeZeile = leZeile + 1
For intAnz = 1 To 14
Sheets("Tabelle1").Cells(lngLeZeile, intAnz) = Controls("Textbox" & intAnz)
Next intAnz
End Sub

Private Sub CommandButton3_Click()
' Daten löschen
Rows(ScrollBar1.Value + 1).Delete Shift:=xlUp
End Sub

Private Sub ScrollBar1_Change()
Label15.Caption = "Datensatz " & ScrollBar1.Value & " von " & leZeile - 1
For intAnz = 1 To 14
Controls("Textbox" & intAnz) = Sheets("Tabelle1").Cells(ScrollBar1.Value + 1, intAnz)
Next intAnz
End Sub

Private Sub TextBox5_Change()

End Sub

Private Sub UserForm_Activate()
For intAnz = 1 To 14
Controls("Label" & intAnz) = Sheets("Tabelle1").Cells(1, intAnz)
Next intAnz
With ScrollBar1
.Min = 1
.Max = leZeile - 1
End With
End Sub

Function leZeile() As Long
Dim Adresse As String
Dim lngZeile As Long
Adresse = Sheets("Tabelle1").Range("A:IV").Find(What:="*", After:=Sheets("Tabelle1").Range("A65536"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Address
leZeile = CInt(Range(Adresse).Row)
End Function

##EDIT##

Visual Basic:
Function leZeile() As Long
    Dim Adresse As String
    Dim lngZeile As Long
    Adresse = Sheets("Projekte").Range("D:III").Find(What:="Ja", After:=Sheets("Projekte").Range("B:III"), _
        LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Address
    leZeile = CInt(Range(Adresse).Row)
End Function



so bin jetzt soweit das ich dir meinen Lösungsansatz geben kann, aber es funktioniert einfach nicht. Wie gesagt bin noch anfänger. Hoffe zumindest der Ansatz ist richtig. Mir reichen auch denkanstöße, sonst werde ich es ja nie lernen. Dies ist jetzt zu einem drop down Feld, welches ich mitlerweile so hinbekommen habe. Jetzt will ich es nur noch füllen.

Gruß
Sartomo
 
Zurück