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

Zeilen markieren und per VBA kopieren

Zeilen markieren und per VBA kopieren
Stefan
Hallo,
folgendes Problem:
ein Anwender soll in einer Excel-Liste die zuletzt gemachten Einträge in Tabelle 1 markieren und diese sollen dann per Klick auf ein Steuerelement in eine andere Arbeitsmappe (Tabelle1) angefügt (kopiert) werden.
Kann mir hiermit jemand helfen?
Viele Grüße
Stefan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen markieren und per VBA kopieren
28.04.2010 19:04:31
Steffen
Hallo Stefan
mal als Bsp:
Code in ein allgemeines Modul:
Sub myCopy()
Selection.Copy Destination:=Sheets(1).Cells(1, 1)
Application.CutCopyMode = False
End Sub
Grüße
Steffen
ohne Application.CutCopyMode
28.04.2010 20:10:42
Erich
Hi Steffen,
"Application.CutCopyMode = False" ist hier überflüssig und wirkungslos,
da du dem Copy gleich eine Destination mitgegeben hast.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: ohne Application.CutCopyMode
28.04.2010 20:41:00
Stefan
Hi,
habs ausprobiert und klappt hervorragend. Vielen und herzlichsten Dank, auch für die prompte Antwort.
Du hast mir wirklich sehr geholfen. Nochmals Danke.
Viele Grüße
Stefan
Anzeige
AW: Zeilen markieren und per VBA kopieren
28.04.2010 20:18:22
Stefan
Hi,
ich werds ausprobieren, vielen Dank erst mal. Allerdings habe ich noch ein weiteres Problem. Wie schaffe ich es, daß die markierten (also kopierten) Zellen bzw. Zeilen in der Zieltabelle immer "unten" angehängt werden (sozusagen ab der ersten freien Zeile reinkopiert werden) und die schon vorhandenen Daten nicht überschreiben.
Vielen Dank nochmal
Stefan
2 beispiele
28.04.2010 20:34:22
Steffen
Hallo Stefan
Bereiche & Namen noch anpassen!
'wenn daten in ein anderes sheet übertragen werden sollen
Sub myCopy()
Dim lngLastRow As Long
With Sheets(1)
lngLastRow = IIf(.Cells(1, 1).End(xlDown).Row = .Rows.Count, 1, .Cells(1, 1).End(xlDown).Row)
Selection.Copy Destination:=.Cells(lngLastRow, 1).Offset(1, 0)
End With
End Sub

'wenn in eine andere Mappe Daten übertragen sollen
Sub myCopy2()
Dim lngLastRow As Long
With Workbooks("Mappe2").Sheets(1)
lngLastRow = IIf(.Cells(1, 1).End(xlDown).Row = .Rows.Count, 1, .Cells(1, 1).End(xlDown).Row)
Selection.Copy Destination:=.Cells(lngLastRow, 1).Offset(1, 0)
End With
End Sub

Grüße
Steffen
Anzeige
ich war zu schnell,besser so..
28.04.2010 20:44:42
Steffen
ersetze die zeile:
lngLastRow = IIf(.Cells(1, 1).End(xlDown).Row = .Rows.Count, 1, .Cells(1, 1).End(xlDown).Row)
in:
lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
Grüße
Steffen
..hoffe es passt nun ;-)
AW: 2 beispiele
28.04.2010 20:48:44
Stefan
Hi nochmal,
da ist doch noch ein Punkt. Sorry, wenn ich nerve. Die Hilfe klappt soweit. Aber gibt es eine Möglichkeit, das es auch bei geschlossener Zieltabelle funktioniert oder muß die immer geöffnet sein? Schön wäre es, aus mehreren Tabellen aus verschiedenen Arbeitsmappen die jeweils neu eingetragenen Daten in Tabelle1 einer Zielarbeitsmappe zu übertragen (also immer angehängt) ohne die Zielarbeitsmappe öffnen zu müssen. Ich weiß nicht ob das überhaupt geht.
Vielen Dank
Stefan
Anzeige
Bsp 3
28.04.2010 22:06:41
Steffen
Hallo Stefan,
bin kein Profi nur Novize ;-) u meines Erachtens nach geht das nicht ,folgender Code öffnet deine "Masterdatei" unsichtbar und kopiert die ausgewählten Bereiche in die Datei.
Sub myCopy3()
Dim objXLApp As Excel.Application
Dim objXLABC As Excel.Workbook
Dim objXLWorkbooks As Excel.Workbooks
Dim neuWkb
Dim lngLastRow As Long
Dim mySelection()
Dim myCounter()
Dim i As Long
mySelection = Selection
ReDim myCounter(1 To UBound(mySelection))
For i = LBound(mySelection()) To UBound(mySelection())
myCounter(i) = mySelection(i, 1)
Next
Set objXLApp = New Excel.Application
Set objXLWorkbooks = objXLApp.Workbooks
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set objXLABC = objXLWorkbooks.Open("C:\Users\Steffen\Desktop\Mappe2.xls")
neuWkb = objXLABC.Name
With objXLWorkbooks(neuWkb).Sheets(1)
lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = LBound(mySelection()) To UBound(mySelection())
.Cells(lngLastRow + i, 1).Offset(1, 0) = myCounter(i)
Next
End With
objXLWorkbooks(neuWkb).Close savechanges:=True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Set objXLApp = Nothing
Set objXLWorkbooks = Nothing
End Sub

...und wieder gilt - Namen und Bereiche anpassen!
Grüße
Steffen
Anzeige
Sorry nicht richtig getestet ;-)
28.04.2010 22:20:05
Steffen
Hi Stefan ,
lösche bitte im Code den Teil:
.Offset(1, 0)
...sonst bleibt in der Datei immer eine Zeile frei!
Grüße
Steffen
P.S ..hoffe du hast Nachsicht mit meiner Schusseligkeit ;-)
AW: Sorry nicht richtig getestet ;-)
28.04.2010 22:22:56
Stefan
Hallo,
überhaupt kein Problem. Ich bi dir wirklich sehr dankbar. Du hast mir sehr geholfen. Und danke nochmal für die prompte Antwort. Ich hoffe dir wird bei Problemen genauso gut geholfen wie du mir geholfen hast.
Viele Grüße
Stefn

19 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige