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

Werte per Schleifenanweisung kopieren

Werte per Schleifenanweisung kopieren
15.01.2013 15:54:40
Judmayer
Hallo Leute,
kann mir jemand weiterhelfen?
Wie kann ich mit einer Schleifenanweisung die Felder z.B.
B2 bis F2
B3 ... F3
...
...
B40 bis F40
von Tabelle1 nach Tabelle2 kopieren?
Viele Dank im Voraus!
fjudy

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte per Schleifenanweisung kopieren
15.01.2013 16:03:14
Matze
Hallo Judmayer,
Warum kopierste den Bereich B2:F40 nicht?
Nein war ein Scherz, wir müssten aber wissen unter welcher Bedingung die Schleife laufen soll.
Quasi die Aufgabenstell:
Mache das, Wenn das,.. kopiere in neue Tabelle, bleiben die Zeilen identisch in der neuen Tabelle?
Matze

AW: Werte per Schleifenanweisung kopieren
15.01.2013 16:16:43
Judmayer
Hallo Matze,
ich möchte mir folgende Einträge ersparen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveWorkbook.Name = "Stdnw_2013.01.xlsm" Then _
Range("A4") = Tabelle0305.Range("C17")
Range("B4") = Tabelle0305.Range("D17")
Range("C4") = Tabelle0305.Range("F17")
Range("D4") = Tabelle0305.Range("L17")
Range("A5") = Tabelle0305.Range("E18")
usw.
usw.
nur kopieren geht nicht, da die Tabelle jeden Monat neu gefüllt wird....
Gruß
fjudy

Anzeige
von hinten durch die Brust ....
15.01.2013 16:20:38
hinten
Hallo Judy,
Range("A4") = Tabelle0305.Range("C17")
Warum schreibst du nicht einfach in Zelle A4 einmalig
=Tabellenname!C17
?
Wie Matze schon schrieb, es währ gut zu wissen was genau du vorhast. Ausser dir kennt niemand die Tabelle, was für dich offensichtlich ist müssen wir erraten.
Grüße,
Klaus M.vdT.

AW: von hinten durch die Brust ....
15.01.2013 16:31:13
hinten
Hallo Klaus,
ich finde es immer wieder zum Schmunzel, die kleinen netten "von hinten durch die Brust"
oder letztens "On Error goto Hell" ,..
Hallo Judy,
mach doch eine Musterdatei dem Aufbau und der Lösungstabelle mit ein paar Beispieldaten gefüllt
- Kleine Beschreibung hinein was passieren soll, usw.
Matze

Anzeige
AW: von hinten durch die Brust ....
15.01.2013 16:40:54
hinten
Hallo Klaus,
ich habe eine Tabelle1 mit 31 Zeilen (A4 bis A34). Diese möchte ich in die Tabelle2 kopieren. Dies geht wiederum nur per VBA, da die 31 Zeilen jeden Monat neu gefüllt werden.
Ich möchte mit einer Schleife (For Each?) den Bereich:
Tabelle1.Range("A4:F34") in Tabelle2.Range("A4:F34") kopieren.
Gruß
fjudy

AW: von hinten durch die Brust ....
15.01.2013 16:58:48
hinten
Warum ne Schleife, Warum VBA ?
Bereich markieren Strg+C
wechseln in Tabelle2 , Zelle wählen ab wo mit Strg+V eingefügt wird fertig!
Wenn du eine Schleife und VBA willst teile uns mit was passieren soll,
schau dir mein Musterdatei an, vielleicht kannst du da was von gebrauchen.
Matze

Anzeige
AW: Werte per Schleifenanweisung kopieren
15.01.2013 17:50:48
Matze
Sorry Judy,
Rückfragen:
Du willst dir das mit dem VBA Code ersparen was in Tabelle "Übertrag" bei einem "selection Change" eingetragen wird. Die Daten stammen aus einem weiteren Blatt mit dem Namen Tabelle0305.
Da hatte Klaus schon geschrieben das direkt in die Tabelle zu schreiben, aber ich Vermute das
das Blatt "Übertrag" weitere Bezugsquellen hat oder ist es nur dieser Tabellenname?
Des Weiteren benutzt du Im Blatt StdAbr "verbundene Zellen" bei den Uhrzeiten. Warum?
Darf ich das abändern, am aussehen wird sich nichts ändern.?
Matze

AW: Werte per Schleifenanweisung kopieren
15.01.2013 16:44:02
Matze
Hallo Judy,
zwischenzeitlich kleine Musterdatei erstellt:
Die mit x gekennzeitechn Zeilen in Spalte 8 werden per Button
in die Tabelle2 übertragen.
Wenn dir das so reicht? Ansonsten hier melden und Beitrag auf "offen" markieren.
Matze
Datei: https://www.herber.de/bbs/user/83409.xlsm

Anzeige
AW: Werte per Schleifenanweisung kopieren
15.01.2013 17:11:11
Judmayer
Hallo Matze,
viele Dank!
Ich habe meine Datei hochgeladen...
Im VBA-Modus - siehst Du mein Problem...
Gruß
fjudy
https://www.herber.de/bbs/user/83410.xlsm

AW: Werte per Schleifenanweisung kopieren
15.01.2013 18:57:50
Matze
Sorry Judy,
Rückfragen:
Du willst dir das mit dem VBA Code ersparen was in Tabelle "Übertrag" bei einem "selection Change" eingetragen wird. Die Daten stammen aus einem weiteren Blatt mit dem Namen Tabelle0305.
Da hatte Klaus schon geschrieben das direkt in die Tabelle zu schreiben, aber ich Vermute das
das Blatt "Übertrag" weitere Bezugsquellen hat oder ist es nur dieser Tabellenname?
Des Weiteren benutzt du Im Blatt StdAbr "verbundene Zellen" bei den Uhrzeiten. Warum?
Darf ich das abändern, am aussehen wird sich nichts ändern.?
Klaus wenn du das hier verfolgst, melde dich, wenn du helfen könntest wäre mir das sehr lieb.
Matze

