Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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

Variable definieren

Variable definieren
13.02.2015 08:02:10
Ron
Hallo,
leider hänge ich noch immer an meinem Problem, dass sich ein Makro ewig hinzieht. Schneller laufen die Schleifen, wenn ich die automatische Berechnung ausschalte. Ich brauche diesbezüglich einen kleinen Anschub...
Mein Makro liest div. Dateien aus, die in der Zeilenanzahl unterschiedlich sind, aber sonst vom Aufbau her gleich.
Dafür wird in der Zieldatei in einer Spalte der Name des zu lesenden Tabellenblatts als Variable gesetzt. Im selben Blatt gebe ich die zu lesende Spalte ebenfalls in eine Variable über:
QUCell = Workbooks(myWB).Sheets("Lesen").Cells(LZ, 4).Value
In Spalte 3 des Blattes lesen steht also der zu lesende Spaltenbuchstabe - die Zeile schreibe ich bisher als Variable QZ ins Tabellenblatt, so dass sich in Spalte 4 die zu lesende Zelle "aufbaut". Wie kann ich meine Zeilenvariable sinnvoll in die o.a. Variablendefinition aufnehmen:
QUCell = Workbooks(myWB).Sheets("Lesen").Cells(LZ, 3&QZ).Value
kann nicht funktionieren, aber sicher gibt es eine Möglichkeit, die Quellzeile (QZ) so einzubinden. Hat jemand eine Idee?
Gruß
Ron

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable definieren
13.02.2015 09:28:21
Rudi
Hallo,
du verwechselst Zeile und Spalte.
Cells(Zeile, Spalte) bzw. Cells(3+QZ, LZ)
Gruß
Rudi

AW: Variable definieren
13.02.2015 10:19:54
Ron
Hallo Rudi,
danke für Deinen Hinweis. So habe ich es aber. Ich möchte mit QuCell in meinem Blatt lesen die Lesezeile (LZ) und Spalte 3 ansprechen. Da steht aber derzeit nur der Spaltenbuchstabe der auszulesenden Blätter drin z.B F. in Spalte 4 hatte ich mir über eine einfache Textfunktion die Spalte mit QZ (welches ich nach dem Ende jeder Schleife in das Tabellenblatt "Lesen" schreibe) daraus bei Zeile 16 F16 gemacht (im nächsten Loop dann F17). Ich möchte aber die Berechnungen für das Makro ausschalten, um es schneller laufen zu lassen (die Datei im Hintergrund ist recht groß). Jetzt suche ich nach einer Möglichkeit, wie ich das an die Variable QZ sinnvoll übergeben kann, also Spalte 3 den Buchstaben der Spalte holen und QZ "angehängt" wird....
Gruß
Ron

Anzeige
AW: Variable definieren
13.02.2015 10:55:26
Rudi
Hallo,
verstehe nur Bahnhof.
Gruß
Rudi

AW: Variable definieren
13.02.2015 13:52:57
Ron
Hallo Rudi,
ich versuche es nochmal etwas bildlich. Ich habe eine Zieldatei, die Daten aus 100 weiteren Dateien "Sammelt". Dazu definiere ich in meiner Zieldatei im Ordner "Lesen" in Spalte B den Ordner der Zieldatei, der angesprochen werden soll. In Spalte C die Spalte...
Spalte A Spalte B Spalte C
zu lesendes Feld zu lesender Ordner der Zieldateien zu lesende Spalte
Kunde Kundendaten F
Auftrag 1 Auftragsdaten G
Umsatz Auftragsdaten H
usw.
Ich habe mir sowohl den Ordner also die Daten aus B als Variable definert, wie auch die zu lesende Zelle aus Spalte C - allerdings mit dem Kunstgriff, dass ich in D die Lesezeile über das Makro eintrage und somit in Spalte D Zelle F15 als anzusprechen steht. So weit, so gut. Es funktioniert auch, jedoch will ich die Schleife schneller laufen lassen, Excel Berechnungsfunktion für das Auslesen ausschalten. Das funktioniert aber nicht, da die Funktion aus Spalte D dann nicht aktualisiert werden kann (Berechnung aus)
Daher sieht meine Variablendefinition für die Quellzelle derzeit so aus:
QUCell = Workbooks(myWB).Sheets("Lesen").Cells(LZ, 4).Value
Ich würde es halt gerne so machen, dass er den Buchstaben der auszulesenden Spalte ausliest und die Variable für die Zeile (als Variable QZ definiert) selber "hinzufügt".
Aber so funktioniert es nicht:
QUCell = Workbooks(myWB).Sheets("Lesen").Cells(LZ, 3 & QZ).Value
Ich suche halt eine Idee, die mir diese Ansprache ermöglicht. Alternativ schalte ich die Berechnung kurz an, wenn ich die nächste Quellzeile in mein Leseblatt eintrage...
Ist es jetzt besser zu verstehen?
Ron

Anzeige
AW: Variable definieren
13.02.2015 13:55:36
Ron
sorry - hatte den Vorgang irrtümlich zugemacht...

AW: Variable definieren
13.02.2015 14:24:42
Daniel
Hi
mach mal ein konkretes Beispiel.
Welcher Wert steht in der Variablen QZ und welche Spalte willst du dann ansprechen?
in der Cells-Funktion ist es so, dass diese als zweiten Parameter (also dort wo du die Variable QZ anwenden willst) entweder die Spaltennummer als Ganzzahl benötigt, oder den Spaltenbuchstaben als Text, dh entweder beispielsweise 27, oder den Text "AA".
die Spaltennummer ist eine Zahl zwischen 1 und 16384,
der Spaltenbuchstabe ein Text "A" - "XFD"
durch die Verkettung mit & entsteht auf jeden Fall ein Text, also ein Spaltenbuchstabe.
Es gibt aber keine Spaltenbuchstaben, die mit "3" anfangen.
Gruß Daniel

Anzeige
AW: Variable definieren
13.02.2015 17:07:22
Ron
Hallo Daniel,
dann hier mal eine Datei zum verdeutlichen. Derzeit nutze ich die Spalte F im Blatt lesen, um die Variable zu bilden... Code hängt mit dran.
https://www.herber.de/bbs/user/95747.xlsm
Gruß
Ron

AW: Variable definieren
15.02.2015 22:42:56
Ron
sorry - habe wieder mal nicht den Haken gesetzt...

AW: Variable definieren
16.02.2015 08:02:31
Daniel
Hi
ich blick da in deiner Datei nicht durch.
wenn du eine Zelle über Variablen ansprechen willst, dann hast du dazu folgende Möglichkeiten:
dim ZeileNr as Long
dim SpalteNr as Long
dim SpalteBuchstabe as String
ZeileNr = 1
SpalteNr = 1
SpalteBuchstabe = "A"
Cells(ZeileNr, SpalteNr).Select
Cells(ZeileNr, SpalteBuchstabe).Select
Range(SpalteBuchstabe & ZeileNr).Select
Du musst dich halt für eine Variante entscheiden.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige