Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Excel-VBA: Spaltennamen anhand des Index ausgeben lassen?

Empfohlene Antworten

Veröffentlicht

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

also ich hab bisher auch immer mit Chr gemacht wenn ichs gebraucht hab... bitte sagt mir jetzt nicht dass das auch leichter gegangen wäre !!!! :D

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.

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

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).

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...

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.