Anzeige
AW: Werte per Schleifenanweisung kopieren
16.01.2013 07:55:39
Judmayer
Hallo Matze,
ich konnte Dir gestern leider nicht mehr antworten.
Wie Du richtig vermutest, kann ich die Bezüge nicht direkt in die Tabelle "Übertrag" schreiben, denn die Zellen in "StdAbr" werden jeden Monat neu gefüllt. In "Übertrag" sollen die Zeilen jedoch fortlaufend geführt werden. Die Dateien werden für jeden Monat mit eigenen Namen gespeichert. (Stnw_2013.01, Stdnw_2013.02 usw.) Daher die IF Then Bedingung für Workbook.
Verbundenen Zellen können getrennt werden.
Gruß,
fjudy

AW: "IF Then Bedingung für Workbook"
16.01.2013 08:34:48
Klaus
Hi Judy,
Daher die IF Then Bedingung für Workbook.
das les ich erst jetzt. Dann musst du das in meinem Code natürlich wieder einkommentieren.
Allerdings würd ich das eher als Wächter laufen lassen, statt den gesamten Code in einem riesigem IF-Block stehen zu haben (ala "if not workbook.name = "Stdnw_2013.02" then exit sub)
In deinem Beispiel ist das fast egal, aber wenn du mal größere Projekte angehst ist es gut sich sowas früh angewöhnt zu haben.
Grüße,
Klaus M.vdT.
PS: "exit sub" ist hier als pseudocode für eine verfrühte Exit-Bedingung zu verstehen. Auf den eigentlichen Befehl "exit sub" sollte lieber verzichtet werden.

Anzeige
AW: Werte per Schleifenanweisung kopieren
16.01.2013 08:28:10
Klaus
Hallo Judy,
eine Datei erklärt mehr als 1000 Worte! Sorry, ich hab bei deinen Forumsbeiträgen null geblickt was du möchtest, aber nach 15sec in der Datei das Problem verstanden :-)
Anbei der Code, Kommentare inklusive:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'die erste Zeile ändere ich mal nicht, ABER:
'bist du sicher, dass du bei JEDEM selection-Change einen Schleifendurchlauf
'haben willst? Ich hätt das ganze eher auf einen Button gesetzt, oder auf worksheet.activate
Dim lRowFirstSource As Long
Dim lRowFirstTarget As Long
Dim lRowLastTarget As Long
Dim lCounter As Long
Dim wksSource As Worksheet
Dim wksTarget As Worksheet
lRowFirstSource = 17        'in "StdAbr" gehts ab Zeile 17 los (da A4 = C17)
lRowFirstTarget = 4         'in "Übertrag" gehts ab Zeile 4 los (da A4 = C17)
Set wksSource = Tabelle0305 'hier kommen die Zahlen her
Set wksTarget = Tabelle2    'hier kommen die Zahlen hin
'If ActiveWorkbook.Name = "Stork-Stdnw_2013.01.xlsm" Then
'den versteh ich nicht. Was bringt das? auskommentiert.
Application.ScreenUpdating = False 'Bildschirmflackern verhindern
With Sheets("Übertrag")
'letzte Zeile feststellen
lRowLastTarget = .Cells(Rows.Count, 1).End(xlUp).Row
For lCounter = lRowFirstTarget To lRowLastTarget 'zeilen durchzählen
'Werte setzen
.Range("A" & lCounter).Value = wksSource.Range("C" & lCounter + lRowFirstSource -  _
lRowFirstTarget - 1)
.Range("B" & lCounter).Value = wksSource.Range("D" & lCounter + lRowFirstSource -  _
lRowFirstTarget - 1)
.Range("C" & lCounter).Value = wksSource.Range("F" & lCounter + lRowFirstSource -  _
lRowFirstTarget - 1)
.Range("D" & lCounter).Value = wksSource.Range("L" & lCounter + lRowFirstSource -  _
lRowFirstTarget - 1)
'lCounter zählt von 4 bis 13 (in diesem Beispiel)
'Erster durchlauf setzt auf A4, da lcounter gleich 4, den Wert aus Tabelle 0305 Zeile  _
17 denn:
'lCounter (4) plus lRowFirstSource (17) - lRowFirstTarget (4) - 1 ist gleich 17
'zweiter Durchlauf ebenso, aber eins höher
Next lCounter
End With
'End If
'Block-IF auskommentiert (siehe oben)
Application.ScreenUpdating = True 'Damit du wieder siehst was du machst
End Sub
Grüße,
Klaus M.vdT.
PS: Matze, ich mag dich auch gerne :)

Anzeige
aaah, eine Änderung noch!
16.01.2013 08:30:29
Klaus
Hi,
statt
With Sheets("Übertrag")
bitte
With wksTarget
Ich hab extra für alles variablen genommen damit es leicht anzupassen ist, da muss nicht der eine fixe Bezug drinnen sein der vom Entwickeln übrig geblieben ist.
Grüße,
Klaus M.vdT.

AW: aaah, eine Änderung noch!
16.01.2013 09:18:55
Judmayer
Hallo Klaus,
hallo Matze
prima, vielen Dank für Eure Hilfe.
Gruß
fjudy

Danke für die Rückmeldung! owT.
16.01.2013 09:19:24
Klaus
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige