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

Speichern unter

Speichern unter
Peter
Hallo,
zum Speichern (3 Blätter) nutze ich folgenden Code:
Sub dateiname()
Ort = Sheets("Auswahliste").Range("A35")
If Len(Ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
Application.Dialogs(xlDialogSaveAs).Show (Ort & ".xlsm")
End If
End Sub

Kann mir jemand den Code so umstellen, das ich zBsp. Blatt 1 (Range a40) oder 2 (Range a45) einzeln speichern kann, sowie Blatt 1+2 gemeinsam?
Viele Grüße
AW: Speichern unter
30.10.2010 21:47:21
fcs
Hallo Peter,
schaut dann etwa so aus.
Gruß
Franz
Sub dateiname_Blatt1()
Dim Ort As String
Ort = Sheets("Auswahlliste").Range("A35")
If Len(Ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
With Sheets("Auswahlliste")
ActiveWorkbook.Sheets(.Range("A40").Text).Copy
End With
Application.Dialogs(xlDialogSaveAs).Show Ort, 51 '50 = xlsb, 51 = xlsx, 52= xlsm
End If
End Sub
Sub dateiname_Blatt2()
Dim Ort As String
Ort = Sheets("Auswahlliste").Range("A35")
If Len(Ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
With Sheets("Auswahlliste")
ActiveWorkbook.Sheets(.Range("A45").Text).Copy
End With
Application.Dialogs(xlDialogSaveAs).Show Ort, 51 '50 = xlsb, 51 = xlsx, 52= xlsm
End If
End Sub
Sub dateiname_Blatt1und2()
Dim Ort As String
Ort = Sheets("Auswahlliste").Range("A35")
If Len(Ort) = 0 Then
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
Else
With Sheets("Auswahlliste")
ActiveWorkbook.Sheets(Array(.Range("A40").Text, .Range("A45").Text)).Copy
End With
Application.Dialogs(xlDialogSaveAs).Show Ort, 51  '50 = xlsb, 51 = xlsx, 52= xlsm
End If
End Sub

Anzeige
AW: Speichern unter
31.10.2010 07:38:48
Peter
Hallo Peter,
schon mal Danke für die Hilfe. Leider zeigt es mir immer Laufzeitfehler 9: Index außerhalb des gültigen Bereichs an.
Mein Problem vielleicht nochmal genauer beschrieben:
Blatt 1 (MAGvorInb)
Blatt 2 (MAGFest)
Blatt 3 (Auswahlliste)
Jetzt möchte ich eine Kopie von Blatt 1 (Dateiname von Auswahlliste, Zelle A40), Blatt 2 (Dateiname von Auswahlliste, Zelle A45), Blatt 1+2 (Dateiname von Auswahlliste, Zelle A35). Perfekt wäre das ganze wenn sich die erstellten Kopien selbst schließen.
Danke für die Mühe im Voraus
Peter
AW: Einzelne Tabellenblätter - Speichern unter
31.10.2010 10:42:05
fcs
Hallo Peter,
da gab es ein Mißverständnis in welchen Zellen die Namen der Blätter bzw. Speicherorte stehen.
Hier angepasste Makros mit erweiterter Prüfung des vorgegebenen Dateinamens.
Gruß
Franz
Sub Speichern_MAGvorInb()
Call Speichern(sZelleOrt:="A35", vSheets:="MAGvorInb", lFormat:=51)
End Sub
Sub Speichern_MAGFest()
Call Speichern("A40", "MAGFest", 51)
End Sub
Sub Speichern_MAG_beide()
Call Speichern("A45", Array("MAGFest", "MAGvorInb"), 51)
End Sub
Sub Speichern(sZelleOrt As String, vSheets, Optional lFormat As Long = 51)
'lFormat = Dateiformat unter dem die Datei gespeichert werden soll
'50 = xlsb, 51 = xlsx, 52= xlsm, 56 = xls (Excel8), -4143 = xlWorkbookNormal
Dim Ort As String, vAuswahl As Boolean
Ort = Sheets("Auswahlliste").Range(sZelleOrt)
If CheckDateiName(Ort, Range(sZelleOrt).Row) = True Then
ActiveWorkbook.Sheets(vSheets).Copy
vAuswahl = Application.Dialogs(xlDialogSaveAs).Show(Ort, lFormat)
If vAuswahl = True Then
ActiveWorkbook.Close savechanges:=True
Else
If MsgBox("Blatt bzw. Blätter wurden nicht gespeichert" & vbLf & vbLf _
& "Kopie ohne Speichern schließen?", vbQuestion + vbYesNo, _
"Blätter Kopieren") = vbYes Then
ActiveWorkbook.Close savechanges:=False
End If
End If
End If
End Sub
Function CheckDateiName(sText As String, Optional ByVal lZeile As Long = 0) As Boolean
Dim iIndex As Long, arrZeichen, iZeichen As Long
If sText = "" Then 'Leerstring als Dateiname nicht zulässig
MsgBox ("Ungültiger Dateiname: Die angegebene Zelle ""A" & lZeile _
& """ darf nicht leer sein!")
CheckDateiName = False
Exit Function
End If
'unzulässige Zeichen in Dateinamen
arrZeichen = Array(":", "|", "/", "\", "", "[", "]", "?", "*")
CheckDateiName = True
For iZeichen = 1 To Len(sText)
For iIndex = LBound(arrZeichen) To UBound(arrZeichen)
If Mid(sText, iZeichen, 1) = arrZeichen(iIndex) Then
CheckDateiName = False
MsgBox """" & sText & """" & IIf(lZeile > 0, " in Zelle ""A" & lZeile & """", "") _
& " ist nicht zulässig als Dateiname." & vbLf _
& "Folgende Zeichen sind nicht zulässig:   | : / \   [ ] ? * "
Exit Function
End If
Next
Next
End Function

Anzeige
AW: Einzelne Tabellenblätter - Speichern unter
31.10.2010 13:27:28
Peter
Hallo Franz,
vielen Dank. Klappt perfekt.
Eine Frage noch an den Experten: Kopien speichert man als xlsx (ohne Makros) oder als xlsm (mit Makros)?
Sollte man sich ein Addin einrichten oder die Makros nur von Datei starten?
Tschüß Peter
AW: Einzelne Tabellenblätter - Speichern unter
31.10.2010 18:32:27
fcs
Hallo Peter,
wo du die Makros speichern solltes hängt davon ab wer mit der Datei arbeiten soll. ob die Datei mit den 3 Tabellenblättern Makrofrei bleiben soll, und wie die EDV-Struktur der Anwender ist.
Bist du der einzige Anwender, dann die Makros in die persönliche Makroarbeitsmappe oder in der Datei speichern. AddIn ist dann Geschmacksache.
Sind alle Anwender an ein Netzwerk angeschlossen, dann AddIn wenn Datei makrofrei bleiben soll. Ansonsten Makros in Datei einbinden.
Ist die Anwenderstruktur inhomogen, dann Makros in Datei einbinden. Du müßtest sonst zusätzlich sicherstellen, dass alle Anwender auch das AddIn zur Verfügung haben.
Generell ist die Integration der Makros in die Datei der einfachste Weg der Umsetzung.
Gruß
Franz
Anzeige
AW: Einzelne Tabellenblätter - Speichern unter
31.10.2010 20:23:35
Peter
Hallo Franz,
eine letzte Frage noch von mir Nervensäge.
Beim Speichern ins xlsx-Format kommt die Abfrage ob ich ohne Makros speichern will (Ich habe im Objekt "Diese Arbeitsmappe" einen Code zur Großschreibung). Kann man das evtl. noch umgehen.
Tschüss
Peter
AW: Mehrfach-Posting - I love it
01.11.2010 07:57:23
fcs
Hallo Peter Rust alias heimat,
das Mehrfach-Posting der gleichen Frage in mehreren Foren
hier: http://www.wer-weiss-was.de/app/article/show/6147929
ist nicht so ganz die feine Art.
Und dann bist du auch noch so unverschämt, nachdem du am 31.10.2010 um 10:42:05 eine Lösung von mir bekommen hast, Reinhard bei wer-weiss-was eine weitere Lösung erarbeiten zu lassen.
Mit einem letzten Gruß
Franz
Anzeige
AW: Mehrfach-Posting - I love it
01.11.2010 10:25:55
Reinhard
Hallo Franz,
es macht immer wieder Laune zu erfahren, daß man für die Tonne gearbeitet hat :-((
Von mir aus gesehen ist heimat jetzt gewaltig Heimatlos geworden wenn er sich nicht bessert :-)
Gruß
Reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige