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

Arbeitsmappe im Hintergrund öffnen und scchließen

Arbeitsmappe im Hintergrund öffnen und scchließen
Stefan
Hallo,
gibt es eine Möglichkeit per VBA eine Arbeitsmappe (Zieldatei), in die aus anderen Arbeitsmappen (Quelldateien) Daten hineinkopiert werden im Hintergrund vor dem Kopieren automatisch zu öffnen und nach dem Kopieren wieder automatisch zu schließen, sodaß der/die Anwender/in nichts mehr mit öffnen und schließen der Zielarbeitsmappe zu tun hat? Zum Kopieren habe ich bisher folgenden Code verwendet, der mir freundlicherweise hier zur Verfügung gestellt wurde:
Sub aamyCopy2()
Dim lngLastRow As Long
With Workbooks("Mappe1").Sheets(1)
lngLastRow = .UsedRange.Row + .UsedRange.Rows.Count - 1
'  lngLastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
Selection.Copy Destination:=.Cells(lngLastRow, 1).Offset(1, 0)
End With
End Sub
Viele Grüße
Stefan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen und scchließen
05.05.2010 08:52:22
Armin
Hallo Stefan,
natürlich geht das, aber da ja über selection der zu kopierende Bereich ausgewählt werden soll, ist das händling nicht einfacher.
Ferner muss noch sicher gestellt werden, dass das Sheet sich für alle auf dem gleichen Netzlaufwerk befindet. Wenn das gegeben ist, passiert aber auch nichts anderes als jetzt auch schon nur das das Sheet über den aufruf geöffnet wird. Man muss zum Sheet wechseln und selectieren und dann einen weiteres Makro starten. Denn Du brauchst ja eine Zeit zu slectieren!
Besser wäre es wenn Du wüstest welchen Bereich bzw. welche Werte kopiert werden sollen!
Dann ist der Ansatz einfacher.
Gruß Armin
Anzeige
AW: Arbeitsmappe im Hintergrund öffnen und scchließen
05.05.2010 11:30:51
Stefan
Hallo,
vielen Dank für deine Antwort. Ich bin was VBA angeht leider ein Laie. Alle Dateien, sowohl die Quelldateien wie auch die Zieldatei befinden sich auf dem selben Netzlaufwerk. Das ist sichergestellt. Die Quelldateien sind geöffnet. Das ist okay. Die Zieldatei soll über einen Aufruf geöffnet werden, dann die vom Anwender in der Quelldatei selectierten (markierten) Daten per Klick auf einen Button in die Zieldatei kopiert werden (an die vorhandenen Daten angehängt) und die Zieldatei jetzt wieder geschlossen werden. Hintergrund ist folgender:
In verschiedene Dateien (Quelldateien) werden ständig Daten eingetragen, diese sollen in einer Gesamtdatei zusammengeführt werden. Die Dateien haben alle die gleiche Struktur. Diese Gesamtdatei soll aber von dem Anwender nicht mehr quasi manuell angefaßt werden.
Ist das möglich?
Bisher wurde mir freundlicherweise folgender Code zur Verfügung gestellt, der aber nicht so richtig funktioniert. Es kommt die Meldung : Laufzeitfehler.
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:\Stefan\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

Vielen Dank
Stefan
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige