Harald Friis
2016-01-20 18:19:56 UTC
Hallo,
gerade bin ich von m.p.d.excel hierher umgezogen, also erst einmal guten
Tag.
... und dann noch eine Frage: ich bin leider kein großer VBA-Kenner,
nutze aber einige Funktionen gerne und oft.
U.A. habe ich Makro, das mir Verzeichnisse erstellt. Ich drucke es unten ab.
Das müsste ich an zwei Punkten ändern:
- Die Wichtigste: derzeit schaut das Makro, ob in Zeile 2-16 die erste
Spalte gefüllt ist, dann erstellt er einen Ordner.
Neu müsste ich Ordner erstellen, die a) ein bestimmtes Kalender-Datum in
einem Feld und 'x' in einem anderen Feld stehen haben. Das Makro müsste
also ein Datum erfragen: "Welches Beginndatum?". Darauf werden dann alle
Ordner erstellt, die am fraglichen Datum, also z.B. am '20.01.2016'
angemeldet und - siehe Spalte 'Anwesend' - auch gekommen sind.
Kann man das so umbauen? Habt ihr Tipps für mich?
- Der Pfad: derzeit erfragt das Makro, wo die Ordner hingespeichert
werden sollen.
Neu: sie werden immer an dieselbe Stelle geschrieben. Könnte ich also
statt der Abfrage den Pfad fest einstellen? Ich habe es versucht, aber
bin leider auch gescheitert.
Danke für Hinweise oder Hilfen.
Gruß
Harald Friis
Sub Ordner()
Dim i As Integer
Dim sPfad As String
Dim AppShell As Object
Dim BrowseDir As Variant
' catch any errors
On Error GoTo ErrorHandling
' determine path
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Speicherort für
Serienbriefe auswählen", 0, 16)
If BrowseDir = "Desktop" Then
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Else
Path = BrowseDir.items().Item().Path
End If
If Path = "" Then GoTo ErrorHandling
Path = Path & "\Ordner" & "\"
MkDir Path
On Error GoTo ErrorHandling
For i = 2 To 16
sPfad = Cells(i, 3).Value & "_" & Cells(i, 4).Value
If Cells(i, 1) <> "" Then MkDir Path & sPfad
Next
ErrorHandling:
Application.Visible = True
If Err.Number = 76 Then
MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly +
vbCritical
ElseIf Err.Number = 4198 Then
MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly +
vbCritical
ElseIf Err.Number = 91 Then
MsgBox "Exportieren abgebrochen", vbOKOnly + vbExclamation
ElseIf Err.Number > 0 Then
MsgBox "Unbekannter Fehler: " & Err.Number & " - Bitte Makro
erneut ausführen.", vbOKOnly + vbCritical
Else
MsgBox "Ordner erfolgreich erstellt", vbOKOnly + vbInformation
End If
End Sub
gerade bin ich von m.p.d.excel hierher umgezogen, also erst einmal guten
Tag.
... und dann noch eine Frage: ich bin leider kein großer VBA-Kenner,
nutze aber einige Funktionen gerne und oft.
U.A. habe ich Makro, das mir Verzeichnisse erstellt. Ich drucke es unten ab.
Das müsste ich an zwei Punkten ändern:
- Die Wichtigste: derzeit schaut das Makro, ob in Zeile 2-16 die erste
Spalte gefüllt ist, dann erstellt er einen Ordner.
Neu müsste ich Ordner erstellen, die a) ein bestimmtes Kalender-Datum in
einem Feld und 'x' in einem anderen Feld stehen haben. Das Makro müsste
also ein Datum erfragen: "Welches Beginndatum?". Darauf werden dann alle
Ordner erstellt, die am fraglichen Datum, also z.B. am '20.01.2016'
angemeldet und - siehe Spalte 'Anwesend' - auch gekommen sind.
Kann man das so umbauen? Habt ihr Tipps für mich?
- Der Pfad: derzeit erfragt das Makro, wo die Ordner hingespeichert
werden sollen.
Neu: sie werden immer an dieselbe Stelle geschrieben. Könnte ich also
statt der Abfrage den Pfad fest einstellen? Ich habe es versucht, aber
bin leider auch gescheitert.
Danke für Hinweise oder Hilfen.
Gruß
Harald Friis
Sub Ordner()
Dim i As Integer
Dim sPfad As String
Dim AppShell As Object
Dim BrowseDir As Variant
' catch any errors
On Error GoTo ErrorHandling
' determine path
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Speicherort für
Serienbriefe auswählen", 0, 16)
If BrowseDir = "Desktop" Then
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Else
Path = BrowseDir.items().Item().Path
End If
If Path = "" Then GoTo ErrorHandling
Path = Path & "\Ordner" & "\"
MkDir Path
On Error GoTo ErrorHandling
For i = 2 To 16
sPfad = Cells(i, 3).Value & "_" & Cells(i, 4).Value
If Cells(i, 1) <> "" Then MkDir Path & sPfad
Next
ErrorHandling:
Application.Visible = True
If Err.Number = 76 Then
MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly +
vbCritical
ElseIf Err.Number = 4198 Then
MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly +
vbCritical
ElseIf Err.Number = 91 Then
MsgBox "Exportieren abgebrochen", vbOKOnly + vbExclamation
ElseIf Err.Number > 0 Then
MsgBox "Unbekannter Fehler: " & Err.Number & " - Bitte Makro
erneut ausführen.", vbOKOnly + vbCritical
Else
MsgBox "Ordner erfolgreich erstellt", vbOKOnly + vbInformation
End If
End Sub