Zum Inhalt springen

Excel-VBA: Spaltennamen anhand des Index ausgeben lassen?


Empfohlene Beiträge

Geschrieben

Hi@all,

ich habe eine bestimmte Größe in einer Variablen und möchte mir abhängig davon einen bestimmten Bereich einer Tabelle markieren. D.h. (stark vereinfacht)

Bereich = Range("A1:" & BezeichnungVonSpalte(Groesse) & Groesse)

Kennt jemand eine Funktion, die so etwas bewerkstelligt? Ich würde es ja auch selber schreiben mit Chr(65 + Groesse), aber der Bereich kann auch über die 26 Zeichen hinausgehen, dann müßte ich mir "AA" etc zusammenbasteln, und ich würde den Code gerne möglichst schlank halten.

Vielen Dank schonmal!

MfG

Mario

Geschrieben

Nö, muß IMO nicht sein


Dim bereich1 As String

Dim bereich2 As String


bereich1 = "a1:a" & anz_sp + 1 & ",e1:f" & anz_sp + 1

bereich2 = "a1:a" & anz_sp + 1 & ",i1:k" & anz_sp + 1


range1=Workbooks(dat_name).Worksheets(Blatt).Range(bereich1)

range2=Workbooks(dat_name).Worksheets(Blatt).Range(bereich2)

funktioniert bei mir seit 2002.

Geschrieben
funktioniert bei mir seit 2002.

*kopf kratz* macht bei mir irgendwie gar nix :-?

und ehrlich gesagt hätte mich das auch gewundert...

kannst du mir mal bissl erklären? (also das coding... blick vor allem die bereiche nich) :beagolisc

Geschrieben

ok, ich ändere in Richtung unten nicht rechts ;).

Aber mal ein kleines Zitat aus der Excel - VBA - Hilfe, welches helfen sollte:

"Range" und "Cells"

Verwenden Sie Range(Zelle1, Zelle2), wobei Zelle1 und Zelle2 Range-Objekte sind, die die Anfangs- und Endzellen festlegen, um ein Range-Objekt zurückzugeben. Im folgenden Beispiel wird die Linienart des Rahmens um die Zellen "A1:J10" festgelegt.

With Worksheets(1)

.Range(.Cells(1, 1), _

.Cells(10, 10)).Borders.LineStyle = xlThick

End With

Beachten Sie den Punkt vor jedem Aufruf der Cells-Eigenschaft. Der Punkt bewirkt, dass das Ergebnis der vorhergehenden With-Anweisung auf die Cells-Eigenschaft angewendet wird - in diesem Fall wird dadurch ausgedrückt, dass sich die Zellen im ersten Arbeitsblatt befinden (ohne den Punkt würde die Cells-Eigenschaft Zellen im aktiven Blatt zurückgeben).

Geschrieben

hm.. so hilft es mir nicht wirklich, sorry. Range() möchte ja maximal zwei argumente. ich habe aber einen wilden bereich, bestehend aus vielen unzusammenhängenden zellen, muß mir also ein konstrukt á la Range("a1:b3,c5,d6:e7,...") zusammenbasteln. die zeilennummern sind dabei ja nicht das problem. Range("a1:b" & anz_sp - irgendwas & "...."), is mir schon klar. was ich brauche, sind die buchstaben, also A, B, C, D, ..., Z, AA, AB, ... in abhängigkeit von anz_sp. habe mir jetzt selber was zusammengebastelt, aber richtig sauber ist das nicht, also wenn es da vordefinierte funktionen gäbe, würde ich sie gerne kennen...

Geschrieben

wuaaaahhh!!! ich habs!!!! :)

Tabelle1.Range(Tabelle1.Cells(1, 1), Tabelle1.Cells(3, 3)).Select

eigentlich einfach... wieso ich da nich früher drauf gekommen bin...

jetzt musst du halt nur noch die zahlen in variablen packen und gut

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...