Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1744to1748
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

Hochzählen zweier Variablen

Hochzählen zweier Variablen
18.03.2020 10:33:32
Lasse
Hallo Leute,
hoffe ihr könnt mir helfen: Aktuell sitze ich an einem Projekt für die Arbeit und muss eine Arbeitsmappe erstellen. Hatte VBA in der Uni, aber ein Semester reichte grade für die Grundlagen ...
Daher meine Frage:
Wenn ich aus einer Tabelle eines Arbeitsblattes mehrere (nebeneinander stehende) Werte in einer Zeile in eine andere Zeile eines anderen Arbeitsblattes schicken möchte, wie geht das?
Mein erster Ansatz war:

Sub ZL_Januar()
Dim SW1 as Integer
Dim IW1 as Integer
IW1 = 6
For SW1 = 4 to 47
ActiveWorkbook.Worksheets("Istwerte").Range(3, IW1) = ActiveWorkbook.Worksheets("ZUL_per_1"). _
Range(10, SW1)
IW1 = IW1+1
Next SW1
End Sub

Jetzt wird mir ein laufzeitfehler angezeigt.
Könnte mir irgendjemand helfen und erklären wie ich das ganze realisiere?
Vielen Dank im Voraus :)
Lasse

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
probier mal Cells statt Range ... owT
18.03.2020 10:39:50
Matthias
AW: statt Range nimm Cells
18.03.2020 10:41:37
hary
Moin
Das geht so nicht mit Range.
Range(3, IW1)

Du musst Cells nehmen.
Cells(3, IW1)

gruss hary
AW: statt Range nimm Cells
18.03.2020 10:56:58
Lasse
Vielen lieben Dank Hary, Vielen lieben Dank Matthias!
So, mit Cells geht das kopieren auf jeden Fall.
Code sieht genauso aus, nur mit Cells.
Nur gibts jetzt folgendes Problem:
Anstatt die Werte von den Zellen D10 - AT10 in die Zellen F3 - AV3 zu kopieren, kopiert er die Werte von L10 - AT10 in die Zellen F3 - AN3.
Verstehe nicht wieso, habe eigentlich für die Startwerte 4 und 6 genommen ...
Vielen Dank im Voraus!
Anzeige
AW: statt Range nimm Cells
18.03.2020 11:07:36
Lasse
Okay, hat sich erledigt, war was total dummes :)
AW: statt Range nimm Cells
18.03.2020 11:08:31
hary
Moin
Bei mir nicht.



ZUL_per_1
 DEFGHIJ
10abcdefg

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit




Istwerte
 FGHIJKL
3abcdefg

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

Hast du evtl. verbundene Zellen?
Evtl. Bsp.-Mappe hochladen.
gruss hary
Anzeige
AW: statt Range nimm Cells
18.03.2020 11:14:01
Lasse
Hi Harry,
ging dann bei mir auch, war nur so dumm und hab vergessen zu stoppen und zurück zu setzen und dementsprechend hat es falsch eingetragen ...
Geht jetzt vollumfänglich aber vielen Dank!!!!
Grüße
Lasses
und wieso per Schleife?
18.03.2020 11:15:42
Werner
Hallo,
ThisWorkbook.Worksheets("ZUL_per_1").Range("D10:AT10").Copy ThisWorkbook.Worksheets("Istwerte").Range("F3")
Gruß Werner
AW: und wieso per Schleife?
18.03.2020 11:22:29
Lasse
Hallo Werner,
wow. Da habe ich mir das unglaublich kompliziert gemacht und dann geht das mit einer Code-Zeile..
Vielen herzlichen Dank, ich werde deine Variante benutzen :)
Grüße
Lasse
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
18.03.2020 11:26:47
Werner
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
18.03.2020 13:14:30
Lasse
Hallo Werner,
Hoffe du - oder sonst ein helfer - kannst mir noch einmal helfen!
Der ursprüngliche Grund, wieso ich eine Schleife machen wollte, war, dass ich knapp 70 Zeilen von "ZUL_per_1" in "Istwerte" kopieren muss und das ganze nicht nur "Copy und paste" sein sollte.
Jetzt wollte ich diese Schleife machen und dementsprechend den Code so anpassen, dass ich "Range" in "Cells" umwandeln kann, damit ich dementsprechend meine Zählervariable einbauen kann. Hab einige Beiträge gelesen und ein bisschen rumprobiert, am Ende kam das dabei raus:
ThisWorkbook.Worksheets("ZUL_per_1").Range(.Cells(10, 4), .Cells(10, 47)).Copy ThisWorkbook.Worksheets("Istwerte").Range(.Cells(3, 6), .Cells(3, 49))

Habe es ohne die Punkte vor "Cells" probiert, mit den Zellen, mit Value =...
Finde den Fehler nicht..
Vielen Dank im Voraus :-)
Lasse
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
18.03.2020 13:38:16
Werner
Hallo,
was heißt denn bitte dass ich knapp 70 Zeilen?
Ist das ein fixer Bereich? Beispielsweise von Zeile 10 bis Zeile 80 ?
Oder variabel, sprich von Zeile 10 bis zur letzten belegten Zeile?
Vielleicht solltest du mal genauer beschreiben was du machen willst. Auf Rätselraten habe ich keine Lust.
Gruß Werner
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
18.03.2020 13:48:55
Lasse
Hallo Werner,
tut mir leid, habe mich nicht richtig ausgedrückt!
Also, auf dem Arbeitsblatt "ZUL_per_1" gibt es aktuell noch 61 Zeilen mit 43 Werten die in den fortlaufenden Spalten von D bis AT stehen. Die Matrix umfässt also 61 Zeilen und 43 Spalten.
Jede einzelne dieser Zeilen soll genau so wie sie ist in das andere Arbeitsblatt kopiert werden.
Hierbei gibt es jedoch zwischen den 61 Zeilen immer 11 freie Zeilen, weil aus jedem ZUL_per_Monat Arbeitsblatt, eine Zeile befüllt werden soll.
Dieser Bereich ist aktuell fix, kann sich aber in der Zukunft ändern, deshalb war meine Idee:
Zwei Zählervariablen in deinen tollen Code rein zu packen, damit Ich die Zeile von "ZUL_per_1" um eins erhöhen kann und im gleichen Schritt die Zeile der "Istwerte" um 12 erhöhen kann.
Hoffe, dass du verstehst was ich versuche zu sagen und ich entschuldige mich, falls ich umständlich oder doof formuliert habe...
Und nochmals vielen vielen Dank :-)
Lasse
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
18.03.2020 14:22:55
Werner
Hallo,
meinst du so?
Public Sub aaa()
Dim i As Long, z As Long
Application.ScreenUpdating = False
z = 3
With ThisWorkbook.Worksheets("ZUL_per_1")
For i = 10 To .Cells(.Rows.Count, "D").End(xlUp).Row
.Range("D" & i & ":AT" & i).Copy ThisWorkbook.Worksheets("Istwerte").Range("F" & z)
z = z + 12
Next i
End With
End Sub
Gruß Werner
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
18.03.2020 15:07:30
Lasse
Hallo Werner,
das ist genau das, was ich gesucht habe!!!!
Vielen, vielen Dank!
Liebe Grüße
Lasse
Gerne. o.w.T.
18.03.2020 16:20:48
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige