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

per vba neue excelmappe anlegen

per vba neue excelmappe anlegen
21.07.2003 09:48:14
Hans
hi leute,
Gibt es die möglichkeit via VBA eine Neue Datei anzulegen? Ich weiss man kann mappen öffnen und auch schliessen, bla bla bla, aber kann man auch eine neue mappe anlegen? Ich möchte zum beispiel dass wenn ein USER mein programm registriert eine Datei automatisch im Verzeichnis C:\Windows\System32 angelegt wird. Geht das?
Vielen, vielen Dank :)

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

Betreff
Datum
Anwender
Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 09:51:29
Bernd Held
Hallo Hans,
meinst Du Workbooks.add
Viele Grüße
Bernd
MVP für Microsoft Excel
Excel-Tipps, VBA-Bücher mit Leseproben(PDF), VBA-Forum und VBA-Schulungen unter: http://held-office.de


AW: per vba neue excelmappe anlegen
21.07.2003 10:11:58
Hans
ja ich glaube schon aber wie leg ich das Verzeichnis und den Dateinamen fest? Und ist es auch möglich die datei auf versteckt oder schreibgeschützt zu setzten, oder sogar durch passwort geschützt?

AW: per vba neue excelmappe anlegen
21.07.2003 10:31:14
Nepumuk
Hallo Hans,
so:

Option Explicit
Public Sub test()
Dim FSyObjekt As Object, FObekt As Object
Application.ScreenUpdating = False
Set FSyObjekt = CreateObject("Scripting.FileSystemObject")
Workbooks.Add
ActiveWorkbook.SaveAs "C:\Windows\System32\Meindateiname.xls", Password:="meinKennwort"
ActiveWorkbook.Close
Set FObekt = FSyObjekt.GetFile("C:\Windows\System32\Meindateiname.xls")
FObekt.Attributes = 3
Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk

Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 10:18:22
Michael Scheffler
Hi,
genau wie sonst auch: SaveAs.
Gruß
Micha

AW: per vba neue excelmappe anlegen
21.07.2003 10:42:30
Hans
ach, danke, ich versteh jetzt. Bräucht aber nochn tipp. Hab jetzt:
Dim Regbook As Workbook
Set Regbook = Workbooks.Add
Regbook.SaveAs Filename:="test.xls", Password:=registered28, ReadOnlyRecommended:=True
Regbook.Close
Verstehe nicht warum ich zum öffnen der Datei kein Password eingeben muss, wozu dient dann die Passwordzeile in meinem Code? und wie kann ich verhindern dass die nachricht "Wollen sie die Datei ... überschreiben" auftaucht wenn eine Datei gleichen namens vorhanden ist? Und ist es auch möglich die neuangelegte Datei test nur mit einem Tabellenblatt anzulegen?
nochmals danke

Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 10:52:38
Nepumuk
Hallo Hans,
1.
was steht in der Variablen registered28?
2.
Den Zusatz ReadOnlyRecommended:=True kannst du dir sparen, den lößt beim öffne der Datei nur die Frage aus, ob die Datei schreigeschützt geöffnet werden soll.
3.
Da musst du vorher nachsehen, ob die Datei nicht schon existiert und eventuell mit einem Index versehen.
4.
Vor der Add - Anweisung folgende Zeilen
Dim Anz_tabllen As Byte
Anz_tabelle = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Workbooks.Add
Application.SheetsInNewWorkbook=Anz_tabllen
Gruß
Nepumuk

Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 11:13:17
Hans
super, dein Code erledigt genau was ich wollte. Nur noch 3 schnelle Fragen
1) Der Ordner Windows\System32 ist auf jeden Computer vorhanden oder? Wenn nicht welchen ordner würdest du vorschlagen?
2) Wie kann ich jetzt überprüfen ob die erzeugte Datei vorhanden ist (stell mir vor dass könnte schwierig sein weil die Datei versteckt ist?)?
3) Hab in deinem Code .Attributes = 3 gelesen und denke mir dass dies die Datei auf versteckt stellt. Hab leider in der HilfeDatei nichts darüber finden können. Wo könnte ich über diese Eigenschaft näheres erfahren?
Vielen Dank nochmals :)

Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 12:11:38
Nepumuk
Hallo Hans,
1.
Nein, z.B. auf meinem Rechner (Windows2000pro) nicht.
2.
Versuch es mal so:

Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Sub test()
Dim sSave As String, Ret As Long, index As Long, Dateiname As String
Application.ScreenUpdating = False
Dateiname = "Test"
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left(sSave, Ret) & "\"
Do
If Dir(sSave & Dateiname & ".xls", vbHidden) <> "" Then
index = index + 1
Dateiname = Dateiname & CStr(index)
Else
Exit Do
End If
Loop
Workbooks.Add
ActiveWorkbook.SaveAs sSave & Dateiname & ".xls", Password:="meinKennwort"
ActiveWorkbook.Close
SetAttr sSave & Dateiname & ".xls", vbHidden + vbReadOnly
Application.ScreenUpdating = True
End Sub


3.
Da habe ich jetzt gerade die SetAttr - Anweisung gefunden. Die kommt ohne Objekt aus. Danach kannst du mal in der VBA-Hilfe suchen.
Gruß
Nepumuk

Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 12:25:11
Nepumuk
Hallo Hans,
die Anzahl der Tabellen habe ich noch vergessen.

Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Sub test()
Dim sSave As String, Ret As Long, index As Long, Dateiname As String, Anz_tabllen As Byte
Application.ScreenUpdating = False
Dateiname = "Test"
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left(sSave, Ret) & "\"
Do
If Dir(sSave & Dateiname & ".xls", vbHidden) <> "" Then
index = index + 1
Dateiname = Dateiname & CStr(index)
Else
Exit Do
End If
Loop
Anz_tabllen = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Workbooks.Add
Application.SheetsInNewWorkbook = Anz_tabllen
ActiveWorkbook.SaveAs sSave & Dateiname & ".xls", Password:="meinKennwort"
ActiveWorkbook.Close
SetAttr sSave & Dateiname & ".xls", vbHidden + vbReadOnly
Application.ScreenUpdating = True
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk

Anzeige
AW: per vba neue excelmappe anlegen
21.07.2003 13:34:12
Hans
wow, du hast mir wirklich sehr weitergeholfen. Ich kann mit deinem Code sogar ".dll" (nach dem aussehen zumindest ;) erzeugen!
Es ist schön zu wissen dass es Profis wie dich gibt, die aus gutem Willen allein unwissenden Anfängern wie mir helfen.
Vielen, vielen Dank

AW: per vba neue excelmappe anlegen
21.07.2003 10:34:44
Franz W.
Hallo Micha,
diese Frage interessiert mich auch. Und ich hätte da bitte auch noch eine Zusatzfrage:
Kann ich per VBA vorher auch noch einen neuen Ordner erstellen? Hab's mit dem Rekorder versucht, aber der hilft da nicht weiter.
Vielen Dank und Grüße
Franz

"MkDir" : hab's gefunden. Danke! o.T.
21.07.2003 10:37:13
Franz W.

78 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige