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

speichern per makro?

speichern per makro?
27.09.2006 11:38:16
Alex
hi leute!
2 probleme:
problem1:
hab hier 'ne datei, die sich selber speichert.
jetzt hätt ich allerdings gerne, dass er, falls der dateiname bereits vorhanden ist (kann vorkommen) einfach eine "2" oder so an den dateinamen dranhängt.
also quasi
if dateiname.xls = bereits vohanden then dateiname = dateiname2.xls
problem2:
wie gesagt, speichert sich die datei selbst, und zwar unter dem dateinamen der im feld "A1" (bsp) steht.
alles kein problem, aber jetzt würd ich den namen gern auf 30 zeichen beschränken, "A1" ist aber gelegentlich länger!
gibts da 'ne möglichkeit?
vielen dank schon mal im voraus!
lg, Alex

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

Betreff
Datum
Anwender
Anzeige
AW: speichern per makro?
27.09.2006 11:59:45
Bernd
Hi Alex
Mit deinem zweiten Problem kann ich dir schon mal helfen

Private Sub CommandButton1_Click()
Dim s As String
s = Range("a1").Value
MsgBox "String s: " & s
MsgBox "Länge von  s: " & Len(s) & " Zeichen"
If Len(s) > 16 Then
s = Left(s, Len(s) - (Len(s) - 16))
End If
MsgBox "String s: " & s
MsgBox "Länge von  s: " & Len(s) & " Zeichen"
End Sub

Entscheidend ist natürlich nur was in der if-Abfrage passiert.
Gruss Bernd
AW: speichern per makro?
27.09.2006 12:11:34
Alex
danke schon mal!
das funzt schon mal perfekt!
wenn jetzt noch jmd. prob1 lösen kann bin ich glücklich! :)
lg
Anzeige
AW: speichern per makro?
27.09.2006 12:59:47
UweD
Hallo
so?

Sub speichern()
Dim Pfad$, Dateiname$, Ext$, JaNein
Pfad = "C:\Temp\"
If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
Ext = ".xls"
Dateiname = Left(ThisWorkbook.Sheets("Tabelle1").Range("A1"), 30)
Dateiname = Replace(Dateiname, Ext, "") & Ext
If Dateiname = "" Then
MsgBox "Kein Name angegeben"
Exit Sub
End If
'vorhanden?
Do
JaNein = Dir(Pfad & Dateiname)
If JaNein = "" Then
'noch nicht da
Else
'da
Dateiname = Replace(Dateiname, Ext, "") & "2" & Ext
End If
Loop Until JaNein = ""
ThisWorkbook.SaveAs Filename:=Pfad & Dateiname
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: speichern per makro?
27.09.2006 13:05:17
Alex
oh mann wie perfekt ist das denn!?!?!?!
vielen vielen dank!
hätte zwar mitlerweile auch ne lösung für beide probleme gefunden, aber deine ist wohl viel eleganter, effizienter und (vermutlich) auch weniger fehleranfällig! :)
vielen dank nochmal!
update
27.09.2006 13:07:46
UweD
Hallo hab die Reihenfolge nochmal geändert
so wird eine leere A1-Zelle erkannt


      
Sub speichern()
    
Dim Pfad$, Dateiname$, Ext$, JaNein
    Pfad = 
"C:\Temp\" 'anpassen
    If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\" 'prüft auf letztes \
    Ext = ".xls" 'Dateierweiterung
    Dateiname = Left(ThisWorkbook.Sheets("Tabelle1").Range("A1"), 30) 'max 30 Zeichen
    If Dateiname = "" Then 'Zelle A1 ist leer
        MsgBox "Kein Name angegeben"
        
Exit Sub
    
End If
    Dateiname = Replace(Dateiname, Ext, 
"") & Ext ' Datei erhält (nur eine) Extension
    Do
    
'vorhanden?
    JaNein = Dir(Pfad & Dateiname)
        
If JaNein = "" Then
            
'noch nicht da
        Else
            
'da
            Dateiname = Replace(Dateiname, Ext, "") & "2" & Ext 'kann also auch Name2222.xls werden
        End If
    
Loop Until JaNein = "" 'solange bis noch nicht vorhanden
    ThisWorkbook.SaveAs Filename:=Pfad & Dateiname 'speichern
End Sub 


Gruß UweD
(Rückmeldung wäre schön)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige