Tabulka bude obsahovat vždy proměnlivý počet sloupců.
Omlouvám se za neupřesněné zadání ...







Kód: Vybrat vše
Dim SS_list As String, Line  As String
  
Set SS_list = Worksheets("Main").Range("G3").Value
Set Line = Worksheets("Main").Range("H3").Value


Kód: Vybrat vše
Option Explicit
Sub Ukazka()
  Dim Wbk As Workbook
  Dim SS_List As Worksheet
  Dim MyRow As Range
  Dim JmenoListu As String
  'objekt sesit
  Set Wbk = ThisWorkbook
  Debug.Print Wbk.Name
  'nebo
  Set Wbk = ActiveWorkbook
  Debug.Print Wbk.Name
  'objekt list
  Set SS_List = ActiveWorkbook.Worksheets("list1")
  Debug.Print SS_List.Name
  ' nebo: nazev listu
  Set SS_List = Wbk.Worksheets("list1")
  Debug.Print SS_List.Name
    ' nebo: nazev listu v promenne
    JmenoListu = "list1"
  Set SS_List = Wbk.Worksheets(JmenoListu)
  Debug.Print SS_List.Name
  'nebo: list prvni zleva v zobrazeni Excelu
  Set SS_List = Wbk.Worksheets(1)
  Debug.Print SS_List.Name
  'nebo: objekt List1
  Set SS_List = List1
  Debug.Print SS_List.Name
  
  ' radek
  Set MyRow = SS_List.Range("A5:AA5")
  Debug.Print MyRow.Address(0, 0)
End Sub



Kód: Vybrat vše
Option Explicit
Sub Ukazka()
  Dim Wbk As Workbook
  Dim SS_List As Worksheet
  Dim MyRow As Range
  Dim JmenoListu As String
  Dim JmenoListuBunka As Range
  Dim JmenaListuBlok As Range, Cll As Range
  'objekt sesit
  Set Wbk = ThisWorkbook
  Debug.Print Wbk.Name
  'nebo
  Set Wbk = ActiveWorkbook
  Debug.Print Wbk.Name
  'objekt list
  ' nazev listu: list1
  Set SS_List = ActiveWorkbook.Worksheets("list1")
  Debug.Print SS_List.Name
  ' nebo: nazev listu: list1
  Set SS_List = Wbk.Worksheets("list1")
  Debug.Print SS_List.Name
  ' nebo: nazev listu v promenne
  JmenoListu = "list1"  ' nazev listu do promenne
  Set SS_List = Wbk.Worksheets(JmenoListu)
  Debug.Print SS_List.Name
  'nebo: list prvni zleva v zobrazeni Excelu
  Set SS_List = Wbk.Worksheets(1)
  Debug.Print SS_List.Name
  'nebo: objekt list: List1
  Set SS_List = List1
  Debug.Print SS_List.Name
  ' nazev listu je v List3!D4
  Set JmenoListuBunka = Wbk.Worksheets("list3").Range("d4")  ' definice bunky s nazvem
  Set SS_List = Wbk.Worksheets(JmenoListuBunka.Value)
  Debug.Print SS_List.Name
  ' nebo totez jinak
  With Wbk
    Set SS_List = .Worksheets(.Worksheets("list3").Range("d4").Value)
  End With
  Debug.Print SS_List.Name
  ' jmena listu jsou v List3!D4:D5, v D5 je neplatne
  Set JmenaListuBlok = JmenoListuBunka.Resize(2, 1)
  For Each Cll In JmenaListuBlok.Cells
    With Wbk
      On Error Resume Next ' osetreni chyby
      Set SS_List = .Worksheets(Cll.Value)
      If Err.Number <> 0 Then GoTo ErrHandler
      On Error GoTo 0
    End With
    Debug.Print SS_List.Parent.Name; " "; SS_List.Name
Pokracovat:
  Next Cll
  Debug.Print
  ' radek
  Set MyRow = SS_List.Range("A5:AA5")
  Debug.Print MyRow.Address(0, 0)
  ' odstranit objektove promenne
  Set JmenoListuBunka = Nothing
  Set JmenaListuBlok = Nothing
  Set Cll = Nothing
  Set MyRow = Nothing
  Set SS_List = Nothing
  Set Wbk = Nothing
  
  Exit Sub
ErrHandler:
  Debug.Print "Chyba v zadani nazvu listu"
  GoTo Pokracovat
End Sub



V případě že by hodnota na list2 ve sloupci "A" nebyla, tak vložit na první volný řádek
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů