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

Speichern unter ( ohne Makros)

Speichern unter ( ohne Makros)
10.08.2005 20:02:29
Wuntschi
Hallo an alle,
Wer kann mir bei folgendem Problem helfen!
ich benötige ein Makro welches eine mit Makro erstellte Mappe ( 3 -5 Tabellenblätter) abspeichert!
1. Bedingung
Ich möchte gerne das diese Tabelle mit dem Namen aus dem Tabellenblatt "Coordinates" Zelle A1 abgespeichert wird.
2. Bedingung
Es soll das speichern unter Fenster von Excel aufgehen um den entsprechenden
Pfad auszuwählen.
3. Bedingung
Es soll ohne Makrosgespeichert werden!
Kann mir jemand hierzu ein Makro Code schicken (Wichtig: ich will es auch verstehen daher würde ich mich über Erklärungen im Code sehr freuen)
Vielen Dank!
Gruß
Wuntschi

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

Betreff
Datum
Anwender
Anzeige
AW: Speichern unter ( ohne Makros)
10.08.2005 21:50:32
Wuntschi
Sorry das ich es zweimal ins Forum gestellt habe!
Kann mir den keiner helfen?
Teil Lösungen reichen mir auch denn ich komme im Moment nicht weiter!
Gruß
Wuntschi
AW: Speichern unter ( ohne Makros)
10.08.2005 22:00:53
Ramses
Hallo
mal ein VBA-Rundumschlag
Option Explicit
'by Ramses

Sub SaveSingleWorksheet()
'Kopiert das aktive Worksheet
ActiveSheet.Copy
Call DelModule
Call DelUForms
Call DelEvent
ActiveWorkbook.SaveAs Range("A1") & ".xls", xlNormal
End Sub

Sub DelModule()
'Löscht Module:
With ActiveWorkbook
    For n = .VBProject.VBComponents.Count To 1 Step -1
        If .VBProject.VBComponents(n).Type = 1 Then
            .VBProject.VBComponents(n).Collection.Remove .VBProject.VBComponents(n)
        End If
    Next
End With
End Sub

Sub DelUForms()
'Löscht Userforms:
With ActiveWorkbook
    For n = .VBProject.VBComponents.Count To 1 Step -1
        If .VBProject.VBComponents(n).Type = 3 Then
            .VBProject.VBComponents(n).Collection.Remove .VBProject.VBComponents(n)
        End If
    Next
End With
End Sub

Sub DelEvent()
'Löscht Ereignisprozeduren:
With ActiveWorkbook
    For n = .VBProject.VBComponents.Count To 1 Step -1
        For i = 1 To .VBProject.VBComponents(n).CodeModule.CountOfLines
        If ThisWorkbook.VBProject.VBComponents(n).Type <> 1 And .VBProject.VBComponents(n).Type <> 3 Then _
                .VBProject.VBComponents(n).CodeModule.DeleteLines 1
        Next
    Next
End With
End Sub


Gruss Rainer
Anzeige
AW: Speichern unter ( ohne Makros)
10.08.2005 23:08:06
Wuntschi
Hallo Rainer,
ich habe den Code ausprobiert,
Also das mit dem raus löschen der Makros klappt, das verwenden des Namens welche ich für die Datei haben will klappt.
Was ich aber noch gerne haben würde wäre das auch das Fenster "Speichern unter in dem man ja den Pfad auswählen kann geöffnet wird.
Ist so etwas möglich?
Gruß Wuntschi
Welche Excel-Version ?
10.08.2005 23:24:25
Ramses
Hallo
Das ist eben nicht "Ohne Relevanz"
Gruss Rainer
AW: Welche Excel-Version ?
10.08.2005 23:45:53
Wuntschi
Hallo Rainer,
es Handelt sich um Excel 2002.
Sorry wusste nicht das das so wichtig ist!
Danke
das du mir hilfst hier eine Lösung zu finden!
Gruß
Wuntschi
Anzeige
AW: Welche Excel-Version ?
11.08.2005 00:00:18
Matthias
Hallo Wuntschi,
vielleicht ist Rainer schon weg...

If Application.Dialogs(xlDialogSaveAs).Show = False Then
MsgBox "Benutzerabbruch"
End If

Gruß Matthias
AW: Welche Excel-Version ?
11.08.2005 00:03:59
Wuntschi
Wo soll ich dieses Eingeben?
Gruß
Wuntschi
AW: Welche Excel-Version ?
11.08.2005 00:05:49
Ramses
Hallo
probiers mal
Option Explicit

Sub SaveSingleSheet()
    Dim i As Integer, y As Integer, totFiles As Integer, Qe As Integer
    Dim Sind As Long
    Dim wks As Worksheet
    Dim gefFile As String
    Dim Suchbegriff As String, Suchpfad As String
    Dim oldStatus As Variant
    'Neue Funktion erst ab Office XP verwendbar
    'bzw. auch unter 2000 wenn ein Verweis auf die Office 10 Library
    'gesetzt werden kann.
    'Öffnet einen Dialog indem der Pfad elegant wie im normalen
    'Datei-Dialog gewählt werden kann.
    Dim Suchdialog As FileDialog
    Set Suchdialog = Application.FileDialog(msoFileDialogFolderPicker)
    If Application.Version < 10 Then
        Qe = MsgBox("Diese Datei bzw. dieser Suchdialog ist erst ab EXCEL XP möglich!", vbCritical + vbOKOnly, "Tut mir leid...")
        Exit Sub
    End If
    oldStatus = Application.DisplayStatusBar
    Application.DisplayStatusBar = True
    'Hier wird der neue FolderPickerDialog aufgerufen
    With Suchdialog
        .Title = "Bitte wählen Sie ein Verzeichnis aus"
        'Environ(25) ermittelt den Aktuellen Userpfad
        .InitialFileName = Environ(25) & "\Eigene Dateien\"
        .ButtonName = "Auswahl übernehmen"
        .Show
        If .SelectedItems.Count = 0 Then
            MsgBox "Sie haben keine Auswahl getroffen", vbInformation
            Set Suchdialog = Nothing
            Exit Sub
        Else
            For Sind = 1 To .SelectedItems.Count
                Suchpfad = Suchpfad & .SelectedItems(Sind)
            Next Sind
        End If
    End With
    ActiveSheet.Copy
    Call DelModule
    Call DelUForms
    Call DelEvent
    ActiveWorkbook.SaveAs Suchpfad & "\" & Range("A1") & ".xls", xlNormal
End Sub

Sub DelModule()
    'Löscht Module:
    Dim n As Integer
    With ActiveWorkbook
        For n = .VBProject.VBComponents.Count To 1 Step -1
            If .VBProject.VBComponents(n).Type = 1 Then
                .VBProject.VBComponents(n).Collection.Remove .VBProject.VBComponents(n)
            End If
        Next
    End With
End Sub

Sub DelUForms()
    'Löscht Userforms:
    Dim n As Integer
    With ActiveWorkbook
        For n = .VBProject.VBComponents.Count To 1 Step -1
            If .VBProject.VBComponents(n).Type = 3 Then
                .VBProject.VBComponents(n).Collection.Remove .VBProject.VBComponents(n)
            End If
        Next
    End With
End Sub

Sub DelEvent()
    'Löscht Ereignisprozeduren:
    Dim n As Integer
    With ActiveWorkbook
        For n = .VBProject.VBComponents.Count To 1 Step -1
            For i = 1 To .VBProject.VBComponents(n).CodeModule.CountOfLines
            If .VBProject.VBComponents(n).Type <> 1 And .VBProject.VBComponents(n).Type <> 3 Then _
                .VBProject.VBComponents(n).CodeModule.DeleteLines 1
            Next
        Next
    End With
End Sub

Gruss Rainer
Anzeige
AW: Welche Excel-Version ?
11.08.2005 00:21:37
Wuntschi
Vielen Dank
für eure Hilfe die Lösung von Rainer
ist eine super Lösung!
Gruß
Wuntschi
AW: Speichern unter ( ohne Makros)
10.08.2005 22:29:27
Adi
Hallo Wuntschi
versuchs mal mit:
Speichername = Sheets("Coordinates").Range("A1").Value
ActiveSheet.Copy

Antwort = Application.Dialogs(xlDialogSaveWorkbook).Show(Speichername)
Wenn die Makros in der Originaldatei in einem Modul und nicht im Blatt selbst eingetragen sind, kommen sie in der neuen Datei erst gar nicht an. (Sonst hat Herbert mal 'nen Code veröffentlicht, der Code löscht. Sind aber ein paar Zeilen.)
Viel Erfolg.
Gruß
Adi
(Gute Nacht)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige