30.03.2024, 16:23
Moin, liebes Excel-Forum!
Ich habe da ein kleines Problem - wie sollte es auch anders sein *lol
Also...
Ich habe ein Tabellenblatt A.
In diesem Tabellenblatt A sind in Spalte 25 insgesamt 56 Daten drin.
Diese möchte ich auf Tabellenblatt B in eine Zeile (somit 230 Spalten) einfügen.
Bisher habe ich das mit einfachem Auslesen und Speichern in einer Variablen gemacht (z.B. AB1 = Range("Y2"))
Allerdings ist die Datensatz-Menge jetzt ziemlich angestiegen, sodass ich einen einfacheren Weg suche. ). Hier im Beispiel-Code habe ich das auf gesamt 10 reduziert, der einfachheit halber)
Aus Basic-Zeiten kenne ich ja noch die For-Next-Schleife.
Meine Idee war folgende:
Vom Ablauf :
Zunächst leseich die bereits vorhandene Menge an Datensätzen in Tabelle "B" aus und speichere den Wert in der Variablen "Zahler"
und erhöhe den Wert um 1.
-> Ich möchte, dass jeder neue Datensatz in eine neue Zeile kopiert wird.
Dann beginnt die For Next Schleife.
Der Rest ist lediglich dass anschließend alle Zellen die gleiche Größe erhalten, eine Erfolgsmeldung ausgegeben wird und das Tabellenblatt "A"
als Standardblatt angezeigt wird.
Soweit funktioniert das auch schon ABER...
In jeder kopierten Zelle steht nur "WAHR" drin...
Warum? Was mache ich verkehrt?
Ich habe da ein kleines Problem - wie sollte es auch anders sein *lol
Also...
Ich habe ein Tabellenblatt A.
In diesem Tabellenblatt A sind in Spalte 25 insgesamt 56 Daten drin.
Diese möchte ich auf Tabellenblatt B in eine Zeile (somit 230 Spalten) einfügen.
Bisher habe ich das mit einfachem Auslesen und Speichern in einer Variablen gemacht (z.B. AB1 = Range("Y2"))
Allerdings ist die Datensatz-Menge jetzt ziemlich angestiegen, sodass ich einen einfacheren Weg suche. ). Hier im Beispiel-Code habe ich das auf gesamt 10 reduziert, der einfachheit halber)
Aus Basic-Zeiten kenne ich ja noch die For-Next-Schleife.
Meine Idee war folgende:
Code:
DIM Zahler as Integer, i as integer, a as string
Worksheets("B").Activate
Zahler = Range("AC1")
Zahler = Zahler + 1
For i = 1 To 10
Worksheets("A").Activate
a = Cells(i + 1, 25).Copy
Worksheets("B").Activate
Cells(Zahler, i).Activate
ActiveCell.Value = a
Next i
Worksheets("A").Activate
Cells.Activate
Cells.EntireRow.RowHeight = 18
Cells(1, 1).Select
MsgBox ("Daten gespeichert!")
Worksheets("A").Activate
Vom Ablauf :
Zunächst leseich die bereits vorhandene Menge an Datensätzen in Tabelle "B" aus und speichere den Wert in der Variablen "Zahler"
und erhöhe den Wert um 1.
-> Ich möchte, dass jeder neue Datensatz in eine neue Zeile kopiert wird.
Dann beginnt die For Next Schleife.
- Jetzt wird Tabellenblatt "A" aktiviert.
- Zellwert aus Spalte 25, Zeile i+1 wird kopiert und der Variablen "a" zugewiesen.
- Danach wird das Tabellenblatt "B" aktiviert und die erste Zelle der nächsten freien Zeile ausgewählt (Variable Zahler)
- Nun wird der aktuelle Wert der Variablen "a" dort hineingeschrieben.
- Danach beginnt das Ganze von Vorn.
Der Rest ist lediglich dass anschließend alle Zellen die gleiche Größe erhalten, eine Erfolgsmeldung ausgegeben wird und das Tabellenblatt "A"
als Standardblatt angezeigt wird.
Soweit funktioniert das auch schon ABER...
In jeder kopierten Zelle steht nur "WAHR" drin...
Warum? Was mache ich verkehrt?