Autor
|
Thema: Makro: Beliebige Zellen kopieren (12413 mal gelesen)
|
swaro Mitglied
Beiträge: 1 Registriert: 24.07.2013
|
erstellt am: 24. Jul. 2013 12:51 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich hab folgendes Problem. Ich haben hier ein Codeausschnitt gefunden der mir nur eine Zeile in ein anderes Excel Sheet kopiert, ich such aber ein Befehl mitdem ich mehrere ausgewählte Zellen in ein anderes Sheet bringen kann. Was muss ich umändern? Code: Public Sub test() With Worksheets("Tabelle2") ActiveCell.Copy Destination:=.Cells(.Rows.Count, 2).End(xlUp).Offset(1) End With End Sub
Wäre für jede konstruktive Antwort dankbar.
Gruß,
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 24. Jul. 2013 16:27 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Code: Public Sub test() With Worksheets("Tabelle2") Selection.Copy Destination:=.Cells(.Rows.Count, 2).End(xlUp).Offset(1) End With End Sub
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Herald Mitglied
Beiträge: 5 Registriert: 25.07.2013
|
erstellt am: 25. Jul. 2013 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Hallo Bernd! Ich bin in VDA ein blutiger Anfänger, darum verzeiht schonmal.
Hab ein ähnliches Problem, nur muss ich aus mehreren verbundenen Spalten mit mehreren Zellen darunter, sie auf einer Spalte bringen und den Wert in ein Excel Sheet bringen. Zelle0|.A.|.B.|.C|D|.E.|.........|.P.|.Q.|.R.|.... Zelle1|.DAY.|WERT1|..........|Decription Zelle2|.DAY.|WERT2|..........|Decription Zelle3|.DAY.|WERT3|..........|Decription Zelle4|.DAY.|WERT4|..........|Decription Die Zelle A1 & B1 sind miteinander verbunden und A2 & B2 ... usw, und die Zelle C1 & D1 & E1 und C2 & D2 & E2 ... usw P1 & Q1 & R1 .. usw
Demnach geh ich wie folgt vor: Code: Range("B1:B4").Delete Range("C1:E4").Delete Range("N1:P4").Delete
Das Problem hierbei ist, dass ich hier schon die Zellen auswähle also (active) setze und nicht (select) setze, da die Zellen immer unterschiedlich lang sind, die Spalten aber immer gleich, will ich das er mir die Spalten löscht die ich auswähle, den Inhalt aber drin lässt! Hier schaff ich es nur die ganze Spalte zu löschen!
Code: Sub löschen() ActiveWindow.RangeSelection.Rows.Delete End Sub
Zusatzproblem: Die Spalte P Q R welches nach dem delete auf M O P rutscht, soll nicht auf der gleichen Zelle im Dokument kopiert werden, sondern auf die Zelle U2
Wäre durchaus Dankbar! Auch nur für Ratschläge! ------------------ LG [Diese Nachricht wurde von Herald am 25. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 25. Jul. 2013 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Bitte das Problem so schildern, dass es nachvollziehbar wird. Momentan... Bahnhof "...Zellen sind unterschiedlich lang, Spalten aber immer gleich". Was soll das bedeuten? Hat das mit den teilweise verbundenen Zellen zu tun? Oder meinst Du die Formatierung von Spaltenbreite und Zeilenhöhe? Oder ist die Länge des (Text-)Inhalts der Zellen gemeint? "...die Spalten löscht die ich auswähle, den Inhalt aber drin lässt". Das geht faktisch gar nicht. Möglicherweise meinst Du hier etwas anderes. Das Gegenteilige ließe sich bewerkstelligen, Spalte beibehalten und Inhalt löschen. Sobald Du aber Spalten eliminierst, geht deren Inhalt gleichmaßen flöten. "Zusatzproblem:..." Was Du hier schilderst ist eine Aufgabenstellung, keine Problemstellung. Wo hakt es denn? Wo bleibst Du hängen? Was hast Du schon ausprobiert? ------------------ Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Herald Mitglied
Beiträge: 5 Registriert: 25.07.2013
|
erstellt am: 25. Jul. 2013 14:26 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Hallo carsten-3m! Auf jeden Fall vielen Dank, dass Du dich mit meinem Problem auseinandersetzt! Hoffe Du hast es anhand des Bildes leichter zu durchblicken. Endschuldige meiner schwammigen Formulierung. In einer Excel Datei sind nebeneinander stehenden Spalten Werte eingetragen. Diese Werte sollen automatisch in eine andere Excel Datei uebernommen werden, wobei der Inhalt der Spalten in eine Spalte kombiniert werden soll. Das soll fuer alle Zellen geschehen, die einen Wert in den jeweiligen Spalten aufweisen und in eine bestimmte Spalte im zweiten Dokument eingefuegt werden. Die Spalten im Dokument sind immer gleich! Nur die Zellen ändern sich. Die Zusatzvorraussetzung ist folgendes: Ich schaff es zwar die Zellen und Spalten ins andere Dokument zu bringen, aber kann nicht für jede Spalte entscheiden auf welche Spalte sie im zweiten Dokument hinkopiert werden soll.
Code: Public Sub zelleeinfueg() With Worksheets("Sheet2") Selection.Copy Destination:=.Cells.End(xlUp).Offset(2) End With End Sub
EDIT: Bild entfernt und unten eingefügt! [Diese Nachricht wurde von Herald am 25. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 25. Jul. 2013 14:31 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
|
Herald Mitglied
Beiträge: 5 Registriert: 25.07.2013
|
erstellt am: 25. Jul. 2013 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
|
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 25. Jul. 2013 15:45 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Mal sehen, ob ich's begriffen habe: In den Spalten A, C, F und P des Quellblatts können Werte enthalten sein. Abhängig davon, ob in einer Zeile eine der o. g. Spalten einen Wert aufweist, soll die ganze Zeile kopiert und in ein Zielblatt eingefügt werden. Dabei möchtest Du auf die Spalten verzichten, die durch die Zellverbindung auf dem Quellblatt vorhanden sind. Richtig? Edit: Wäre dem so, stellte sich umgehend die Frage, wozu hier VBA zum Einsatz kommen soll. Die Aufgabenstellung ließe sich mit Standardmethoden (Kopieren, Einfügen, Sortieren, Löschen) bewerkstelligen. Wäre die Tabelle jedoch eine sich ständig aktualisierende, kämen zwei Lösungsansätze in Betracht: 1. Tabelle akzeptieren wie sie ist und VBA nutzen, um den Kopiervorgang zu erledigen 2. Tabellenerzeuger bitten, die Tabelle gleich in einem wunschgemäßen Format anzubieten ------------------ Gruß, Carsten [Diese Nachricht wurde von carsten-3m am 25. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Herald Mitglied
Beiträge: 5 Registriert: 25.07.2013
|
erstellt am: 25. Jul. 2013 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Genau bzw auf "F" kann verzichtet werden da diese Spalte nicht gelesen/kopiert werden soll. Und eben, dass die Zellen in einer Spalte die ich markiere, in eine beligebige Zelle (im zweiten Dokument) eingefügt werden soll. Ich kann ja die Zelle AB mit einem Zelle nicht ansprechen? Ich bin ja gezwungen auf die anderen Zellen zu verzichten, welche verbunden sind und zu löschen? Und durch dem Befehl löschen der verbundenen Spalten kommt es nun zu dem "Ereignis" (siehe Bild) Ich markiere Zelle A1-A3 und wills im anderen Dokument auf die Spalte D2 1. geht leider nicht, da ich es mit einem Button starten will 2. geht leider nicht ------------------ LG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 153 Registriert: 11.10.2004 Civil3D 2018
|
erstellt am: 25. Jul. 2013 17:54 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Hallo Herald, ich bin mir auch nicht sicher, ob ich's richtig verstanden habe. Folgender Code kopiert Dir aus einer Mappe, Tabelle 1 den Inhalt der markierten Zeile in eine Mappe namens Zieldatei.xls, Tabelle 1, gleiche Zeile (Zieldatei muss dafür geöffnet sein). Die Quellmappe ist aufgebaut, wie in Deinem Beispielbild - A+B, C+D+E, P+Q+R Inhalt von A+B wird in gleiche Zeile, Spalte A der Zieldatei kopiert, Inhalt von C+D+E in Spalte B, Inhalt P+Q+R in Spalte C. Code: Sub Kopie() WBQ = ThisWorkbook.Name WBZ = "Zieldatei.xls" Zeile = Selection.Row Workbooks(WBZ).Sheets(1).Cells(Zeile, 1).Value = Workbooks(WBQ).Sheets(1).Cells(Zeile, 1).Value Workbooks(WBZ).Sheets(1).Cells(Zeile, 2).Value = Workbooks(WBQ).Sheets(1).Cells(Zeile, 3).Value Workbooks(WBZ).Sheets(1).Cells(Zeile, 3).Value = Workbooks(WBQ).Sheets(1).Cells(Zeile, 16).Value End Sub
Grüsse, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Herald Mitglied
Beiträge: 5 Registriert: 25.07.2013
|
erstellt am: 26. Jul. 2013 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für swaro
Hallo Frank88! Das ist genau was ich wollte. Perfekt, danke!! ------------------ LG EDIT: Unities wurden auch verteilt, danke nochmals an alle!
[Diese Nachricht wurde von Herald am 26. Jul. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|