Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellenbereich in neue Datei kopieren | Herbers Excel-Forum


Betrifft: Zellenbereich in neue Datei kopieren von: donimuc
Geschrieben am: 21.01.2012 14:06:06

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

  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: Josef Ehrensberger
Geschrieben am: 21.01.2012 14:53:09


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 »



  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: donimuc
Geschrieben am: 21.01.2012 16:42:16

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


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: pastiknake
Geschrieben am: 21.01.2012 18:31:49

... 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


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: donimuc
Geschrieben am: 21.01.2012 18:56:05

Hallo Bernd!

Danke, werde ich mal versuchen!

Schönen Abend! :-)
Doni


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: donimuc
Geschrieben am: 21.01.2012 19:08:19

Hallo Bernd!

Version 2 ist super!
Wie ändert sich denn der Befehl, wenn er die Formatierung der Zellen mitnhemne soll?

Gruß,
Doni


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: pastiknake
Geschrieben am: 21.01.2012 19:42:48

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


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: pastiknake
Geschrieben am: 21.01.2012 19:46:28

.. oder für meine Version:

'kopieren
Range(strQuelle).Copy Destination:= Range(strZiel)

Gruß
Bernd


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: donimuc
Geschrieben am: 21.01.2012 20:06:53

Danke! :-)

LG, Doni


  

Betrifft: Tabellenname? o.T. von: Josef Ehrensberger
Geschrieben am: 21.01.2012 19:17:40

« Gruß Sepp »



  

Betrifft: AW: Tabellenname? o.T. von: donimuc
Geschrieben am: 21.01.2012 19:25:49

Danke!
Genau das war es! Hatte einen Schreibfeler drin!!! :-)

Lieben Dank und schönen Abend noch!
Doni


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: pastiknake
Geschrieben am: 21.01.2012 15:34:47

..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


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: donimuc
Geschrieben am: 21.01.2012 15:51:32

Danke für die schnellen und ausführlichen Antworten!!

Werde das gleich mal probieren! :-)

Doni


  

Betrifft: AW: Zellenbereich in neue Datei kopieren von: Doni Gräf
Geschrieben am: 23.01.2012 09:32:49

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


Beiträge aus den Excel-Beispielen zum Thema "Zellenbereich in neue Datei kopieren"