Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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

Aktiven Sheet in andere bestehende Mappe kopieren

Aktiven Sheet in andere bestehende Mappe kopieren
24.08.2015 20:49:35
Luna
Hola liebes Forum, habe noch eine Frage.
Ich möchte durch einen Button den aktiven Sheet kopieren und dann unter so etwas wie "SPEICHERN UNTER/EINFÜGEN UNTER" in eine andere bestehen Mappe als letzten Sheet einfügen.
Da sich die Mappen immer ändern brauche ich also eine Funktion die mich fragt in welche Mappe EINFÜGEN.
Kann jemand mit meiner Fragestellung was anfangen und ist es machbar?
In Schritten bräuchte ich dieses.
Aktiven Sheet kopieren, Abrage Sheet speichern/einfügen unter, ausgewählte Mappe öffnen, Sheet als letztes Blatt einfügen, Mappe speichern und schliessen und zum Aktiven Sheet zurückgehen. Ich hoffe ich konnte es erklären.
Vielen Dank wie immer schon mal im Voraus
Luna

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nimm doch Bordmittel
24.08.2015 20:58:37
Matthias
Hallo

  • Dateien öffnen

  • Zu kopierendes blatt wählen

  • Zieldatei wählen

  • Einfügeposition wählen

  • fertig


Userbild
Gruß Matthis

AW: Nimm doch Bordmittel
24.08.2015 21:51:16
Luna
Hola Matthis, das kannte ich nicht, vielen Dank für den Tipp. Für mein jetziges Problem ist für mich das Makro von Sepp sensationell gut und perfekt. Aber auch dir vielen Dank für deine Hilfe.
Luna

AW: Aktiven Sheet in andere bestehende Mappe kopieren
24.08.2015 21:13:35
Sepp
Hallo Luna,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub copySheet()
Dim strFile As String
Dim objWB As Workbook, objSh As Object
Dim bolOpen As Boolean

On Error GoTo ErrExit

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlManual
  .DisplayAlerts = False
End With

With Application.FileDialog(msoFileDialogFilePicker)
  .InitialFileName = "D:\"
  .Title = "Datei auswählen"
  .ButtonName = "Auswahl..."
  .InitialView = msoFileDialogViewList
  .Filters.Clear
  .Filters.Add "Excel Dateien", "*.xls; *.xlsx; *.xlsm; *.xls*", 1
  .Filters.Add "Alle Dateien", "*.*", 2
  .FilterIndex = 1
  If .Show = -1 Then strFile = .SelectedItems(1)
End With

If Len(strFile) Then
  If strFile = ThisWorkbook.FullName Then
    MsgBox "Einfügen in diese Datei nicht möglich!", vbExclamation
    Exit Sub
  End If
  Set objSh = ActiveSheet
  For Each objWB In Application.Workbooks
    If objWB.FullName = strFile Then
      bolOpen = True
      Exit For
    End If
  Next
  If objWB Is Nothing Then Set objWB = Workbooks.Open(strFile)
  objSh.Copy After:=objWB.Sheets(objWB.Sheets.Count)
  objWB.Save
  If Not bolOpen Then objWB.Close
  objSh.Activate
End If

ErrExit:

With Err
  If .Number <> 0 Then
    MsgBox "Fehler in Prozedur:" & vbTab & "'copySheet'" & 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 Prozedur - copySheet"
    .Clear
  End If
End With

On Error GoTo 0

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlAutomatic
  .DisplayAlerts = True
  .StatusBar = False
End With

Set objWB = Nothing
Set objSh = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Aktiven Sheet in andere bestehende Mappe kopieren
24.08.2015 21:48:50
Luna
Hola Sepp, ich weiss nicht wie du das so schnell machst aber das ist genau das was ich gesucht habe. Es ist Perfekt. Vielen Dank.
Luna

AW: Aktiven Sheet in andere bestehende Mappe kopieren
24.08.2015 22:09:18
Luna
Eine Frage noch Sepp, aber nur wenn es nicht zu viel Arbeit ist. Kann man alle Makros die im Original sind beim kopieren löschen?
Danke Luna

AW: Aktiven Sheet in andere bestehende Mappe kopieren
25.08.2015 17:39:17
Sepp
Hallo Luna,
nur den Code von diesem Tabellenbaltt, oder in der gesamten Mappe?
Gruß Sepp

Code im kopierten Sheet löschen
25.08.2015 20:10:23
Sepp
Hallo Luna,
den Code in der kopierten Tabelle löscht dieser Code.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub copySheet()
Dim strFile As String
Dim objWB As Workbook, objSh As Object
Dim bolOpen As Boolean

On Error GoTo ErrExit

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .Calculation = xlManual
  .DisplayAlerts = False
End With

With Application.FileDialog(msoFileDialogFilePicker)
  .InitialFileName = "E:\Forum"
  .Title = "Datei auswählen"
  .ButtonName = "Auswahl..."
  .InitialView = msoFileDialogViewList
  .Filters.Clear
  .Filters.Add "Excel Dateien", "*.xls; *.xlsx; *.xlsm; *.xls*", 1
  .Filters.Add "Alle Dateien", "*.*", 2
  .FilterIndex = 1
  If .Show = -1 Then strFile = .SelectedItems(1)
End With

If Len(strFile) Then
  If strFile = ThisWorkbook.FullName Then
    MsgBox "Einfügen in diese Datei nicht möglich!", vbExclamation
    Exit Sub
  End If
  Set objSh = ActiveSheet
  For Each objWB In Application.Workbooks
    If objWB.FullName = strFile Then
      bolOpen = True
      Exit For
    End If
  Next
  If objWB Is Nothing Then Set objWB = Workbooks.Open(strFile)
  
  With objWB
    objSh.Copy After:=.Sheets(.Sheets.Count)
    With .VBProject.vbComponents(.Sheets(.Sheets.Count).CodeName).CodeModule
      .DeleteLines 1, .CountOfLines
    End With
    .Save
    If Not bolOpen Then .Close
  End With
  objSh.Activate
End If

ErrExit:

With Err
  If .Number <> 0 Then
    MsgBox "Fehler in Prozedur:" & vbTab & "'copySheet'" & 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 Prozedur - copySheet"
    .Clear
  End If
End With

On Error GoTo 0

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .Calculation = xlAutomatic
  .DisplayAlerts = True
  .StatusBar = False
End With

Set objWB = Nothing
Set objSh = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Code im kopierten Sheet löschen
26.08.2015 15:51:00
Luna
Hola Sepp und vielen Dank für deine Mühe. Werde es so schnell wie möglich ausprobieren. Und zu deiner Frage. Ja, es soll nur die Makros und Buttons in dem zu kopierenden Blatt löschen.
Luna

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige