Anzeige
Archiv - Navigation
728to732
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
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige