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

VBA User Form

VBA User Form
02.03.2021 14:00:46
Dieter
Hallo zusammen,
wir haben eine USERForm. da klicken wir in drei Bereiche was an und anschliesend kommt die Liste:
Private Sub cmd_Transport_Click()
Select Case LstTran.Value
Case " -  täglicher plan KW 01"
Workbooks.Open "L:\Logistik\Perso\LKW\planung 2021\KW1.xlsb"
Case " -  täglicher plan KW 02"
Workbooks.Open "G:\Logistik\Perso\LKW\planung 2021\KW2.xlsb"
'Workbooks.Open ""
Case Else
MsgBox " keine Liste ausgewählt", vbOKOnly, "Fehler"
End Select
Unload Me
End Sub
Private Sub cmd_Lager_Click()
Select Case LstLager.Value
Case " -  Lagerplätze"
Workbooks.Open "G:\Logistik\Perso\WE\Anzahl \Anzahl.xlsb"
Case " -  Lagerplätze nebenlager"
Workbooks.Open "G:\Logistik\Perso\WE\Anzahlla \Anzahl2.xlsb"
Case Else
MsgBox " keine Liste ausgewählt", vbOKOnly, "Fehler"
End Select
Unload Me
End Sub

Private Sub cmd_Button_Archiv_Click()
Select Case LstArchiv.Value
Case " -  Artikel"
Workbooks.Open "G:\Logistik\Perso\WE\Archiv\Umstellung.xlsb"
Case " -  kapazität"
Workbooks.Open "G:\Logistik\Perso\WE\Archiv\kapazitätxlsb"
Case Else
MsgBox " keine Liste ausgewählt", vbOKOnly, "Fehler"
End Select
Unload Me
End Sub

Private Sub UserForm_Initialize()
LstArchiv.AddItem " -  Artikel "
LstArchiv.AddItem " -  kapazität "
LstTran.AddItem " -  täglicher plan KW 01"
LstTran.AddItem " -  täglicher plan KW 02"
LstLager.AddItem "  -  Lagerplätze "
LstLager.AddItem "  -  Lagerplätze nebenlager „
End Sub
Jetzt möchte ich nicht, dass jeder bei der Userform herummacht weil viele Fehler passieren. Meine Idee.
Kann man zum Beispiel Sagen Spalte A1 ist die Überschrift ( z.B. Archiv )
A2 dann der Name ( Intialize ) und B2 der Pfad ( manuelle eingabe )
Dann in C1 die Überschrift ( z.B. Auswertungen )
C2 dann der Name und D2 der Pfad ( manuelle eingabe )
usw... somit ist keiner mehr in der Userform drin.
Wäre sowas möglich ?

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wäre sowas möglich ?
02.03.2021 14:07:03
Rudi
Ja.
Ich hab allerdings keine richtige Vorstellung von deiner Absicht.
Gruß
Rudi

AW: Wäre sowas möglich ?
03.03.2021 06:01:16
Dieter
Hallo Rudi,
ich möchte gerne das per Userform die erste Spalte eingelesen wird wie die die Datei heißt und in der zweiten Spalte dann der Pfad.
Das Problem liegt daran, dass ich nicht mehr in VBA herumspielen muss um einen neuen pfad einzufügen.
Danke

AW: VBA User Form
02.03.2021 23:05:23
ralf_b
Annahme: im Arbeitsblatt "Verweise" sind in Spalte A die Listeneinträge und in "B" die Pfade
Private Sub cmd_Button_Archiv_Click()
dim rfund as Range
with Worksheets("Verweise").Range("A1:A" & Cells(rows.count ,"A").end(xlup).row)
set rfund =  .find(LstArchiv.Value, lookin:=xlValues, lookat=XlWhole)
end with
if not rfund is nothing then
Workbooks.Open rfund.offset(,1)
else
MsgBox " keine Liste ausgewählt", vbOKOnly, "Fehler"
End if
Unload Me
End Sub


Anzeige
AW: VBA User Form
03.03.2021 05:59:10
Dieter
HAllo Ralf,
leider wird das rot und bringt keinen Fehler.
set rfund = .find(LstArchiv.Value, lookin:=xlValues, lookat=XlWhole)
Danke dir

AW: VBA User Form
03.03.2021 06:09:23
Dieter
Hallo Ralf,
er bringt den Fehler Syntaxfehler bei der Zeile set rfund…...

AW: VBA User Form
03.03.2021 10:18:10
ralf_b
hallo Dieter,
ich sehe keinen Fehler. Aber hier mal eine Anpassung. Alles nur auf Verdacht. Genauere Fehlerbeschreibungen wären toll.
Private Sub cmd_Button_Archiv_Click()
dim rfund as Range
dim ws as worksheet
if LstArchiv.Value = "" then exit sub
set ws = Worksheets("Verweise")
with ws.Range("A1:A" & ws.Cells(rows.count ,"A").end(xlup).row)
if .count 
gruß
rb

Anzeige
AW: VBA User Form
03.03.2021 11:36:57
Dieter
Hallo Ralf,
beim einfügen vom Code wird die set rfund…. gleich rot und beim ausführen kommt:Fehler beim Komplieren: Syntaxfehler
Private Sub cmd_Button_Archiv_Click()
Dim rfund As Range
Dim ws As Worksheet
If LstArchiv.Value = "" Then Exit Sub
Set ws = Worksheets("Verweise")
With ws.Range("A1:A" & ws.Cells(Rows.Count, "A").End(xlUp).Row)
If .Count  set rfund =  .find(what:=LstArchiv.Value, lookin:=xlValues, lookat=XlWhole)
End With
If Not rfund Is Nothing Then
Workbooks.Open rfund.Offset(, 1).Value
Else
MsgBox " keine Liste ausgewählt", vbOKOnly, "Fehler"
End If
Unload Me
End Sub


Anzeige
AW: VBA User Form
03.03.2021 15:38:21
Mullit
Hallo,
Doppelpunkt fehlt bei LookAt-Parameter:
set rfund = .find(what:=LstArchiv.Value, lookin:=xlValues, lookat:=XlWhole)

Gruß, Mullit

AW: VBA User Form
03.03.2021 18:12:38
Dieter
Hallo nochmal,
ich habe jetzt mal eine Datei hochgeladen:
https://www.herber.de/bbs/user/144419.xlsb
Das Doppelpunkt habe ich eingesetzt, leider sehe ich bei der User Form ( rechte Maustaste ) keine Auswahl.
Vielleicht ist es so übersichtlicher wegen der Datei.
Danke Euch

Anzeige
AW: VBA User Form
03.03.2021 21:27:26
ralf_b
Ich würde es anders machen. Also lade die Daten in die Listbox auch die Pfade und verstecke sie in einer Spalte mit 0 Breite.
Das erspart dir ne Menge Suchen.
https://www.herber.de/bbs/user/144428.xlsb
gruß
rb

AW: VBA User Form
04.03.2021 06:06:16
Dieter
HAllo Ralf,
also genauso wollte ich es haben, dass keiner mehr in VBA herumspielt.
Habe gerade deine Datei getestet, liste kann ich jetzt auswählen und hinzufügen, das Problem ist, das Excel es nicht aufmacht und die Meldung kommt "keine Liste ausgewählt".
Irgendwie erkennt er den Pfand nicht.
Was mache ich falsch ?
Danke Dir und Sorrry das ich deine Zeit in Anspruch nehme.
Danke

Anzeige
AW: VBA User Form
04.03.2021 11:59:21
Dieter
Hallo Ralf, das Problem liegt daran, dass er immer die 3 Zeile den pfad nimmt. Ich schicke dir heute abend nochmal die Datei. Pfad habe pseudos eingegeben. Danke dir

User Form Datei Nachfrage
05.03.2021 09:15:21
Dieter
HAllo Ralf,
danke für deine Hilfe, ich muss die Texteingabe wie die Spalte heißt flexible lassen, weil mehrer Mitarbeiter dies nutzen. Der eine Nennt es Programme der andere nennt es Auswertung usw...
Deswegen habe ich auch Lst1 usw. genannt, damit ich weiß 1 ist für Spalte A usw....
Sorry hoffe, du kannst mir nochmal helfen. Der andere Code hat super funktioniert bis auf das er er den 3.Pfad genommen hat und das es Probleme mit der _Beschriftung gab.
Danke Dir.

Anzeige
AW: User Form Datei Nachfrage
05.03.2021 11:00:26
ralf_b

Private Sub UserForm_Initialize()
Dim rng As Range, sName As String, i As Long, cnt As Long
i = 1
For cnt = 0 To Me.Controls.Count - 1
If Me.Controls(cnt).Name Like "Lst*" Then
sName = Right(Me.Controls(cnt).Name, Len(Me.Controls(cnt).Name) - 3)
With Me.Controls("Lst" & sName)
.ColumnCount = 2
.ColumnWidths = "150;0"
Set rng = Tabelle2.UsedRange.Cells(1, i) 'Spalte wähle
Debug.Print rng.Address
Set rng = rng.Offset(1).Resize(rng.End(xlDown).Row - 1, 2) 'bereich vergrößern
.List = rng.Value                         'liste zuweisen
Me.Controls("Label_" & sName).Caption = rng.Cells(1, 1).Offset(-1).Value
'Text in Beschriftungsfeld schreiben
i = i + 2
End With
End If
Next
End Sub


Anzeige
Rückmeldung
05.03.2021 11:32:01
Dieter
Hallo Ralf,
jetzt alles klasse.
Danke dir für ALLES

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige