Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

In naechste Spalte schreiben

In naechste Spalte schreiben
13.09.2002 16:09:10
Andreas Koehler
Hi.

Ich habe die Spalten A:G und die Zeilen 1:20 in Tabelle2. Es werden nun immer wieder Werte von Tabelle1 in Tabelle2 uebergeben. Die ersten Werte sollen nun in Spalte A geschrieben werden. Es werden aber nicht alle Zeilen gefuellt.
Wie kann das Programm bei der naechsten Datenuebergabe automatisch in Spalte B schreiben und dann C usw.

Waere nett, wenn mir jemand helfen koennte.

Andreas.

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

Betreff
Datum
Anwender
Anzeige
Re: In naechste Spalte schreiben
13.09.2002 16:55:24
Axel
Hallo,

etwas dürftig Deine Informationen.

Wie werden die Daten übergeben? Wie soll festgestellt werden (welches Kriterium), wann die nächste Spalte zu füllen ist?


Gruß
Axel

Re: In naechste Spalte schreiben
13.09.2002 17:01:21
Andreas Koehler
Es werden Datumseingaben in 2 Felder in TB1 eingegeben und in TB2 als "t" eingetragen. Dazwischen werden "p" gesetzt. Nun soll bei der naechsten Eingabe in die naechste Spalte geschrieben werden.

Hier das Programm bisher:
'Input: Schedule
Dim TB1 As Worksheet, TB2 As Worksheet
Dim fCellArr As Range
Dim fCellDep As Range
Dim first, last, i As Long


Set TB1 = Worksheets("Input Screen")
Set TB2 = Worksheets("Engineer Costs")
Set fCellArr = TB2.Columns(1).Find(DateValue(TB1.Range("P5")))
fCellArr.Offset(0, 4) = "t"
first = fCellArr.Row

Set TB1 = Worksheets("Input Screen")
Set TB2 = Worksheets("Engineer Costs")
Set fCellDep = TB2.Columns(1).Find(DateValue(TB1.Range("T5")))
fCellDep.Offset(0, 4) = "t"
last = fCellDep.Row
If last - first > 1 Then
For i = 1 To last - first - 1
fCellArr.Offset(i, 4) = "p"
Next
End If

Anzeige
Re: In naechste Spalte schreiben
13.09.2002 17:32:40
Chris
Nur eine Idee bzw. Lösungsansatz

Setze eine Variable als Public String (der Wert der Variable wird dadurch bei wiederholtem Ausführen der Routine erhalten). Dann in die Routine reinschreiben "Variable = Variable + 1". Somit nimmt die Varibable also jedesmal wenn du die Routine ausführst um 1 zu. Mit dieser Varible kannst du dann die Spalten der Reihe nach ansteuern.

Das ganze funktioniert natürlich nicht, wenn du die Datei zwischendurch schliesst. In diesem Fall musst du irgendwie identifizieren, in welcher Spalte das Programm beginnen soll. Wenn du eine Zeile (z.B. Zeile 1) hast, die immer einen Wert enthält, kannst du eine Abfrage machen z.B. irgendwas in der Art "if ActiveSheet.Cells(1, x) <> "" then Variable = x" mit einer Schleife.

Anzeige
Re: In naechste Spalte schreiben
13.09.2002 17:45:16
Axel
Hallo,

zunächst ein kleiner Hinweis zur Deklaration von first und last.

Wenn mehrere Variablen in einer Anweisung (einer Zeile) deklariert werden, muß für jede Variable der Typ explizit angeben werden. Erfolgt dies nicht, wird implizit der Variant-Typ verwendet, korrekt sollte die Zeile also so ausssehen:

Dim first as long, last as long, i as long

Das überflüssige zweite Setzen von TB1 und TB2 kannst Du sparen, entferne die Zeilen einfach.

Wie wird der Code den gestartet?

Über einen Button?

Wenn Du beim nächsten Click die nächste Spalte verwenden möchtest, mußt Du Dir die letzte verwendete Spaltennummer merken, z.B. in einer globalen (oder einer Static) Variablen oder in einer Zelle.

Bei jeden neuen Aufruf des Makro wird die Variable hochgezählt.

Statt des fixen Spaltenoffset 4 verwendest Du dann diese Variable.

Soweit klar?

Gruß
Axel

Anzeige
Re: In naechste Spalte schreiben
13.09.2002 20:31:31
Andreas Koehler
Hi Alex.

Danke fuer die Tips. Jetzt hat es funktioniert. Ich hab eine static Variable verwendet. Wenn ich nun aber meine Tabelle speicher und beende, dann merkt sich das Programm nicht, wo die naechste Spalte ist und faengt wieder mit der ersten an.
Kann man eine Variable verwenden (also nicht static), die beim naechsten mal in der richtigen Spalte weitermacht.

PS. Ich benutze Buttons.

Re: In naechste Spalte schreiben
13.09.2002 20:55:47
Axel
Hallo,

Da bietet sich die Lösung an, die auch Chris in seinem Beitrag vorschlägt.

Verwende statt bzw. zusätzlich zu einer Variable irgendeine Zelle des Blattes. Die kannst Du auch einfach hochzählen und der letzte Wert bleibt natürlich beim Speichern erhalten, z.B.


Range("X1") = Range("X1) + 1
intOffset = Range("X1")

Gruß
Axel

Anzeige
Re: In naechste Spalte schreiben
13.09.2002 22:13:54
Andreas Koehler
Hi Alex.

Das verstehe ich aber jetzt nicht ganz. Wie soll ich die Zelle hochzaehlen. Wie soll ich dein Beispiel einbinden?

Sorry!

Re: In naechste Spalte schreiben
13.09.2002 22:46:44
Axel
Hallo,

dann test einfach mal das folgende Makro.
Schreibe in Zelle IV1 den Anfangsoffset hinein, z.B. 4
IV ist die letzte Spalte und stört wohl nicht. Du kannst natürlich auch irgendeine andere Zelle unterhalb der Daten verwenden.

Gruß
Axel

Re: In naechste Spalte schreiben
13.09.2002 23:10:41
Andreas Koehler
Hallo Axel.

Vielen herzlichen Dank! Jetzt funktioniert es so, wie es sein soll.
Und sorry, dass du meinetwegen so viele Umstaende hattest.

Gruesse Andreas.

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige