Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Registerblatt auslagern in neuer Datei

Forumthread: VBA Registerblatt auslagern in neuer Datei

VBA Registerblatt auslagern in neuer Datei
06.02.2006 17:17:00
Uwe
Hallo,
ich möchte aus einem Tabellenblatt einen bestimmten Bereich herauskopieren und in einer neuen Datei speichern. Hierbei soll man die Datei wie unter "Datei speichern unter" frei wählen können. Außerdem sollen die Schaltflächen nicht mitkopiert werden. Die Formeln sollen übernommen werden.
Ich hoffe, Ihr habt eine Lösung für mein Problem.
Gruß
Uwe
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Registerblatt auslagern in neuer Datei
06.02.2006 18:19:01
Josef
Hallo Uwe!
Das geht z.B. so!
' **********************************************************************
' Modul: Modul4 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Sub SheetToMapp()
Dim objNew As Workbook
Dim objSh As Worksheet
Dim objShp As Object
Dim rngCopy As Range
Dim strName As String


On Error GoTo ErrExit

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

strName = Application.GetSaveAsFilename(InitialFilename:="Neu", _
  FileFilter:="Excel Files (*.xls), *.xls")


If strName = "Falsch" Then GoTo ErrExit

Set objSh = Sheets("Tabelle3") 'Quelltabelle - anpassen

Set rngCopy = objSh.Range("A1:C25") ' Bereich der kopiert werden soll! - anpassen

Set objNew = Workbooks.Add(xlWBATWorksheet)

rngCopy.Copy objNew.Sheets(1).Range("A1")

For Each objShp In objNew.Sheets(1).Shapes
  objShp.Delete
Next

objNew.SaveAs strName

objNew.Close

ErrExit:

If Err.Number > 0 Then
  MsgBox Err.Number & vbLf & Err.Description, , "Fehler"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
  .Calculation = xlCalculationAutomatic
End With

Set objNew = Nothing
Set objSh = Nothing

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: VBA Registerblatt auslagern in neuer Datei
06.02.2006 23:48:00
Uwe
Hallo Sepp,
vielen Dank für deine Hilfe. Der Export hat geklappt. Ein paar Fragen habe ich dennoch:
Ich habe in der Basis-Datei ausgeblendete Zeilen und Spalten. Beim Rüberkopieren macht er sie mir wieder sichtbar.
Gibt es eine Möglichkeit, dass das, was ausgeblendet ist auch als ausgeblendet rüberkopiert wird?
Grüße
Uwe
Anzeige
AW: VBA Registerblatt auslagern in neuer Datei
07.02.2006 00:07:45
Josef
Hallo Uwe!
Kein Problem!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub SheetToMapp()
Dim objNew As Workbook
Dim objSh As Worksheet
Dim objShp As Object
Dim rngCopy As Range, rngCol As Range
Dim strName As String


On Error GoTo ErrExit

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

strName = Application.GetSaveAsFilename(InitialFilename:="Neu", _
  FileFilter:="Excel Files (*.xls), *.xls")


If strName = "Falsch" Then GoTo ErrExit

Set objSh = Sheets("Tabelle1") 'Quelltabelle - anpassen

Set rngCopy = objSh.Range("A1:C25") ' Bereich der kopiert werden soll! - anpassen

Set objNew = Workbooks.Add(xlWBATWorksheet)

rngCopy.Copy objNew.Sheets(1).Range("A1")

For Each objShp In objNew.Sheets(1).Shapes
  objShp.Delete
Next

For Each rngCol In rngCopy.Columns
  objNew.Sheets(1).Columns(rngCol.Column).Hidden = rngCol.Hidden
Next

objNew.SaveAs strName

objNew.Close

ErrExit:

If Err.Number > 0 Then
  MsgBox Err.Number & vbLf & Err.Description, , "Fehler"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
  .Calculation = xlCalculationAutomatic
End With

Set objNew = Nothing
Set objSh = Nothing

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: VBA Registerblatt auslagern in neuer Datei
08.02.2006 09:35:52
Uwe
Hallo Sepp,
Perfekt!!!!
Vielen Dank.
Gruß
Uwe
AW: VBA Registerblatt auslagern in neuer Datei
09.02.2006 13:07:02
Uwe
Hallo Sepp,
ich muss nochmal deine Hilfe in Anspruch nehmen. Ich habe versucht, nachdem die Auslagerung einwandfrei geklappt hat, ein Makro zu programmieren, in dem ich die jeweilige ausgelagerte Tabelle wieder importiere. Ich bin kläglich gescheitert.
Ich habe versucht, dein Makro zum Auslagern entsprechend umzuschreiben. Meine VBA-Kenntnisse sind aber noch so dürftig, dass ich es noch nicht umsetzen kann.
Könntest du mir evtl. nochnmal weiterhelfen. Im Prinzip muss der Bereich B11:U404 aus der ausgelagerten Datei (Tabelle1) in die ursprüngliche Datei (Tabelle1/B11:U404 )herüberkopiert werden.
Ich hatte das Problem bereits allgemein ins Forum gestellt, jedoch ohne großen Erfolg. Aus diesem Grund wende ich mich nochmals direkt an dich.
Gruß
Uwe
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige