Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
824to828
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
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Speichern per Button

Speichern per Button
07.12.2006 11:14:40
Ronny
Hallo Excel-VBA-Experten,
ich benötige eure Hilfe bei einem VBA Problem, was ich selber nicht hinbekomme.
Ich möchte gern über einen Button "Speichern des Rp-Vergleichs" nur das Tabellenblatt "Rp-Vergleich" in einer seperaten Excel-Tabelle speichern und den Benutzer der diesen Button betätigt die Möglichkeiten geben:
1. den Dateinamen einzugeben ("Bitte geben Sie den Dateinamen ein unter dem Sie diese Tabelle abspeichern möchten!")
2. den Dateipfad über ein Auswahlfenster auszuwählen, was ihn darauf hinweist dies zu tun, dabei sollte Das Auswahlfenster auch die Möglichkeit haben wie bei Windows üblich falls de Ordner nicht existiert in dem man speichern möchte, diesen neu Anlegen zu können, durch z.B. das gelbe Excel-Ordner-Symbol im Speicherfenster
Wichtig dabei ist halt, dass nur das Tabellenblatt "Rp-Vergleich" gespeichert wird und nicht die andern Tabellenblätter!
Ich hoffe das mir jemand von euch da weiterhelfen kann?
Gruß,
Ronny

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern per Button
07.12.2006 11:53:35
Heiko
Hallo Ronny,
z.B. so musst du nur ncoh einen CommandButton1 bei dir einfügen.

Private Sub CommandButton1_Click()
Dim varSaveAsName As Variant
varSaveAsName = Application.GetSaveAsFilename(, "EXCEL Files (*.xls), *.xls", , " Geben Sie einen Dateinamen zum Speichern an !")
If VarType(varSaveAsName) <> vbBoolean Then
ActiveWorkbook.Worksheets("Rp-Vergleich").Copy
ActiveWorkbook.SaveAs varSaveAsName
ActiveWorkbook.Close
End If
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Speichern per Button
07.12.2006 13:02:49
Ronny
Hi Heiko,
funktioniert spitze, vielen Dank für deine schnelle Hilfe!
Habe aber noch ein Problem:
Und zwar habe ich 3 Buttons in der "Rp-Vergleich" Tabelle und wenn ich diese dann speichere sollen diese 3 Buttons ("ZURÜCK_REA_Messwerte", "Inhaltsverz" und "Speichern_Tabelle_Rp_Vergleich") nicht mit gespeichert werden, da Sie nur in der Hauptdatei aus der ich herraus speichere eine sinnvolle Bedeutung haben!
Wie kann ich dies bewerkstelligen in VBA?
Gruß,
Ronny
Anzeige
AW: Speichern per Button
07.12.2006 13:10:46
Heiko
Hallo Ronny,
was sind das für Buttons aus der Steuerelement Toolbox oder welche aus der Formular Toolbox ?!
Ist zu den Buttons in der Tabelle noch ein Code hinterlegt ?!
Gruß Heiko
AW: Speichern per Button
07.12.2006 13:41:36
Ronny
Hi Heiko,
sind Buttons aus der Steuerelement-Toolbox und ja zu den Buttons sind folgende Codes hinterlegt:

Private Sub Inhaltsverz_Click()
Worksheets("Inhaltsverz.").Select
End Sub


Private Sub Speichern_Tabelle_Rp_Vergleich_Click()
Dim varSaveAsName As Variant
Dim Frage As String
Frage = MsgBox("Wollen Sie wirklich das angezeigte Tabellenblatt Rp-Vergleich in einer seperaten Excel-Datei speichern für künftige Untersuchungen?", [vbYesNo], "Speichern Ja oder Nein?")
If Frage = vbNo Then
Exit Sub
Else
varSaveAsName = Application.GetSaveAsFilename(, "EXCEL Files (*.xls), *.xls", , " Bitte wählen Sie den Speicherort aus und geben Sie einen Dateinamen zum Speichern an !")
If VarType(varSaveAsName) <> vbBoolean Then
ActiveWorkbook.Worksheets("Rp-Vergleich").Copy
ActiveWorkbook.SaveAs varSaveAsName
ActiveWorkbook.Close
End If
End If
End Sub


Private Sub ZURÜCK_REA_Messwerte_Click()
Worksheets("REA Messwerte").Select
End Sub

Und was nun? ^^
Gruß,
Ronny
Anzeige
AW: Speichern per Button
07.12.2006 14:17:57
Heiko
Hallo Ronny,
solte so gehen:

Private Sub CommandButton1_Click()
Dim varSaveAsName As Variant
Dim objButtons As Object, objVBA As Object
varSaveAsName = Application.GetSaveAsFilename(, "EXCEL Files (*.xls), *.xls", , " Geben Sie einen Dateinamen zum Speichern an !")
If VarType(varSaveAsName) <> vbBoolean Then
ActiveWorkbook.Worksheets("Rp-Vergleich").Copy
Application.ScreenUpdating = False
With ActiveWorkbook
.SaveAs varSaveAsName
For Each objButtons In .Worksheets("Rp-Vergleich").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
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
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

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Speichern per Button
07.12.2006 15:20:12
Ronny
Hi Heiko,
bekomme immer Fehlermeldung, einmal die des Errorhandler obwohl die Makroeinstellung IO sind und wenn ich den wie in der Beispieldatei weglasse die ich hier beigefügt habe
https://www.herber.de/bbs/user/38811.xls
dann bekomme ich immernoch eine Fehlermeldung. Was schonmal gut ist, die Buttons werden alle gelöscht, ABER der VBA-Code leider nicht und dieser sollte natürlich auch gelöscht werden, da der Benutzer der sich die Tabelle abspeichert, diesen nicht benötigt!
Kannst du mal bitte in die Tabelle reinschaun die ich beigefügt habe und mir nochmal helfen? Danke für deine Mühe im Voraus!
Gruß,
Ronny
Anzeige
AW: Speichern per Button
07.12.2006 17:35:56
Heiko
Hallo Ronny,
kann ich nicht nachvollziehen, bei mir gibt das keine Fehlermeldung.
Nicht in der Firma (XP und EXCEL 2002) und auch nicht hier zuhaus (ME und EXCEL 2000)
Ist der VBA Code Passwortgeschützt ?
So lief das gerade bei mir:

Private Sub CommandButton1_Click()
Dim varSaveAsName As Variant
Dim objButtons As Object, objVBA As Object
If MsgBox("Wollen Sie wirklich das angezeigte Tabellenblatt  'Rp-Vergleich'  in" & vbCr & _
"einer seperaten Excel-Datei speichern für künftige Untersuchungen?", _
vbYesNo, "Speichern Ja oder Nein?") = vbNo Then
Exit Sub
End If
varSaveAsName = Application.GetSaveAsFilename(, "EXCEL Files (*.xls), *.xls", , " Geben Sie einen Dateinamen zum Speichern an !")
If VarType(varSaveAsName) <> vbBoolean Then
Application.ScreenUpdating = False
ActiveWorkbook.Worksheets("Rp-Vergleich").Copy
With ActiveWorkbook
.SaveAs varSaveAsName
For Each objButtons In .Worksheets("Rp-Vergleich").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
' Das hier hat schon seinen Sinn, da ohne erneutes öffnen und speichern du manuell speichern mußt,
' aber wozu wenn es auch VBA direkt erledigen kann. Öffnet und schließt man aber nicht hier über
' VBA dann wird beim ersten öffen des exportierten Blattes noch gefragt ob man Makros aktivieren will
' obwohl definitiv keine mehr drin sind, ist wohl ne Macke von EXCEL VBA die so überlistet wird.
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

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Speichern per Button
07.12.2006 20:51:51
Ronny
Hi Heiko,
danke funzt schonmal auf den Heim-PC, aber prüfe das morgen gleich nochmal in der Firma auf Firmenrechner, man weis ja nie ;)
Danke auch nochmal dass du erklärt hast im Code wozu das Ende dient, denn ich konnte am Anfang nichts mit anfangen. Stehe sowieso auf Codes mit Kommentare ^^
Vielen dank aus Mitteldeutschlad und beste Grüß,
Ronny
PS: Schreibe dir nochmal im Forum hier morgen dann, ob es geklappt auf den Firmenrechner ^^
AW: Speichern per Button
08.12.2006 07:40:54
Heiko
Hallo Ronny,
danke für die Rückmeldung.
Wenn du aber keine Fragen mehr hast, dann brauchst du den Haken bei bei Frage noch offen nicht setzen. Sonst schauen viele Leute in den Thread um zu helfen und sehen erst nach dem lesen das alles schon erledigt ist, das muss ja nicht sein.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Speichern per Button
08.12.2006 08:15:00
Ronny
Hi Heiko,
sorry hatte dir doch geschrieben, dass ichs erst auf den Frimenrechner noch testen wollte, bevor ich die Frage als beantwortet ansehe, daher hatte ich das Häkchen nochmal gesetzt. Habs getestet und funktioniert super, vielen Dank nochmal Heiko! Hast mir sehr geholfen!
Grüße,
Ronny

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige