Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellen speichern mit Tabellenblattabfrage

Tabellen speichern mit Tabellenblattabfrage
14.03.2007 09:53:00
Ronny
Hallo liebe Excel- u. VBA-Experten.
ich habe in meiner Excel Datei mehrere Tabellenblätter, die ich zur Zeit einzeln mit einem "Speicherbutton" separat aus der großen Datei in eine kleine Excel-Datei speichern lasse. Nun würde ich gern die Funktion verbessern, indem der Benutzer nur einen Speicherbutton besitzt und dieser ihm alle Tabellenblätter auflistet die ich vorher im Programmcode festgelegt habe, so dass er durch Häkchen setzen selbst entscheiden kann, welche Tabellenblätter er gern in die neue Excel-Datei speichen möchte.
z.B. gibt es die Tabellenblätter:
Input
Output
Rp-Vergleich
REA Messwerte
und der Benutzer entscheidet sich nun dafür die ersten 3 in seine von ihm benannte neue Excel-Datei zu speichern. Dazu tut sich ihm (am besten wie bei der AddIn-Einstellung) ein Fenster auf, worin er die Häkchen für diese Tabellen setzt und anschließend der Speicherbutton einsetzt. Welcher derzeit den Benutzer die Excel-Datei, sowie den Speicherort dieser Datei festlegen lässt. Dabei ist bereits berücksichtigt, dass der Programmcode und die Buttons in der neuen Excel-Datei entfernt wird. Was mir hier noch fehlt, dass die Formeln und Bezüge zur alten Datei entfernt werden und somit nur die Werte der Zellen gespeichert werden sollen.
Der "Speicherbutton" sieht derzeit vom CODE so aus:
-------------------------------------------------------------------

Private Sub Speichern_Tabelle_Output_Click()
Dim varSaveAsName As Variant
Dim objButtons As Object, objVBA As Object
If MsgBox("Wollen Sie wirklich das angezeigte Tabellenblatt  'Output' " & vbCr & _
"für künftige Untersuchungen in einer seperaten Excel-Datei speichern?", _
vbYesNo, "Speichern Ja oder Nein?") = vbNo Then
Exit Sub
End If
varSaveAsName = Application.GetSaveAsFilename(, "EXCEL Files (*.xls), *.xls", , " Speichern unter")
If VarType(varSaveAsName)  vbBoolean Then
Application.ScreenUpdating = False
ActiveWorkbook.Worksheets("Output").Copy
With ActiveWorkbook
.SaveAs varSaveAsName
For Each objButtons In .Worksheets("Output").OLEObjects
If TypeName(objButtons.Object) = "CommandButton" Then
objButtons.Delete
End If
Next objButtons
On Error GoTo Errorhandler
For Each objVBA In .VBProject.VBComponents
With objVBA.CodeModule
.DeleteLines 1, .CountOfLines
End With
Next objVBA
.Save
.Close
End With
' VBA Speichern sicherstellen trotz Makrokollision
Workbooks.Open varSaveAsName
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.ScreenUpdating = True
End If
Exit Sub
Errorhandler:
Application.ScreenUpdating = True
If Err.Number = 1004 Then
MsgBox "Das Löschen des VBA Codes ist fehlgeschlagen!" & vbCr & _
"Bitte überprüfen Sie folgende Einstellung! " & vbCr & _
"EXTRAS -> MAKRO -> SICHERHEIT -> Vertrauenwürdige Quellen." & vbCr & _
"'Zugriff auf Visual Basic Projekt vertrauen' muss aktiviert sein! ", vbCritical, _
" Meldung VBA Makro"
Else
MsgBox "Err.Number = " & Err.Number & ".   " & Err.Description, vbCritical
End If
End Sub

Hat wer von euch eine Idee wie ich den Speicherbutton nach den oben besprochenen Vorgaben verbessern kann? Bin für jede Hilfe sehr dankbar ^^
Gruß,
Ronny

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen speichern mit Tabellenblattabfrage
14.03.2007 11:12:54
Matthias
Hallo
Probiermal ein wenig damit herum
In einer neuen Mappe!!
Ein Sheet sollte den Namen "Zwischenspeicher" haben.
Ich habe es in einem Modul getestet.
Du mußt schon noch ein bisschen basteln und für Deine Zwecke anpassen/umschreiben
Das ist mir zu groß, das alles nachzubauen.
Option Explicit
Dim X
'nur grob aufgezeichnet

Sub Makro1()
ActiveSheet.Cells.Select
Selection.Copy
Sheets("Zwischenspeicher").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
'jetzt "Zwischenspeicher kopiern und in neuer Mappe umbennen"
'dannach Zwischenspeicher löschen
X = MsgBox("Tabelleninhalte Zwischenspeicher löschen", vbOKCancel)
MsgBox X
If X = 1 Then Sheets("Zwischenspeicher").Cells.ClearContents: Range("A1").Select
End Sub

Es wird also das aktive Blatt komlett ,aber eben nur Werte kopiert in
Sheet("Zwischenspeicher")- aber eben nur die Werte!
jetzt kopiere das Sheet("Zwischenspeicher") wohin Du willst und bennene es in der neuen Mappe um.
Dannach wird das Sheet("Zwischenspeicher") wieder geleert.
Vieleicht hilfts ja ein Stück weiter.
Gruß Matthias
Anzeige
AW: Tabellen speichern mit Tabellenblattabfrage
15.03.2007 08:38:00
Ronny
Hi Matthias,
ist sicher nen Anfang um die Formeln loszuwerden, was mir aber immernoch massiv fehlt, ist die Auswahlmöglichkeit in Form eines Fensters, welche Tabellenblätter (Worksheets) er speichern möchte. So dass er wie bei der Aktivierung oder Deaktivierung von AddIns diese durch Häkchen setzten auswählen kann.
Hat denn vielleicht noch jemand eine gute Idee für mich? Freue mich immer über Hilfe wie ein Schneekönig ^^
Mfg,
Ronny
AW: Tabellen speichern mit Tabellenblattabfrage
15.03.2007 13:05:00
Jens
Hi,
bastel dir eine Userform mit einer Listbox, aus der du die Blätter auswählen läßt.
mfg Jens
AW: Tabellen speichern mit Tabellenblattabfrage
16.03.2007 08:08:00
Ronny
Hallo Jens,
wenn du mir ein bisschen den Weg zeigen könntest was ich im Programmcode machen muss damit dass klappt wäre ich dir sehr dankbar. Allein bekomme ich es leider nicht hin =(
Freue mich über jede Hilfe!
Mfg,
Ronny
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige