For/Next Schleife - Zeilen/Spalten markieren - selektierter Bereich umbenennen

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von petaod.

    For/Next Schleife - Zeilen/Spalten markieren - selektierter Bereich umbenennen

    Hallo,

    ich suche eine Lösung für folgendes Problem:


    ich möchte in Excel auf einer Arbeitsmappe einen Range umbenennen (in Table1), den ich durch einen For/Next Schleife ermitteln möchte, weil sich die Datenbasis ändert (also die Anzahl der Spalten/Zeilen mit Einträgen).

    Sub Macro1()
    Dim i, j As Long
    With wsDaten
    .Range("B6").Select

    For i = 1 To ActiveSheet.UsedRange.Rows.Count 'letzte Zeile
    For j = 1 To ActiveSheet.UsedRange.Cells.Count 'letzte Spalte
    Next j
    Next i


    End With

    und jetzt möchte ich dem UsedRange einen Namen geben (Table1):
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("HIER MÜSSTE JETZT DER BEREICH STEHEN"), , xlYes).Name = _
    "Table1"
    Range("Table1[#All]").Select
    ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleMedium2"
    ActiveWindow.SmallScroll Down:=-21

    End Sub



    Ich würde mich über eure Hilfe freuen :D
    DANKE

    Visual Basic-Quellcode

    1. ActiveSheet.ListObjects.Add(xlSrcRange, Sheets("Table1").UsedRange)
    oder

    Visual Basic-Quellcode

    1. RangeAddress=Sheets("Table1").UsedRange.Address(External:=True)
    Die Sache mit UsedRange ist aber ungenau, sobald du ungenutzte leere Zeilen oder Spalten am Ende des Bereichs hast.
    Besser ist eine Konstruktion wie:

    Visual Basic-Quellcode

    1. LastRow=Cells(Rows.Count,1).End(xlUp).Row
    2. LastCol=Cells(1,Columns.Count).End(xlToLeft).Column


    Oder geht es dir darum einen Namen für den Adressbereich zu definieren?

    Visual Basic-Quellcode

    1. ThisWorkbook.Names.Add Name:="Tabelle", RefersToR1C1:= "=Table1!R1C1:R" & LastRow & "C" & LastCol
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --