Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Von Sheet nach Sheet kopieren

Von Sheet nach Sheet kopieren
20.04.2006 17:00:55
Martin
Hallo Leute!
Ich habe hier ein Excel-Projekt und stehe bei einem Problem an.
Es gibt z.b. das Sheet "MASKE" und das Sheet "DATEN"
In der MASKE sollen das in bestimmte Felder händisch eingefügt werden.
Dann sollen diese eingebenen Daten mittels Makro nach DATEN kopiert werden. Und zwar einzeln - Zelle für Zelle, ohne Formatierung (also nur Wert).
Also z.b.
vom Sheet MASKE, Zelle B3 kopieren
wechseln nach Sheet DATEN und in die erste freie Zeile, erste Zelle, einfügen.
dann wieder vom Sheet MASKE, Zelle C8 kopieren
wechseln nach Sheet DATEN und in die nächste Zelle, neben der wo wir davor eingefügt haben, auch einfügen.
usw.
Ich stoße nur auf Fehlermeldungen (Select-Methode konnte nicht...) und unlösbare Probleme...
Vielleicht kann mir von Euch wer weiterhelfen - danke, danke!
Marty

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

Betreff
Datum
Anwender
Anzeige
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:08:33
u_
Hallo,
das geht vollkommen ohne Select.
with sheets("Daten")
iRow=.cells(65536,1).end(xlup).row+1
with .Rows(irow)
.cells(1)=sheets("Maske").Range("B3")
.cells(2)=sheets("Maske").Range("C8")
'etc.
end with
end with
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:14:11
Martin
Hi!
Danke für Deinen Tip!
Wenn ich das aber bei mir ausprobieren möchte, bekomme ich bei .Cells(1).......
einen "Laufzeitfehler 9" - Index außerhalb des gültigen Bereichs.
hmmm
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:17:30
Erich
Hallo,
u_s Vorschlag ist besser! Der Fehler liegt weahrscheinlich darin, dass im Code MASKE und DATEN statt Maske und Daten stehen muss.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:23:57
Martin
DATEN und MASKE steht schon drinnen...
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:14:22
Erich
Hallo Marty,
vermutlich versuchst du in einem Makro im Klassenmodul einer Tabelle mit "Select" auf Zellen einer anderen Tabelle zugreifen - das geht nicht.
Vorschlag:
Du erstellst eine Prozedur "Uebertragen" in einem "normalen" Modul und rufst sie in deinem Tabellenmakro auf. Das könnte etwa so aussehen:
Sub Uebertragen()
Dim lngZ As Long
With Sheets("DATEN")
lngZ = .Cells(Rows.Count, 1).Row + 1
.Cells(lngZ, 1) = Sheets("MASKE").Range("B3")
.Cells(lngZ, 2) = Sheets("MASKE").Range("C8")
.Cells(lngZ, 3) = Sheets("MASKE").Range("A8")
.Cells(lngZ, 4) = Sheets("MASKE").Range("E2")
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:30:06
Martin
Danke Erich!
Anscheinend dürften meine VBA-Kenntnisse doch nicht mehr so gut sein, wie sie einmal waren.
Irgendwie stehe ich jetzt bei einem Laufzeitfehler 1004 an.
Ich habe das neue Modul, so wie Du beschrieben hast, aus meinem Tabellenmakro aufgerufen...
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:33:59
Erich
Hallo Marty,
könntest du dein Tabellenmakro mal hier ins Forum stellen und auch schreiben, in welcher Zeile es mit 1004 abbricht? So können wir nur im Nebel stochern...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:45:11
Martin
Bevor ich das poste (und mich blamiere :-); was macht eigentlich das " lngZ = .Cells(Rows.Count, 1).Row + 1" ?
Danke!
Anzeige
AW: Von Sheet nach Sheet kopieren
20.04.2006 17:59:11
Erich
Hallo Marty,
hier blamiert sich doch keiner - abgesehen von mir selbst:
Meine Zeile
lngZ = .Cells(Rows.Count, 1).Row + 1
ist falsch, sollte so sein:
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
(Damit wird die Zeile unter der letzten nichtleeren Zelle in Spalte A bestimmt.)
'tschuldigung!
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Von Sheet nach Sheet kopieren
20.04.2006 18:07:26
Martin
Danke!
Das sieht soweit super aus!
Jetzt muss ich das nur noch auf ein paar Zellen ausbauen; das werde ich aber heute jedoch nicht mehr machen, sondern mich in den Feierabend begeben - ich Melde mich morgen wieder und gebe Rückmeldung, wie es funktioniert hat.
Vielen Dank aber nochmals!
Anzeige
bis dahin geschlossen... :-)
20.04.2006 18:19:48
Erich
AW: bis dahin geschlossen... :-)
21.04.2006 08:15:45
Martin
Einen schönen guten Morgen, da bin ich wieder! :-)
Ich habe das jetzt etwas erweitert und sieht jetzt so aus:
========

Sub Uebertragen()
Dim lngZ As Long
With Sheets("Daten")
lngZ = .Cells(Rows.Count, 1).Row + 1
'DATUM
.Cells(lngZ, 1) = Sheets("Eingabemaske").Range("B2")
'WER
.Cells(lngZ, 3) = Sheets("Eingabemaske").Range("B4")
'KNDNR
.Cells(lngZ, 4) = Sheets("Eingabemaske").Range("B6")
'PZN
.Cells(lngZ, 5) = Sheets("Eingabemaske").Range("B8")
'ARTBEZ
.Cells(lngZ, 6) = Sheets("Eingabemaske").Range("B10")
'MENGE
.Cells(lngZ, 7) = Sheets("Eingabemaske").Range("B15")
'EP
.Cells(lngZ, 8) = Sheets("Eingabemaske").Range("B12")
'AEP
.Cells(lngZ, 9) = Sheets("Eingabemaske").Range("B13")
'GRUND
.Cells(lngZ, 11) = Sheets("Eingabemaske").Range("B17")
End With
End Sub

========
Ich dachte mir, so könnte es funktionieren, nur werden die Daten nur bis zur Spalte "D" kopiert und der Rest fällt weg.
Außerdem wollte ich versuchen, die Spalte "B" frei zu lassen (ausgefüllt wird dann nur A, C, D, E, F, G, H, I und K) - ist mir aber etwas missglückt.
Warum? :-)
Danke, danke!
Marty
Anzeige
AW: bis dahin geschlossen... :-)
21.04.2006 08:34:36
Erich
Hallo Marty,
die Prozedur läuft so wohl gar nicht, sondern bringt einen Fehler. Du hast meine Korrektur bei der Bestimmung von lngZ nicht eingebaut - schau bitte noch mal in
https://www.herber.de/forum/messages/756763.html
Dort habe ich dir geschrieben, dass die Zeile so aussehen muss:
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: bis dahin geschlossen... :-)
21.04.2006 09:23:02
Martin
Danke, das war der Fehler - das kommt davon, wenn man am Vorabend nicht speichert ;-)
Danke!
Danke für Rückmeldung - nicht mehr offen! (oT)
21.04.2006 09:43:55
Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige