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

Speichern - Stringbearbeitung

Speichern - Stringbearbeitung
30.05.2004 16:24:05
Mnauel
It's me again...
Code:
Private Function save() ActiveSheet.Unprotect ("xxx") Dim ort Dim name ort = InputBox("Speichern unter...", "Speicherort", "C:\") name = InputBox("Dateiname:", "Dateiname", "SGN-Rohstoffberechnung") If (ort = "") Then Else If (ort <> "") Then If (name = "") Then Else If (name <> "") Then ActiveWorkbook.SaveAs Filename:= _ ort & name & ".xls" _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveSheet.Protect ("xxx") End If End If End If End If Range("C7").Select ActiveSheet.Protect ("xxx") End Function
Wie man sieht, gibt es 2 Button, einen, in den man den Speicherort eingibt und einen, in den man den namen eingibt.
Zu den 4 if-Abfragen:
Damit verhindere ich, wenn der Nutzer nichts eingibt, oder auf "Abbrechen" klickt, das das Programm den Blattschutz aufhebt.
Zu dem Speicherort:
Wenn jemand eigibt:
"D:\Excel"
dann den Namen "Test", dann wird die Datei unter: "D:\ExcelTest.xls" abgespeichert.
Ich möchte nun, dass überprüft wird, ob ein "\" am Schluss existiert, und wenn nicht, dass eines hinzugefügt wird.
-> Wie geht das?
Zu dem Dateinamen:
Wenn jetzt jemand "Test.xls" eingibt, wird das als "Test.xls.xls" abgespeichert. Hier möchte ich also überprüfen, ob ein ".xls" am Ende vorhanden ist udn wenn ja, dass es entfernt wird.
-> Wie geht das?
Ich hoffe, mir kann wer helfen, ich helfe auch gerne, wenn ich kann, nur ich bin da noch net so gut drin, aber ich steigere mich ja dank eurer Hilfe..
MfG
Manuel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern - Stringbearbeitung
30.05.2004 16:49:20
Josef
Hallo Manuel!
Bist du sicher, das das in eine Funktion soll?
Zum Speicher brauchst du den Blattschutz nicht aufheben!
Als "Sub" sieht das so aus.
Option Explicit

Private Sub save()
Dim ort
Dim name
ort = InputBox("Speichern unter...", "Speicherort", "C:\")
If ort = "" Then Exit Sub
name = InputBox("Dateiname:", "Dateiname", "SGN-Rohstoffberechnung")
If name = "" Then Exit Sub
If Right(ort, 1) <> "\" Then ort = ort & "\"
If UCase(Right(name, InStr(1, StrReverse(name), "."))) Like ".X*" Then _
name = Left(name, Len(name) - InStr(1, StrReverse(name), "."))
ActiveWorkbook.SaveAs ort & name & ".xls"
End Sub

Gruß Sepp
Anzeige
AW: Speichern - Stringbearbeitung
30.05.2004 17:03:13
Manuel
Hey, danke.. ich glaube, jetzt bin ich auch fertig...
DANKE!!
AW: Speichern - Stringbearbeitung
30.05.2004 16:51:44
Nepumuk
Hallo Manuel,
erstens, ist es unnötig den Blattschutz aufzuheben, da in die Tabelle nichts eingetragen wird.
Zweitens, mit dem Parameter UserInterfaceOnly = True, aus meinem ersten Makro haben Makros den Zugriff auf die Tabellen. Daher kannst du dir das entfernen und setzen des Blattschutzes vor und nach den Prozeduren ersparen.
Drittens, warum eine Funktion, wenn du keinen Wert übergibst?
Viertens, „save“ ist ein Schlüsselwort in Excel und sollte tunlichst nicht als Makro- oder Variablenname verwendet werden.
Und fünftens würde ich das so machen:


Public Sub speichern()
    Dim varDateiname As Variant
    varDateiname = Application.GetSaveAsFilename("Exceldatei (*.xls), *.xls")
    If VarType(varDateiname) = vbBoolean And varDateiname = False Then Exit Sub
    ActiveWorkbook.SaveAs Filename:=varDateiname
    Range("C7").Select
End Sub


Gruß
Nepumuk
Anzeige
Korrektur!!!!
30.05.2004 17:01:24
Nepumuk
Oooooops,
das kommt davon, wenn ich zu faul bin einen wirklich kleine Code zu testen. So ist's natürlich richtig:


Public Sub speichern()
    Dim varDateiname As Variant
    varDateiname = Application.GetSaveAsFilename(ThisWorkbook.FullName, "Exceldatei (*.xls), *.xls")
    If VarType(varDateiname) <> vbBoolean And varDateiname <> False Then ActiveWorkbook.SaveAs Filename:=varDateiname
    Range("C7").Select
End Sub


Gruß
Nepumuk
Anzeige
AW: Korrektur!!!!
30.05.2004 17:04:27
Manuel
Danke...
Ich habe mich zwar jetzt für die andere Lösung entschieden, aber trotzdem fättes thx!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige