Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kopieren

Kopieren
28.02.2007 15:00:00
Rene
Moin zusammen,
Ich habe da mal eine Frage.
Ich habe zwei Mappen die eine heißt "BTB Formular" und die andere heißt "Auflistung".
Nun wollte ich von dem BTB Formular 3 Zellen (D4,J4,N31) in die Mappe Auflistung kopieren.
Als Beispiel:
D4 (BTB Formular) = B6 (Auflistung)
J4 (BTB Formular) = E6 (Auflistung)
N31 (BTB Formular) = C6 (Auflistung)
Wenn aber die Zellen voll sind soll die nächste Zeile genommen werden.
D4 (BTB Formular) = B7 (Auflistung)
J4 (BTB Formular) = E7 (Auflistung)
N31 (BTB Formular) = C7 (Auflistung)
usw.
Kann mir da einer bitte weiterhelfen wie ich das anstellen müßte?
Gruß René

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

Betreff
Datum
Anwender
Anzeige
AW: Kopieren
28.02.2007 21:11:00
Gerd
Guten Abend Rene,
hast Du tatsächlich zwei Mappen = zwei verschiedene Exceldateien.
Dann solltest Du noch die Namen der beiden Tabellenblätter mitteilen.
Oder meinst Du mit "BTB Formular" und "Auflistung" zwei Tabellenblätter in einer Datei ?
Gruß
Gerd
AW: Kopieren
01.03.2007 05:53:00
Rene
Moin Gerd,
Danke für deine Antwort, hatte Nachtschicht deswegen erst jetzt eine Antwort von mir.
Ich habe 2 Mappen die eine heißt "BTB Formular.xls" und der Sheet "BTB" und die zweite Mappe heißt "Auflistung.xls" und der Sheet "2007".
Wäre prima wenn du mir helfen könntest.
gruß René
AW: Kopieren
01.03.2007 05:56:00
Rene
Moin,
Ich noch mal habe vergessen die Frage als noch offen auszuwählen.
Gruß René
Anzeige
AW: Kopieren
02.03.2007 07:08:00
Hans
Hallo René,
wie folgt:
Sub Kopieren()
Dim col As New Collection
Dim wksSource As Worksheet, wksTarget As Worksheet
Dim iCol As Integer
Set wksTarget = Workbooks("BTB Formular.xls").Worksheets("BTB")
Set wksSource = Workbooks("Auflistung.xls").Worksheets("2007")
col.Add wksTarget.Range("D4")
col.Add wksTarget.Range("J4")
col.Add wksTarget.Range("N31")
For iCol = 1 To 3
Do Until IsEmpty(col(iCol))
Set col(iCol) = col(iCol).Offset(1, 0)
Loop
Select Case iCol
Case 1: col(iCol).Value = wksSource.Range("B7").Value
Case 2: col(iCol).Value = wksSource.Range("E7").Value
Case 1: col(iCol).Value = wksSource.Range("C7").Value
End Select
Next iCol
End Sub
Gruss hans
Anzeige
AW: Kopieren
02.03.2007 21:46:03
Rene
Hallo Hans,
Danke für deine Antwort und Hilfe,leider bekomme ich einen Laufzeitfehler 438
Die Zeile wird gelb markiert:
Set col(iCol) = col(iCol).Offset(1, 0)
Ich habe beide Mappen offen aber es klappt nicht.
Kannst du mir da weiterhelfen?
Gruß René
AW: Kopieren
03.03.2007 01:04:00
Mustafa
Hallo Rene,
Versuch es mal mit folgendem Code:
Sub Kopieren()
Dim wksSource As Worksheet, wksTarget As Worksheet
Dim lZeile As Long
Set wksSource = Workbooks("BTB Formular.xls").Worksheets("BTB")
Set wksTarget = Workbooks("Auflistung.xls").Worksheets("2007")
lZeile = wksTarget.Range("B65536").End(xlUp).Offset(1, 0)
If lZeile < 6 Then lZeile = 6
wksTarget.Cells(lZeile, 2) = wksSource.Range("D4")
wksTarget.Cells(lZeile, 5) = wksSource.Range("J4")
wksTarget.Cells(lZeile, 3) = wksSource.Range("N31")
End Sub

Vor dem Eintragen in Tabelle Auflistung wird geprüft welche Zeile in Spalte B die letzte befüllte Zelle ist und die werte Aus BTB werden in die Auflistung in die Zeile drunter geschrieben.
Ungetestet!!!
Rückmeldung obs Hilft wäre nett.
Viele Grüße aus Köln.
Anzeige
AW: Kopieren
03.03.2007 07:19:21
Rene
Hallo Mustafa,
Danke auch dir für deine Antwort und Hilfe. Es klappt schon fast prima so, es werden die Daten übernommen aber leider nur einmal.Es wird nicht in die nächste Zeile weiter geschrieben. Kannst du mir da noch mal weiter helfen?
Gruß René
AW: Kopieren
03.03.2007 09:12:26
Erich
Hallo Rene,
noch ne Variante:
Option Explicit
Sub Kopieren()
Dim wksSource As Worksheet, lZeile As Long
Set wksSource = Workbooks("BTB Formular.xls").Worksheets("BTB")
With Workbooks("Auflistung.xls").Worksheets("2007")
lZeile = Application.Max(5, .Range("B65536").End(xlUp).Row, _
.Range("E65536").End(xlUp).Row, _
.Range("C65536").End(xlUp).Row) + 1
.Cells(lZeile, 2) = wksSource.Range("D4")
.Cells(lZeile, 5) = wksSource.Range("J4")
.Cells(lZeile, 3) = wksSource.Range("N31")
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Kopieren
03.03.2007 14:34:00
Rene
Hallo Erich,
Auch dir danke für deine Hilfe aber leider passiert gar nichts.
Es wird nichts kopiert in die Mappe "Auflistung.xls" Sheet "2007".
Weißt du vielleicht warum? Klappt es denn bei dir?
Wäre super wenn ihr mir noch mal helfen könntet.
Gruß Rene
AW: Kopieren
03.03.2007 14:44:00
Rene
Hallo Erich,
Habe eben erst gesehen das die Daten in der 200 Zeile Beginnen eingetragen zu werden, habe dann aus der Zeile:
lZeile = Application.Max(5, .Range("B65536").End(xlUp).Row, _
.Range("E65536").End(xlUp).Row, _
.Range("C65536").End(xlUp).Row) + 1
die 5 in eine 1 geändert und jetzt fängt er bei Zeile 38 an aber es soll in Zeile 6 Beginnen.
Vielleicht weißt du warum dies so ist ansonsten klappt es prima so mit dem weiterschreiben.
Gruß Rene
Anzeige
AW: Kopieren
03.03.2007 17:39:51
Erich
Hallo Rene,
bist du sicher, dass die Zeilen ab 6 in den Spalten B, C und E wirklich leer sind?
Stehen da vielleicht Formeln, z. B. in B37, C37 oder E37?
Dass allein das Ersetzen der 5 durch 1 dazu führte, dass jetzt in Zeile 38 statt 200 begonnen wird,
kann ich nicht glauben.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Kopieren
03.03.2007 18:00:00
Rene
Hallo Erich,
Du hast natürlich Recht wenn die Tabelle leer ist klappt es bestens,da ich aber schon Daten eingetragen habe dachte ich wenn ich die Anfangszeile in deinem Code ändere fängt er dort an zu zählen wo ich ihm
die Zeile vorgebe aber leider ist es nicht so. Da ich jetzt bei Zeile 15 bin würde es bei 16 weitergehen. Sobald ich aber die 5 änder fängt er immer bei Zeile 38 an.
Kannst du mir bitte noch mal helfen.
Danke
René
Anzeige
AW: Kopieren
03.03.2007 18:13:26
Erich
Hallo Rene,
in deinem ersten Beitrag hast du geschrieben:
"Wenn aber die Zellen voll sind soll die nächste Zeile genommen werden."
Das tut das Makro.
Wonach soll VBA sich richten, wenn die Zeilen (evtl. teilweise) voll sind?
Welche Daten dürfen überschrieben werden, welche nicht?
Bei JEDEM Start des Makros muss feststehen, in welche Zeile nun geschrieben werden soll.
Eine Möglichkeit:
Du legst fest, in welcher Zelle (in einem Blatt einer der beteiligten Mappen) die Zeilennummer steht.
Vor dem 1. Start gibst du die Zeilennummer mit der Hand ein,
das Makro zählt um 1 hoch.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Kopieren
03.03.2007 17:52:00
Erich
Hallo Rene,
dieses Makro zeigt dir die Zeilennummern der letzten belegten Zeilen in Auflistung.xls, Blatt 2007:
Sub tst()
With Workbooks("Auflistung.xls").Worksheets("2007")
MsgBox "Letzte Zeile" & vbLf _
& "in B: " & .Range("B65536").End(xlUp).Row & vbLf _
& "in C: " & .Range("C65536").End(xlUp).Row & vbLf _
& "in E: " & .Range("E65536").End(xlUp).Row
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Kopieren
03.03.2007 18:16:00
Rene
Hallo Erich,
Habe deinen Test probiert und siehe da dabei ist es mir klar geworden warum er in Zeile 38 immer weitergeschrieben hat.Ich hatte in C37 die Summe von C6:C36 stehen.Deswegen schreibte er immer in Zeile 38 weiter.Habe dieses nun gelöscht und nun klappt es prima so.
Danke dir noch mal für deine Hilfe.
Viele Grüße aus dem Schaumburger Land
René
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige