Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1212to1216
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Flexible Spalten referenzierung

Flexible Spalten referenzierung
Eddie
Hallo,
hier mal ein Problem, bei dem ich nicht mal wüsste, was ich in die Such Funktion eingeben sollte. Geschrieben wurde über das Thema aber bestimmt schon mal.
Ich habe z.B. eine Umfangreiche Tabelle aufgebaut, die per VBA verarbeitet wird. Der Zugriff auf einzelne Zellen erfolgt z.B. so
For y=2 to 1000
Cells(y,1)=Cells(y,2)-Cells(y,3)
Next y
Angenommen das Programm ist wie auch die Tabelle sehr groß, bekommt man spätestens ein Problem, wenn man eine Spalte einfügt. Nun müssen alle x-Koordinaten umgeschrieben werden, was bei mehreren Unterprogrammen, welche auf die gleiche Tabelle zugreifen, eine riesen Arbeit wird und wobei nicht selten Fehler passieren.
Um dem zu entgehen, lege ich Global Variablen für die Spaltennamen an:
xDifferenz=1
xMinuend=2
xSubtrahend=3
For y=2 to 1000
Cells(y, xDifferenz)=Cells(y, xMinuend)-Cells(y, xSubtrahend)
Next y

Ein nachträgliches Verschieben von Spalten ist nun möglich, jedoch gibt es hier Nachteile:
Aufgrund der globalen Deklaration, benutze ich meist längere Variablennamen, die die Formeln sehr lang machen. Ferner ist auch die Benennung der Variablen nicht immer so leicht, wie hier im Beispiel.
Kurz: geht das irgendwie eleganten oder einfacher? Ich hatte auch daran gedacht, die Spalte mit einem Namen zu versehen (Insert > Name). Mal abgesehen davon, dass auch das Benennen Nachteile hat, wie verwandelt man dann den Namen in die x-Koordinate zurück?
Wie geht Ihr in solchen Fällen vor?
Grüße

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Flexible Spalten referenzierung
05.05.2011 15:07:42
Rudi
Hallo,
ein Weg ist, die Spalten über die Überschrift zu identifizieren.
xDifferenz=Application.Match("Differenz", Sheets("Tab1").Rows(1), 0)
falls die Überschrift Differenz lautet.
wie verwandelt man dann den Namen in die x-Koordinate zurück? 

ganz einfach: xDifferenz=Names("Differenz").RefersToRange.Column
Gruß
Rudi
AW: Flexible Spalten referenzierung
05.05.2011 16:15:48
Eddie
Hallo,
vielen Dank für die schnelle Antwort. Über die Überschrift habe ich die Zuordnung auch schon gemacht, allerding, war meine Suchfunktione der richtigen Spalte viel umständlicher gemacht.
Die Sache mit der Überschrift, hat nur einen Haken, dass man die überschriften dann schützen muss und von dem Excel Blatt Schutz, bin ich kein wirklicher Fan.
Ich Frage trotzdem nochmal in die Runde, gibt es weitere Möglichkeiten bzw. Erfahrungen wie man sowas am besten lößt?
Grüße
Anzeige
AW: Flexible Spalten referenzierung
05.05.2011 16:41:15
Eddie
Hallo,
die Lösung ist mir gerade selber eingefallen:
ein Weg ist, die Spalten über die Überschrift zu identifizieren.

Die Sache mit der Überschrift, hat nur einen Haken, dass man die überschriften dann schützen muss und von dem Excel Blatt Schutz, bin ich kein wirklicher Fan.
Die Überschriften kann ma auch beim Auto_Open regenerieren, d.h. überschreiben, somit muss man den Blattschutz nicht verwenden.
Ich finde diese Variante besser, als mit Insert Name, denn man kann in der Regel mit den Variablen immerhin auf Modul-Ebene bleiben.
Grüße und Danke
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige