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

Speicherung klappt nicht

Speicherung klappt nicht
29.07.2019 19:53:01
sigrid
Guten Abend,
bitte nicht lachen, bin heute schon 7h am verzweifeln...
Ich versuche meine Datei als Copy zu speichern, hiermit
ActiveWorkbook.SaveCopyAs Filename:=strPath
die Datei wird gespeichert allerdings möchte ich vorher die
übrigen Sheets löschen, das klappt auch, leider werden die Sheets
aber in meiner Orginal Tabelle gelöscht, warum auch immer.
Public Sub Sheets_löschen()
Dim wks As Worksheet
For Each wks In Worksheets
Application.DisplayAlerts = False
If wks.Name  ActiveSheet.Name Then wks.Delete
Next
Application.DisplayAlerts = True
End Sub
gruß sigrid

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speicherung klappt nicht
29.07.2019 19:56:48
Hajo_Zi
Hallo Sigrid,
ich sehe in dem Code nicht das speichern.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Hier der Code
29.07.2019 20:06:56
sigrid
Hallo zusammen,
hier der Code.
Public Sub NEU_BlattSpeichern()
Dim TBName$
Dim tan
tan = ActiveSheet.Name
TBName = ActiveSheet.Name
Dim WBName As String, varAntwortMsg
Do
WBName = InputBox(Chr(13) & Chr(13) & _
"JETZT  im blau makierten Feld Kunden-Name eingeben: " & Chr(13) & Chr(13) & _
_
"              NUR Namen, kein DOPPELPUNKT, kein Schrägstrich !", _
"Kunden-Namen für Datei >", tan & ".xlsm")
If Not sichererDateiname(WBName) Then
If MsgBox("Dateiname enthält ungültige Sonderzeichen." & Chr(10) & _
"Nochmal probieren?", vbYesNo) = vbNo Then Exit Sub
Else
Exit Do
End If
Loop
MsgBox "Neuer Dateiname:    " & WBName
ActiveSheet.Range("D1") = WBName
If WBName = "" Then Exit Sub
'--- so jetzt noch ins Verzeichnis speichern -------------
Dim Fs As Object, OrdNam As Variant, Ord As Byte, Pfad As String
Dim DateiNam As String
Dim aDatei As String
Dim strPath$
DateiNam = WBName & " " & "Rg.-Nr. " & ActiveSheet.Range("I23") & " - " & ActiveSheet.Range(" _
J23") & " " _
& ActiveSheet.Range( _
"E23") & ".xlsm"
strPath = "C:\_Werkstatt\__Möbel\__Rechnungen_gedruckt\"
With ActiveSheet
If IsDate(.Range("J18")) Then
If .Range("J18") > 0 Then
'Pfad Jahr
strPath = strPath & Year(.Range("J18").Value) & "\"
'Pfad Monat
strPath = strPath & Format(.Range("J18").Value, "MM  MMMM") & "\"
'Ordner erstellen sollte dieser nicht vorhanden sein
apiCreateFullPath strPath
strPath = strPath & DateiNam
'Prüfung ob vorhanden
If Dir(strPath, vbNormal)  "" Then
MsgBox "Kunden-Name " & DateiNam & Chr(13) & Chr(13) & _
"mit der Rg. - Nr. ist vorhanden !" & vbLf & vbLf & "Bitte ändern !"
' strPath = ActiveWorkbook.FullName
' On Error Resume Next
' Application.DisplayAlerts = False
' ActiveWorkbook.Close True
' Kill strPath
' ActiveWindow.Close
Exit Sub                    ' ich eingesetzt
Else
' ActiveWorkbook.SaveCopyAs Filename:=strPath  'klappt auch nicht
ActiveWorkbook.SaveCopyAs strPath
Call Sheets_löschen
Exit Sub
'   wb.Sheets("Rechnungs").Delete
'   wb.Save
'   wb.Close
End If
End If
End If
End With
End Sub
wie gesagt, gespeichert wird richtig allerdings werden die Sheets nur im Orginal und nicht in
der Copy gelöscht.
gruß sigrid
Anzeige
AW: Hier der Code
29.07.2019 20:16:19
Hajo_Zi
ich baue keine Datei nach.
For Each Wks In ActiveWorkbook.Worksheets
Gruß Hajo
Versteh dich nicht Hajo
29.07.2019 20:23:43
Sigrid
Hallo Hajo,
erst forderst Du Code an, und dann nicht nachbauen,
versteh nicht.
Ein kleines Beispiel würde ja helfen.
Gruß
Sigrid
Er wird Dir nicht mehr antworten ...
29.07.2019 20:52:23
Matthias
Hallo Sigrid ...
Such nach Leuten die Dir wirklich helfen wollen (Hajo gehört da nicht dazu)
Hajo ist schon seit langer Zeit nicht mehr er selbst.
Ich stelle wieder auf Offen, da Du den Beitrag auch als Offen gekennzeichnet hast.
Gruß Matthias
AW: Er wird Dir nicht mehr antworten .
29.07.2019 21:00:31
Sigrid
Hallo Matthias,
herzlichen Dank für die Info.
Mal sehen ob jemand ein kleines Beispiel für mein Makro hat.
Gruß sigrid
Anzeige
AW: Er wird Dir nicht mehr antworten .
29.07.2019 21:09:02
Luschi
Hallo Sigrid,
da Du das Problem hast, solltest auch Du eine Demodatei bereitstellen, wo dieses Phänomen sichtbar wird - alles Andere ist doch nur stochern im Nebel!
Gruß von Luschi
aus klein-Paris
AW: Er wird Dir nicht mehr antworten .
29.07.2019 21:26:59
Sigrid
Hallo Luschi,
ich hab das Makro doch gesendet.
Der Haken ist das die 4 Sheets in der neuen mit Namen versehene Datei nicht gelöscht werden.
Leider aber werden die 4 Sheets in der Grunddatei gelöscht.
Gruß Sigrid
AW: Er wird Dir nicht mehr antworten .
29.07.2019 21:35:01
Mullit
Hallo,
das stimmt natürlich was Luschi sagt, er meinte eine Datei statt Code, aber man kann schon mal sagen, Deine Löschroutine bezieht sich ja auf die Blätter der aktiven Mappe und nicht der Kopie.
D.h. Du mußt Deine Kopie mit der Open-Methode öffnen und auf das zurückgegebene Workbook-Objekt Deine Lösch-Proc anwenden, ein Ansatz:
'...
Dim objWorkbook As Workbook
Call ActiveWorkbook.SaveCopyAs(Filename:=strPath)
Set objWorkbook = Workbooks.Open(Filename:=strPath)
Call Sheets_löschen(objWorkbook)
Call objWorkbook.Close(SaveChanges:=True)
Set objWorkbook = Nothing
Public Sub Sheets_löschen(ByRef probjWorkbook As Workbook)
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In probjWorkbook.Worksheets
If wksSheet.Name  probjWorkbook.ActiveSheet.Name Then wksSheet.Delete
Next
Application.DisplayAlerts = True
End Sub

Gruß, Mullit
Anzeige
AW: Er wird Dir nicht mehr antworten .
29.07.2019 21:46:24
Sigrid
Guten Abend Mullit,
werden morgen Testen und sag Bescheid, erst mal Danke für dein Beispiel.
Gruß sigrid
Danke an alle -)
30.07.2019 19:32:50
sigrid
Guten Abend,
danke an alle ich habs geschafffffft !
Besonders noch an Mullit mit seinem Beispiel !
gruß
sigrid
Danke an alle -)
30.07.2019 19:32:51
sigrid
Guten Abend,
danke an alle ich habs geschafffffft !
Besonders noch an Mullit mit seinem Beispiel !
gruß
sigrid
Danke an alle -)
30.07.2019 19:32:53
sigrid
Guten Abend,
danke an alle ich habs geschafffffft !
Besonders noch an Mullit mit seinem Beispiel !
gruß
sigrid
AW: Versteh dich nicht Hajo
30.07.2019 05:47:59
Hajo_Zi
Hallo Sigrid,
im ersten Beitrag ging es um unter 10 Zeilen Code es fehlöte nur das sichern, also eine Zeile. Jetzt postet Du zig Zeilen code. Also erheblich mehr als 10.
Darum mein Hinweis.
Gruß Hajo
Anzeige
AW: Speicherung klappt nicht
29.07.2019 20:00:06
Daniel
Hi
dann solltest du auch explizt angeben, in welchem Workbook die Worksheets gelöscht werden sollen:
For Each wks In ActiveWorkbook.Worksheets
weiterhin:
da beim erstellen und einfügen von Dateien und Sheets das aktive Sheet wechseln kann, ist es unwahrscheinlich das zu dem Zeitpunkt, wo du die Sheets löschen willst, das aktive Sheet auch das richtige ist.
du solltest dir zu Beginn des Makros den Namen des Sheets, welches nicht gelöscht werden soll, in einer Variable merken und dann hier diese Variable verwenden.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige