Excel VBA - Set Bereich = [] mit Platzhaltern ansprechen?

Nico_B

Lt. Junior Grade
Registriert
Sep. 2010
Beiträge
345
Hallo.

Ich habe ein Makro erstellt in dem ich verschiedene Werte (ohne Duplikate) aus einer Spalte auf Blatt A auf Blatt B kopiere. Wenn ich den Bereich B12:B50 im VBA Code fix eingebe funktioniert das Makro problemlos. Ich möchte es jedoch gerne Variable gestalten über Tabellenblatt C.

Folgendes habe ich versucht:

Code:
Set Bereich = [sheets("Optionen").Range(B&"B10").VAlue:sheets("Optionen").Range(B&"B10".Value)]
 
Zuletzt bearbeitet:
Moin Nico,

dass e so nicht klappt ist ja der Grund deiner Frage. Aber es ist mir nicht klar, was du wirklich erreichen willst.
Wie soll sich die Definition des Bereichs zusammensetzen? Scheinbar auf jeden Fall Spalte_B. Und welche erste bzw. letzte Spalte? Stehen beide Werte in einer Zelle? Und wenn ja, in welchen Zellen?
 
Hallo.

Ich möchte über Zellen den auszuwertende und kopierende Liste bestimmen.

Hier mal der komplette Code:

Code:
Sub ListeOhneDoppelten_OhneZaehlen()

    Dim t As Long
    Dim nc As New Collection
    Dim z As Long
    Dim AusgabeSpalte As String
    Dim Bereich As Range, Zelle As Range

    'letzte zeile Ermitteln
    t = Worksheets("Erfassung").UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    ' Wert  der letzten Beschriebenen Zelle in Optionen einfügen
    Worksheets("Optionen").Range("B10").Value = t

    S1 = B
    S3 = Sheets("Optionen").Range("B9").Value
    S4 = B
    S5 = Sheets("Optionen").Range("B10").Value
    ' Set Bereich = [B10:B500]
    Bereich = Worksheets("Erfassung").Range(S1 & S2 & ":" & S3 & S4).Select
    
    AusgabeSpalte = "A" 'Ausgabespalte

    'Doppelte Einträge löschen
    On Error Resume Next
    For Each Zelle In Bereich
        nc.Add Zelle, CStr(Zelle)
    Next Zelle

    'Zellen füllen
    For z = 1 To nc.Count
        Worksheets("Auswertung_Quartal").Cells(z + 13, AusgabeSpalte) = nc.Item(z)
        'Tabellenblatt . Cells Zähler + Startzeile
    Next z

End Sub
 
Moin,

eine komplette Sub einzustellen ist schon einmal eine gute Idee.
Aber ehrlich gesagt, ich mag mich nicht durch Code hindurchwühlen, wo die Variablen nicht deklariert sind und die Namen dann auch noch so "vielsagend" sind, wie B2.

Eines ist mit noch aufgefallen: Die Variablen S1 und damit auch S4 haben erst einmal einen volkommen undefinierten Wert, weil B keinen Wert hat und vom Typ Variant ist.

Noch einmal: Beschreibe mit einfachen Worten, was du willst. Beispiel (so könnte es sein):
Es soll ein Range definiert werden.
Die Spalte ist Spalte A
Die obere Zeile steht in B1, die untere in B2.

Mit so etwas komme ich klar, weil einfach, deutlich und strukturiert.
 
Guten Morgen.

Ich möchte den Code:
Code:
Set Bereich = [B10:B500]

gerne dynamaisch gestalten. Durch Zellenwerte im Tabellenblatt Optionen. Die Spalte B ist fix. Auf dem Tabellenblatt Optionen stehen lediglich die erste und die letzte Zelle. Also der Bereich der auf dem Tabellenblatt Erfassung abgefragt werden soll. So wie wenn ich es mit der Formel INDIREKT gestalten könnte.
 
Beispielsweise so:
Code:
fRow = Cells(1,1)
lRow = Cells(2,1)
Set Bereich = Range(Cells(fRow, 2), Cells(lRow, 2)
Ungeprüft ...
 
Hallo bin neu hier und zu doof ein eigenes Thema zu erstellen!

Ich finde einfach nicht den Button. Hilfe!!!
 
Moin,

oben links, bei 11:00Uhr. Direkt unter den fetten Text Forum Office und Text, ist hellblau mit weißer Schrift.
 
Zurück
Oben