Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
496to500
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
496to500
496to500
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dynamische Variablennamen

Dynamische Variablennamen
07.10.2004 10:52:09
Stefan
Hallo,
ich suche eine Möglichkeit Variablen mit einem dynamischen Namen abzufragen. Es sollte folgendermaßen aussehen.
Ich habe ein paar Konstanten...
Global Const LINE35 = "Einkauf"
Global Const LINE40 = "Verkauf" usw...
In meiner Anwendung befinde ich mich gerade in der Zeile 35 und starte mein Makro.
Dank einer "Variablennamenermittlung" a la
sAktion = "LINE" & ActiveCell.Row
erkennt das Makro, dass die gwünschte Aktion LINE35 also der Einkauf ist und fährt in der Verarbeitung entsprechend fort...
Wie könnte man sowas verwirklichen???
Danke für eure Hilfe!!!
Stefan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Variablennamen
07.10.2004 11:00:39
Harald Kapp
Hallo Stefan,
z.B. so?
Const Einkauf = 35
Const Verkauf = 40
sAktion = ActivCell.Row
select case sAktion
case Einkauf
...
case Verkauf
...
end select

Gruß Harald
AW: Dynamische Variablennamen
07.10.2004 11:27:02
Stefan
Ja,
sowas in dieser Art hab ich mir auch schon überlegt... Nur das Problem ist, dass in der Variable nicht Einkauf steht... Das hab ich jetzt nur zwecks dem besseren verständnis so beschrieben...
in wirklichkeit steht in der Variable ein (Teil eines) Select-Statements...
Ok, ich versuchs mal, ist aber blöd zum erklären...
Ich habe eine Datei mit folgenden aufbau:

Gesamt Monat 1 Monat 2 Monat 3 Monat 4
Postition1 Wert Wert Wert Wert
Position2 wert wert wert wert

Ich stehe jetzt quasi auf Position2 im Monat 3, klicke einen Button der mir ein Makro startet.
Dieses Makro führt eine DB-Abfrage durch. Inhalt des Recordsets sind alle einzelnen "Buchungen" die auf Position2 im Monat 3 gebucht wurden.
Das soll natürlich Funktionieren, ohne dass ich den Monat und die Position in ein PopUp oder so eingeben muss. Da aber die Zeilen und die Spalten fix sind kann ich mich daran orientieren.
1. Lösungsansatz wäre eine Pivotabelle gewesen (oberer Aufbau dank Pivot und ein Blatt als "Rohdaten"-Tabelle) was allerdings aufgrund der Datenmenge gleich wieder verworfen wurde...
Ein kompletter Abzug der DB über den Zeitraum wär Schwachsinn...
Also ne Live-Abfrage... Aber wie???
Danke,
Stefan
Anzeige
AW: Dynamische Variablennamen
07.10.2004 12:35:55
Harald Kapp
Hallo Stefan,
mal sehen, ob ich richtig verstanden habe:
Du willst in Deinem Beispiel eine Abfrage machen, wobei Parameter1 = Position2 ist und der Parameter2 = Monat3?
Dann kannst Du doch so vorgehen:
Parameter1=Cells(activecell.row,1) 'ermittelt den Inhalt Zelle in der Spalte A, aktuelle Zeile
Parameter2 = Cells(1, activecell.column) ' ermittelt den Inhalt der Zelle in der Zeile 1, aktuelle Spalte.
Diese Parameter setzt Du in die DB-Abfrage ein.

Gruß Harald
AW: Dynamische Variablennamen
07.10.2004 13:46:12
Stefan
Nicht ganz...

*---------------------------------------------*
Januar Februar März
Einnahmen 30 20 10
Ausgaben 10 5 7
so, ich setzte meinen Cursor auf die 20 im Feb und starte das makro.
Das Makro erkennt, ich bin in spalte c und zeile 3.
Daraus wird ermittelt, spalte c = Februar, Zeile 3 = Einnahmen.
Dann kommt das Select:
Select *
From Tabelle
Where Monat = "Februar" And Konto ="S123456" 'Wobei S123456 das Einkaufskonto ist
dieses konto könnte man in einer Konstante speichern. (z.b. eben LINE3 --> "LINE" + Zeilennummer)
Ist das evtl. klarer?
mfg
Stefan
Anzeige
AW: Dynamische Variablennamen
07.10.2004 15:19:46
Harald Kapp
Hallo Stefan,
ich glaube, so richtig klar ist es mir nicht.
Also erst einmal:
Die Namen von Konstanten oder Variablen kannst Du zur Laufzeit nicht dynamisch ändern. Punkt.
Willst Du abhängig von dem Wert in der linken Spalte verschiedene Konten in der Abfrage benutzen?
Also z.B.
A3= Einnahmen -> Konto = S12345
A4 0 Ausgaben -> Konto = S98765

Dann stelle ich mir da so vor:
Select Case Range("A3")
Case "Einnahmen"
MsgBox "Select * from table where Konto = S12345"
Case "Ausgaben"
MsgBox "Select * from table where Konto = S98765"
End Select

Gruß Harald
Anzeige
AW: Dynamische Variablennamen
07.10.2004 15:47:11
Stefan
Hmm...
Genau so würde es laufen...
Je nachdem in welcher zeile ich mich befinde wird ein anderes konto verwendet...
Da es allerdings 150 zeilen sind, wollte ich so ein Case vermeiden... ;))
Aber ich hab da ne idee... Ein Array, in dem ich alle Konten speichere, wobei der Index der Zeilennummer entspricht.
Also:
A3= Einnahmen -> Konto = S12345
A4 = Ausgaben -> Konto = S98765
-->
Konten(3) = S12345
Konten(4) = S98765
und dann
Select * From xyz Where Konto = Konten(ActiveCell.Row)
so in dieser Art könnte das gehen...
Oder? ;))
Danke auf jeden Fall für deine Hilfe!!!
Stefan
Anzeige
AW: Dynamische Variablennamen
07.10.2004 11:02:16
Matthias G
Hallo Stefan,
das würde ich mit Case Select verwirklichen.
Gruß Matthias
AW: Dynamische Variablennamen
07.10.2004 11:05:36
Boris
Hi Stefan,
Dank einer "Variablennamenermittlung" a la
sAktion = "LINE" & ActiveCell.Row
erkennt das Makro, dass die gwünschte Aktion LINE35 also der Einkauf ist und fährt in der Verarbeitung entsprechend fort...

Das geht so nicht. Man kann keinen Variablennamen "zusammenbasteln". Dafür gibt´s Arrayvariablen.
Grüße Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige