Clever-Excel-Forum

Normale Version: Arbeitsblatt als Variable
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Excel Forum !

Sitze seit ewiger Zeit vor einem Problem, hoffe einer weiss Rat.
Ich habe mit dem Makrorecorder ein Makro Aufgezeichnet, was den Inhalt Sortiert.
Den Code in meine Userorm Kopiert,so das er mit einem Button in der Userform Ausgeführt wird.
Es gibt vier Baugleiche Tabellen, deren Inhalt ich in der Userform über eine Listbox
Anzeigen lasse.
Was wenn die erste Tabelle Aktiviert ist auch Funktioniert, aber bei den anderen Natürlich nicht.

Habe Versucht (Anfängerlogik), mit einer Variable


Code:
Dim TabName As String
TabName = ActiveSheet.Name
Und in dem Code alle ("ML1R") mit ("TabName") Ausgetauscht.
Was nicht Funktioniert (Index auserhalb des gültigen Bereichs), vom rein Logischen her, hätte ich
gedacht das Klappt.
LG  Gerhard

Private Sub cmdDatenZeigen_Click()
   
Dim x As Integer

   Let x = Val(InputBox("Sheet (1-4):"))
   If (x = 1) Then
   ThisWorkbook.Worksheets("V_ML1R").Activate
   ElseIf (x = 2) Then
   ThisWorkbook.Worksheets("V_ML1L").Activate
   ElseIf (x = 3) Then
   ThisWorkbook.Worksheets("V_ML2R").Activate
   ElseIf (x = 4) Then
   ThisWorkbook.Worksheets("V_ML2L").Activate
   End If
       
lbxDaten.ColumnCount = 10
lbxDaten.RowSource = ("A4:J20")
   
End Sub


Private Sub cmdSortieren_Click()

   ActiveWorkbook.Worksheets("V_ML1R").ListObjects("Tabelle1").Sort.SortFields. _
       Clear
   ActiveWorkbook.Worksheets("V_ML1R").ListObjects("Tabelle1").Sort.SortFields. _
       Add Key:=Range("Tabelle1[[#All],[Bedarfsort]]"), SortOn:=xlSortOnValues, _
       Order:=xlAscending, DataOption:=xlSortNormal
   With ActiveWorkbook.Worksheets("V_ML1R").ListObjects("Tabelle1").Sort
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With


End Sub
Hi

Versuch es mal so.

Code:
Dim TabName As String
TabName = ActiveSheet.Name
Und in dem Code alle ("ML1R") mit (TabName) Ausgetauscht.
also ohne " "

Gruß Elex
Hi Elex,
Im ersten Tabellenblatt Funktioniert es, in den anderen dieselbe Fehlermeldung. Der selbe Efekt wie vorher, ohne Variable. Als wenn keine Variable vorhanden ist.
Ist evtl. so auch nicht machbar.
Danke, LG
Hi

Erstmal ist mir nur der Syntaxfehler aufgefallen, der aber dein Problem wohl nicht gänzlich Lösen konnte.
 
Zitat:Ist evtl. so auch nicht machbar.
 
Um das zu beurteilen fehlen mir die Zusammenhänge. Welcher Code steht wo? Wie und von wo wird die Ausführung gestartet?
 
Evtl. Bsp.Datei bereitstellen.

Gruß
Hab mal eine Beispieldatei Angefügt, hoffe das es Hilfreich ist.
Hallo,

der Name des ListObj. ändert sich auch. Versuch es mal so.

Code:
Private Sub cmdSortieren_Click()

Dim TabName, ObjName As String

TabName = ActiveSheet.Name
ObjName = ActiveSheet.ListObjects(1).Name

    ActiveWorkbook.Worksheets(TabName).ListObjects(ObjName).Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets(TabName).ListObjects(ObjName).Sort.SortFields. _
        Add Key:=Range("Tabelle1[[#All],[Bedarfsort]]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(TabName).ListObjects(ObjName).Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

End Sub

Gruß Elex
@Elex
Super,Funktioniert, so wie Angedacht. ich versteh zwar noch nicht warum,Aber fang ja auch gerade erst an.
Herzlichen Dank

LG Gerhard