Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1404to1408
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
Eintrag aus Liste als Worksheet aufrufen
30.01.2015 09:37:36
Dieter
Guten Morgen libe Excelgemeinde.
Ich komm mal wieder nicht weiter, mein Makro bleibt hängen.
Aus einer Listbox wähle ich den Namen eines Blattes aus.
Die Zellen aus diesem Blatt (andere Arbeitsmappe) sollen anschließend Kopiert werden.
Was mache ich falsch?
Dim TR_Blatt As Worksheet
Set TR_Blatt = UserForm1.ListBox1
Workbooks("VorhandeneTrainingsmappen.xlsm").Activate
Worksheets(TR_Blatt).Activate
Cells.Select
Selection.Copy

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag aus Liste als Worksheet aufrufen
30.01.2015 09:43:36
Klaus
Hallo Dieter,
da können wir nur in die Glaskugel schauen, wir wissen ja nicht was in ListBox1 genau steht, was ausgewählt ist und so weiter. Vielleicht lädst du die Datei einfach mal hoch?
Solange du nicht weisst woran es liegt hilft es vielleicht schon, den Fehler einfach abzufangen. Hilft dir dieses Konstrukt weiter?
Sub DeinSub()
Dim TR_Blatt As Worksheet
Set TR_Blatt = UserForm1.ListBox1
Workbooks("VorhandeneTrainingsmappen.xlsm").Activate
If WksSheetExists(TR_Blatt) Then
Worksheets(TR_Blatt).Activate
Cells.Select
Selection.Copy
'[...dein sonstiger Code ...]
Else
MsgBox ("Ein Arbeitsblatt namens " & TR_Blatt & " gibt es nicht!")
End If
End Sub
Function WksSheetExists(sSheet As String) As Boolean
Dim wks As Object
On Error Resume Next
Set wks = Sheets(sSheet)
If Not wks Is Nothing Then
WksSheetExists = True
End If
On Error GoTo 0
End Function
Grüße,
Klaus M.vdT.

Anzeige
AW: Eintrag aus Liste als Worksheet aufrufen
30.01.2015 10:02:05
Dieter
Hallo Klaus,
bei der Zeile 2
"Set TR_Blatt = UserForm1.Listbox1" kommt die Meldung Typenunverträglich

AW: Eintrag aus Liste als Worksheet aufrufen
30.01.2015 10:05:11
Dieter
Hallo Klaus,
in ListBox1 stehen alle vorhandenen Blattnamen (sind also existent). Eins davon wähle ich in der Listbox1 aus und dieses Blatt soll für das Kopieren im Hintergrund ausgewählt werden

AW: Eintrag aus Liste als Worksheet aufrufen
30.01.2015 10:53:44
Klaus
Ah, ich habs:
das hier ist Falsch:
Dim TR_Blatt As Worksheet
Set TR_Blatt = UserForm1.ListBox1

TR_Blatt ist kein Worksheet, sondern ein String! Und .Value gehört noch rein.
Dim TR_Blatt As String
Set TR_Blatt = UserForm1.ListBox1.Value

funktioniert.
Ist das ganze als String aktiviert, dann funktioniert auch
Worksheets(TR_Blatt).Activate
WÄHRE TR_Blatt wirklich ein Worksheet (was es nicht ist), dann müsstest du es auch direkt ansprechen:
TR_Blatt.Activate
Aber Worksheets kannst du nicht in Listboxen speichern.
Grüße,
Klaus M.vdT.

Anzeige
ohne SET
30.01.2015 10:55:04
Klaus
Natürlich ohne SET:
Dim TR_Blatt As String
TR_Blatt = UserForm1.ListBox1.Value
Worksheets(TR_Blatt).Activate

Du kannst die Variable sogar weglassen und direkt:
Worksheets(UserForm1.ListBox1.Value).Activate
das Blatt aufrufen.
LG,
Klaus

30 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige