Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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
Von ComboBoxen zu Textboxen wechseln
10.12.2014 13:40:56
Andreas
Hallo Excelforum,
Mit folgendem Code befülle ich 15 ComboBoxen mit jeweils allen *.xlsb Dateien die sich im gleichen Ordner befinden.
Danach wähle ich in den ComboBoxen verschiedene Dateien aus und per Commandbuttons (für jede ComboBox einer) werden Verknüpfungen zu den gewählten Dateien angelegt.
Da es in Zukunft bis zu 30 ComboBoxen werden müssen ist meine bisherige Verfahrensweise zu fehleranfällig.
Meine Idee, die Dateien in 30 Textboxen einzulesen (in jede Textbox eine). Dazu habe ich mit der Funktion =INDEX(DAT;ZEILE()-7) eine Liste aller im Ordner vorhandenen *.xlsb-Dateien im Blatt "Übersicht" angelegt.
Wie müsste der Code nach folgendem Schema aussehen und wie bekomme ich den Inhalt der Textboxen dann in den Befehl der durch die CommandButtons ausgelöst wird rein (siehe Unten) : Private Sub UserForm_Initialize() Dim strFile As String strFile = Dir(ThisWorkbook.Path & "\*.xlsb" _ span>) ComboBox1.Clear ComboBox2.Clear ComboBox3.Clear ComboBox4.Clear ComboBox5.Clear ComboBox6.Clear ComboBox7.Clear ComboBox8.Clear ComboBox9.Clear ComboBox10.Clear ComboBox11.Clear ComboBox12.Clear ComboBox13.Clear ComboBox14.Clear ComboBox15.Clear Do Until strFile = _ _ ComboBox1.AddItem Left(strFile, Len(strFile)) 'TextBox1 = Dateipfad dieser Datei + Inhalt der Zelle AX8 (Hier steht der Dateiname: _ Vorlage01.xlsb) ComboBox2.AddItem Left(strFile, Len(strFile)) 'TextBox2 = Dateipfad dieser Datei + Inhalt der Zelle AX9 (Hier steht der Dateiname: _ Vorlage02.xlsb) ComboBox3.AddItem Left(strFile, Len(strFile)) 'TextBox3 = Dateipfad dieser Datei + Inhalt der Zelle AX10 (Hier steht der Dateiname: _ Vorlage03.xlsb) ComboBox4.AddItem Left(strFile, Len(strFile)) ComboBox5.AddItem Left(strFile, Len(strFile)) ComboBox6.AddItem Left(strFile, Len(strFile)) 'usw. ComboBox7.AddItem Left(strFile, Len(strFile)) ComboBox8.AddItem Left(strFile, Len(strFile)) ComboBox9.AddItem Left(strFile, Len(strFile)) ComboBox10.AddItem Left(strFile, Len(strFile)) ComboBox11.AddItem Left(strFile, Len(strFile)) ComboBox12.AddItem Left(strFile, Len(strFile)) ComboBox13.AddItem Left(strFile, Len(strFile)) ComboBox14.AddItem Left(strFile, Len(strFile)) ComboBox15.AddItem Left(strFile, Len(strFile)) strFile = Dir Loop End Sub
Die Commandbuttons (bisher 15) möchte ich auf einen legen, nach dem Prinzip:
If TextBox1 "" Then 'setze Verknüpfungen wie unter CommandButton1
If TextBox2 "" Then ''setze Verknüpfungen wie unter CommandButton2
Bis alle Textboxen abgearbeitet sind.
Private Sub CommandButton1_Click()
Dim strFile As String, strForm As String
ActiveSheet.Unprotect Password:="BlAnWes"
With ComboBox1
If .ListIndex > -1  _
Then
strFile = .List(.ListIndex)
Else
' keine Datei ausgewählt - was tun?
End If
End With
If strFile  "" Then
' Anfang der Formel _
_
span>
strForm = "'" & ThisWorkbook.Path & "\[" & strFile & "] _
Anwesenheit'!"
With ThisWorkbook.Sheets("Übersicht") ' Zielblatt
.Range("A8").Formula = "=" & "If(" & strForm & "$H$5" & "="""",""""," & strForm & "$H$5" & ")"
.Range("A3").Formula = "=" & "If(" & strForm & "A3" & "="""",""""," & strForm & "A3" & ")"
.Range("J1").Formula = "=" & "If(" & strForm & "J1" & "="""",""""," & strForm & "J1" & ")"
.Range("B5").Formula = "=" & "If(" & strForm & "B5" & "="""",""""," & strForm & "B5" & ")"
.Range("X5").Formula = "=" & "If(" & strForm & "X5" & "="""",""""," & strForm & "X5" & ")"
.Range("A9:AG33").Formula = "=" & "If(" & strForm & _
"A8" & "="""",""""," & strForm & "A8" & ")"
TextBox3.Value = Format(Sheets("Ü _
bersicht").Range("J1"), "YYYY-MM")
End With
End If
ActiveSheet.Protect Password:="BlAnWes"
End Sub
Private Sub  _
CommandButton2_Click()
Dim strFile As String, strForm As String
ActiveSheet.Unprotect Password:="BlAnWes" _
With ComboBox2
If .ListIndex > -1 Then
strFile = .List(.ListIndex)
Else
' keine Datei ausgewählt - was tun?
End If
End With
If strFile  "" Then
' Anfang der Formel _
_
span>
strForm = "'" & ThisWorkbook.Path  _
38; "\[" & strFile & "] _
Anwesenheit'!"
With ThisWorkbook.Sheets("Übersicht") ' Zielblatt
.Range("A34").Formula = "=" & "If(" & strForm & "$H$5" & "="""",""""," & strForm & "$H$5" & ")"
.Range("A35:AG59").Formula  _
= "=" & "If(" &  _
strForm & "A8" & "="""",""""," & strForm & "A8" & ")"
End With
End If
ActiveSheet.Protect Password:="BlAnWes"
   End Sub

Kann mir bitte Jemand dabei helfen!
Vielen Dank fürs lesen und die Hilfe!
mfg, Andreas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Von ComboBoxen zu Textboxen wechseln
10.12.2014 13:55:01
Andreas
Durch Excel Code Jeanie ist es ein wenig unübersichtlich, hab wohl noch zu wenig Erfahrung mit dem Programm:
Hier noch mal Übersichtlicher:
Mit folgendem Code befülle ich 15 ComboBoxen mit jeweils allen *.xlsb Dateien die sich im gleichen Ordner befinden.
Danach wähle ich in den ComboBoxen verschiedene Dateien aus und per Commandbuttons (für jede ComboBox einer) werden Verknüpfungen zu den gewählten Dateien angelegt.
Da es in Zukunft bis zu 30 ComboBoxen werden müssen ist meine bisherige Verfahrensweise zu fehleranfällig.
Meine Idee, die Dateien in 30 Textboxen einzulesen (in jede Textbox eine). Dazu habe ich mit der Funktion =INDEX(DAT;ZEILE()-7) eine Liste aller im Ordner vorhandenen *.xlsb im Blatt "Übersicht" angelegt.
Wie müsste der Code nach folgendem Schema aussehen und wie bekomme ich den Inhalt der Textboxen dann in den Befehl der durch die CommandButtons ausgelöst wird rein (siehe Unten) :

Private Sub UserForm_Initialize()
Dim strFile As String
strFile = Dir(ThisWorkbook.Path & "\*.xlsb")
ComboBox1.Clear
ComboBox2.Clear
ComboBox3.Clear
ComboBox4.Clear
ComboBox5.Clear
ComboBox6.Clear
ComboBox7.Clear
ComboBox8.Clear
ComboBox9.Clear
ComboBox10.Clear
ComboBox11.Clear
ComboBox12.Clear
ComboBox13.Clear
ComboBox14.Clear
ComboBox15.Clear
Do Until strFile = ""
ComboBox1.AddItem Left(strFile, Len(strFile))  	'TextBox1 = Dateipfad dieser Datei +  _
Inhalt der Zelle AX8 (Hier steht der Dateiname: Vorlage01.xlsb)
ComboBox2.AddItem Left(strFile, Len(strFile))	'TextBox2 = Dateipfad dieser Datei + Inhalt  _
der Zelle AX9 (Hier steht der Dateiname: Vorlage02.xlsb)
ComboBox3.AddItem Left(strFile, Len(strFile))	'TextBox3 = Dateipfad dieser Datei + Inhalt  _
der Zelle AX10 (Hier steht der Dateiname: Vorlage03.xlsb)
ComboBox4.AddItem Left(strFile, Len(strFile))
ComboBox5.AddItem Left(strFile, Len(strFile))
ComboBox6.AddItem Left(strFile, Len(strFile))				usw.
ComboBox7.AddItem Left(strFile, Len(strFile))
ComboBox8.AddItem Left(strFile, Len(strFile))
ComboBox9.AddItem Left(strFile, Len(strFile))
ComboBox10.AddItem Left(strFile, Len(strFile))
ComboBox11.AddItem Left(strFile, Len(strFile))
ComboBox12.AddItem Left(strFile, Len(strFile))
ComboBox13.AddItem Left(strFile, Len(strFile))
ComboBox14.AddItem Left(strFile, Len(strFile))
ComboBox15.AddItem Left(strFile, Len(strFile))
strFile = Dir
Loop
End Sub
Die Commandbuttons (bisher 15) möchte ich auf einen legen, nach dem Prinzip:
If TextBox1 "" Then 'setze Verknüpfungen wie unter CommandButton1
If TextBox2 "" Then ''setze Verknüpfungen wie unter CommandButton2
Bis alle Textboxen abgearbeitet sind.


Private Sub CommandButton1_Click()
Dim strFile As String, strForm As String
ActiveSheet.Unprotect Password:=""
With ComboBox1
If .ListIndex > -1 Then
strFile = .List(.ListIndex)
Else
' keine Datei ausgewählt - was tun?
End If
End With
If strFile  "" Then
' Anfang der Formel
strForm = "'" & ThisWorkbook.Path & "\[" & strFile & "]Anwesenheit'!"
With ThisWorkbook.Sheets("Übersicht") ' Zielblatt
.Range("A8").Formula = "=" & "If(" & strForm & "$H$5" & "="""",""""," & strForm & "$H$5" _
& ")"
.Range("A3").Formula = "=" & "If(" & strForm & "A3" & "="""",""""," & strForm & "A3" & " _
)"
.Range("J1").Formula = "=" & "If(" & strForm & "J1" & "="""",""""," & strForm & "J1" & " _
)"
.Range("B5").Formula = "=" & "If(" & strForm & "B5" & "="""",""""," & strForm & "B5" & " _
)"
.Range("X5").Formula = "=" & "If(" & strForm & "X5" & "="""",""""," & strForm & "X5" & " _
)"
.Range("A9:AG33").Formula = "=" & "If(" & strForm & "A8" & "="""",""""," & strForm & " _
A8" & ")"
TextBox3.Value = Format(Sheets("Übersicht").Range("J1"), "YYYY-MM")
End With
End If
ActiveSheet.Protect Password:=""
End Sub
Private Sub CommandButton2_Click()
Dim strFile As String, strForm As String
ActiveSheet.Unprotect Password:=""
With ComboBox2
If .ListIndex > -1 Then
strFile = .List(.ListIndex)
Else
' keine Datei ausgewählt - was tun?
End If
End With
If strFile  "" Then
' Anfang der Formel
strForm = "'" & ThisWorkbook.Path & "\[" & strFile & "]Anwesenheit'!"
With ThisWorkbook.Sheets("Übersicht") ' Zielblatt
.Range("A34").Formula = "=" & "If(" & strForm & "$H$5" & "="""",""""," & strForm & " _
$H$5" & ")"
.Range("A35:AG59").Formula = "=" & "If(" & strForm & "A8" & "="""",""""," & strForm  _
& "A8" & ")"
End With
End If
ActiveSheet.Protect Password:=""
End Sub

Anzeige
AW: Von ComboBoxen zu Textboxen wechseln
10.12.2014 15:18:49
Rudi
Hallo,
was soll das denn?
ComboBox1.AddItem Left(strFile, Len(strFile))

Warum nicht einfach
ComboBox1.AddItem strFile

Ich würde das mit einer Multiselect-Listbox machen.
Gruß
Rudi

AW: Von ComboBoxen zu Textboxen wechseln
10.12.2014 15:36:52
Andreas
Hallo Rudi,
Vielen Dank für die Anwort. Bei dem vorhandenen Code hat mir Jemand aus dem Forum geholfen. Ich weiss zwar so ungefähr was im Code abläuft, aber alles versteh ich nicht.
Das mit der Listbox ist zwar eine sehr übersichtliche Sache, aber bei meinen bescheidenen VBA Kenntnissen bin ich da überfordert.
Ich dachte der vorhandene Code kann leichter umgestellt werden.
mfg, Andreas

Anzeige
Habe es soweit gelöst. owT.
10.12.2014 18:16:29
Andreas
.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige