Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellenbereich in neue Datei kopieren

Zellenbereich in neue Datei kopieren
donimuc
Hallo Excelprofis!
Und wieder werde ich euch mit meinem "kleinen" Problem ein Lächeln entlocken! :-)
Wer kann mir einen VBA -Befehl schreiben, mit dem ich ich den Zellenbereich B2:AB20 aus dem Blatt "Daten" kopieren kann und in eine neue Datei, Blatt "Final" in den gleichen Zellenbereich kopieren kann?
Anders erklärt, bei Klick auf meine Schaltfläche, soll er die Zellen B2:AB20 kopieren, und in eine vorhandene Datei mit dem Namen "Tool" in das Blatt "Final" kopieren. Die Zellen enthalten nur Zahlen, keine Formeln!!!
Die Daten stehen in dem Blatt Auswertung, die Datei heißt Datenbank! Alle Dateien befinden sich auf dem Desktop!
Bei mir scheitert es daran, dass ich die vorhandene Datei nicht öffnen kann und die Daten nicht in das richtige Blatt bekomme! :-(
Bin für jede Hilfe dabkbar, bevor ich meine Kiste in den Schnee werfe! :-) Obwohl, der wird ja gerade weggeregnet!
Danke an alle die sich meinem Problem annehmen wollen!!!
Gruß und schönes WE!
Doni
AW: Zellenbereich in neue Datei kopieren
21.01.2012 14:53:09
Josef

Hallo Doni,
ungetestet!
' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub copyData()
  Dim objWB As Workbook
  Dim strFile As String
  Dim bolOpen As Boolean
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  strFile = "E:\Pfad\Tool.xls" 'Pfad zur Datei - Anpassen!
  
  For Each objWB In Application.Workbooks
    If objWB.FullName = strFile Then Exit For
  Next
  
  If objWB Is Nothing Then
    bolOpen = True
    Set objWB = Workbooks.Open(strFile)
  End If
  
  With objWB
    ThisWorkbook.Sheets("Daten").Range("B2:AB20").Copy _
      .Sheets("Final").Range ("B2")
    .Save
    If bolOpen Then .Close
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'copyData'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Modul - Modul1"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
  End With
  
  Set objWB = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Zellenbereich in neue Datei kopieren
21.01.2012 16:42:16
donimuc
Hallo Sepp,
habe deinen Befehl eingefügt!
Funktionert aber nicht ganz!
Die neue Datei wird zwar geöffnet, aber nichts kopiert.
Außerdem erhalte ich die Meldung:
Fehler in Prozedur: copyData
Fehlernummer 9
Index außerhalb des gültigen Bereichs
Hast du eine Idee dazu?
LG, Doni
AW: Zellenbereich in neue Datei kopieren
21.01.2012 18:31:49
pastiknake
... ich darf mal für Sepp einspringen:
entweder (hier werden wirklich nur die Werte Kopiert,- Keine Formeln und Formate):
With objWB
ThisWorkbook.Sheets("Daten").Range("B2:AB20").Copy
.Sheets("Final").Range("B2").PasteSpecial (xlValues)
oder:
With objWB
ThisWorkbook.Sheets("Daten").Range("B2:AB20").Copy _
(.Sheets("Final").Range("B2"))
oder:
With objWB
ThisWorkbook.Sheets("Daten").Range("B2:AB20").Copy _
Destination:= .Sheets("Final").Range("B2"))
Bernd
Anzeige
AW: Zellenbereich in neue Datei kopieren
21.01.2012 18:56:05
donimuc
Hallo Bernd!
Danke, werde ich mal versuchen!
Schönen Abend! :-)
Doni
AW: Zellenbereich in neue Datei kopieren
21.01.2012 19:08:19
donimuc
Hallo Bernd!
Version 2 ist super!
Wie ändert sich denn der Befehl, wenn er die Formatierung der Zellen mitnhemne soll?
Gruß,
Doni
AW: Zellenbereich in neue Datei kopieren
21.01.2012 19:42:48
pastiknake
Hallo Doni,
von meinen 3 Versionen ist
1) die Variante, wenn nur bedingte Teile eingefügt werden sollen. Entspricht "Bearbeiten - Inhalte Einfügen" auf der Exceloberfläche.
* Nur Werte
* Nur Formate
* Nur Formel
..
.
2) es wird alles kopiert (..auch Formate)
3) wie 2,- ist der gleiche Befehl
Bernd
AW: Zellenbereich in neue Datei kopieren
21.01.2012 19:46:28
pastiknake
.. oder für meine Version:
'kopieren
Range(strQuelle).Copy Destination:= Range(strZiel)
Gruß
Bernd
Anzeige
AW: Zellenbereich in neue Datei kopieren
21.01.2012 20:06:53
donimuc
Danke! :-)
LG, Doni
Tabellenname? o.T.
21.01.2012 19:17:40
Josef
« Gruß Sepp »

AW: Tabellenname? o.T.
21.01.2012 19:25:49
donimuc
Danke!
Genau das war es! Hatte einen Schreibfeler drin!!! :-)
Lieben Dank und schönen Abend noch!
Doni
AW: Zellenbereich in neue Datei kopieren
21.01.2012 15:34:47
pastiknake
..die Einfachversion:
Sub donimuc()
Dim strDesktop$, strZielDatei$, strZiel$, strQuelle$
' Deklarationen
strDesktop = Environ("Homedrive") & Environ("HomePath") & "\Desktop\"
strQuelle = "[" & ThisWorkbook.Name & "]Daten!B2:AB20"
strZielDatei = "Tool.xls"
strZiel = "[" & strZielDatei & "]Final!B2:AB20"
' Ziel vorhanden?
If Dir(strDesktop & strZielDatei) = "" Then
MsgBox "Zieldatei " & strZielDatei & " auf Desktop nicht vorhanden!"
Exit Sub
End If
'öffnen
Workbooks.Open strDesktop & strZielDatei
'kopieren
Range(strQuelle).Copy
Range(strZiel).PasteSpecial (xlPasteValues)
'schliessen und speichern
Workbooks(strZielDatei).Close SaveChanges:=True
MsgBox "Daten wurden kopiert!", vbInformation
End Sub
Die Version von Josef ist sauberer programmiert!
Bernd
Anzeige
AW: Zellenbereich in neue Datei kopieren
21.01.2012 15:51:32
donimuc
Danke für die schnellen und ausführlichen Antworten!!
Werde das gleich mal probieren! :-)
Doni
AW: Zellenbereich in neue Datei kopieren
23.01.2012 09:32:49
Doni
Hallo Bernd,
eine Frage noch,
in dem Befehl kopiert er immer zwingend den Bereich B2:AB20!
Wie würde eine Befehl lauten, der nur beschriebene Zeilen Kopiert und einfügt!
Es kann ja sein, dass ich mehr als 20 Zeilen oder auch weniger brauche!
Also wirklich nur beschriebene Zeilen kopieren und einfügen!
Danke und Gruß,
Doni

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige