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

beim Start - speichern unter

beim Start - speichern unter
25.09.2005 16:23:53
Pauker
Hallo,
ich habe leider nur geringe Kenntnisse in VBA und Excel. Nun möchte ich bei einer Datei direkt beim Start den Namen der Datei abfragen und danach (falls sie noch den Namen leer.xls hat) vom Benutzer einen neuen Namen verlangen, unter dem sie dann abgespeichert wird. Wie kann ich das mit VBA realisieren?
Gruss
volleybaerchen

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: beim Start - speichern unter
25.09.2005 16:40:41
Peter
Servus,
das könnte so gehen.


      
Option Explicit
'Code gehört in das Klassenmodul DieseArbeitsmappe per Alt + F11
'in den Editor wechseln und doppelklick auf DieseArbeitsmappe
'Code einfügen, fertig.
Private Sub Workbook_Open()
Dim strDatNam As String
If ThisWorkbook.Name <> "leer.xls" Then Exit Sub
    
Do
        strDatNam = Application.InputBox("Bitte geben Sie einen Dateinamen an", "Dateinamen")
            
If strDatNam = "" Or strDatNam = "Falsch" Then
                MsgBox "Ein Fehler wurde verursacht !" & Chr(10) _
                       & "Sie haben keinen Dateinamen angegeben !" & Chr(10) _
                        & "Vorgang wird wiederholt !!!"
            
Else
                ThisWorkbook.SaveAs Filename:=strDatNam
    
Exit Do
            
End If
    
Loop
End Sub 


MfG Peter
Anzeige
AW: beim Start - speichern unter
25.09.2005 16:46:42
Pauker
Hallo Peter,
vielen Dank für den Tip und die gute Beschreibung.
Gruss
volleybaerchen
AW: beim Start - speichern unter
25.09.2005 17:26:38
Fred
Hi,
das ist der schlimmste Code seit langem hier im Forum. Du weißt sicher auch warum,
oder?
mfg Fred
AW: beim Start - speichern unter
25.09.2005 17:38:31
Peter
Nein, leider nicht.
Aber du wirst mir sicher mit einer deiner ein Satz Lösungen behilflich sein können.
Peter
AW: beim Start - speichern unter
25.09.2005 17:43:49
Fred
Hi,
so dreist ist nicht mal MS, dem user keine Abbruchmöglichkeit zu lassen.
Keinerlei Fehlerbehandlung, wenn der user in Dateinamen nicht erlaubte Zeichen eingibt.
mfg Fred
OT: @Fred
25.09.2005 17:55:34
Peter
Hmm, kann dir von deinen Argumenten her nur Recht geben.
Die Frage ist nur wem damit gehlofen ist, dem Frager jedenfalls nicht.
Vieleicht solltest du mal überlegen, ob Lösungen anbieten nicht auch ne Alternative zu spöttischen Bemerkungen wäre ?
Peter
Anzeige
AW: OT: @Fred
25.09.2005 18:16:27
Fred
Hi,
wenn ich Lust habe, zu antworten tu ich das schon.
Du hast mich falsch verstanden, ich war nicht spöttisch, sondern kritisch.
Solche Lösungen wie deine, helfen dem Fragenden nicht wirklich.
mfg Fred
AW: beim Start - speichern unter
25.09.2005 20:34:42
Peter
Servus,
bevor noch jemand seinen Senf dazu gibt. Hier die korregierte Version.
Heist aber nicht, das nicht noch jemand einen Fehler findet.


      
Private Sub Workbook_Open()
Dim strDatNam As String
Dim intZähler As Integer
Dim bolsave As Boolean
                        bolsave = 
True
If ThisWorkbook.Name <> "leer.xls" Then Exit Sub
    
Do
        strDatNam = Application.InputBox("Bitte geben Sie einen Dateinamen an", "Dateinamen")
            
If strDatNam = "" Then
                MsgBox "Ein Fehler wurde verursacht !" & Chr(10) _
                       & "Sie haben keinen Dateinamen angegeben !" & Chr(10) _
                        & "Vorgang wird wiederholt !!!"
            
Else
            
If strDatNam = "Falsch" Then
            
'Hier musst du entscheiden was geschehen soll, wenn jemand abricht
    Exit Do
            
End If
                
For intZähler = 1 To Len(strDatNam)
                    
Select Case Asc(Mid(strDatNam, intZähler, 1))
                        
'\ / : * " < > |
                        'und alle Zeichen mit einem Ascii-Code kleiner als 32.
                        Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124
                            bolsave = 
False
                        
Case Else
                            
If bolsave = False Then
                                bolsave = 
False
                            
Else
                                bolsave = 
True
                            
End If
                    
End Select
                
Next
                
If bolsave = True Then
                    ThisWorkbook.SaveAs Filename:=strDatNam
        
Exit Do
                
Else
                    MsgBox "Unerlaubte Zeichen im Dateinamen, bitte nochmal von vorne !"
                
End If
            
End If
    
Loop
End Sub 


MfG Peter
Anzeige
AW: beim Start - speichern unter
25.09.2005 21:08:23
pauker
Hallo Peter,
vielen Dank für die Verbesserung. Ich denke mal, dass für meine geringen Bedürfnisse auch die einfache Version gereicht hätte, aber ich werde gerne auch die Verbesserung einbauen.
Also nochmals vielen Dank für deine Mühe.
MfG
volleybaerchen
AW: beim Start - speichern unter
26.09.2005 12:02:09
pauker
Hallo Peter,
deine neue Version habe ich eingebaut, und sie funktioniert auch wie gewünscht. Nun habe ich noch eine weitere Frage dazu: Da die neue Datei stets unter C:\Windows gespeichert wird, möchte ich auch anbieten, dass (vieleicht in einer Box) die Möglichkeit zur Auswahl eines Laufwerks und eines Verzeichnisses angeboten wird. Wie kann ich das einfügen.
Gruss
volleybaerchen
Anzeige
AW: beim Start - speichern unter
26.09.2005 13:48:18
Peter
Servus,
tausch den Code mit unterem aus.
Hoffe das er diesmal das Wohl der "alten" findet.


      
Option Explicit
Private Sub Workbook_Open()
Dim strDatNam As String, strpath As String
Dim intZähler As Integer
Dim bolsave As Boolean
Dim vbmAntwort As VbMsgBoxResult
Dim vrSelectItem As Variant
                        bolsave = 
True
If ThisWorkbook.Name <> "leer.xls" Then Exit Sub
    vbmAntwort = MsgBox("Wollen Sie die Datei in einem anderen Pfad speichern, als unter C:\Windows ?", vbYesNoCancel)
    
If vbmAntwort = vbYes Then
        
With Application.FileDialog(msoFileDialogFolderPicker)
            .AllowMultiSelect = 
False
            
If .Show = -1 Then
                
For Each vrSelectItem In .SelectedItems
                    strpath = vrSelectItem & "\"
                    MsgBox strpath
                
Next
            
End If
        
End With
    
Else
    strpath = "C:\Windows\"
    
End If
    
    
Do
        strDatNam = Application.InputBox("Bitte geben Sie einen Dateinamen an", "Dateinamen")
            
If strDatNam = "" Then
                MsgBox "Ein Fehler wurde verursacht !" & Chr(10) _
                       & "Sie haben keinen Dateinamen angegeben !" & Chr(10) _
                        & "Vorgang wird wiederholt !!!"
            
Else
            
If strDatNam = "Falsch" Then
            
'Hier musst du entscheiden was geschehen soll, wenn jemand abricht
    Exit Do
            
End If
                
For intZähler = 1 To Len(strDatNam)
                    
Select Case Asc(Mid(strDatNam, intZähler, 1))
                        
'\ / : * " < > |
                        'und alle Zeichen mit einem Ascii-Code kleiner als 32.
                        Case Is < 32, 92, 47, 58, 42, 63, 34, 60, 62, 124
                            bolsave = 
False
                        
Case Else
                            
If bolsave = False Then
                                bolsave = 
False
                            
Else
                                bolsave = 
True
                            
End If
                    
End Select
                
Next
                
If bolsave = True Then
                    ThisWorkbook.SaveAs Filename:=strpath & strDatNam
        
Exit Do
                
Else
                    MsgBox "Unerlaubte Zeichen im Dateinamen, bitte nochmal von vorne !"
                
End If
            
End If
    
Loop
End Sub 


MfG Peter
Anzeige
AW: beim Start - speichern unter
26.09.2005 14:16:39
pauker
Hallo Peter,
Danke - jetzt bin ich vollends zufrieden mit dem Programm!
MfG
volleybaerchen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige