und wieder stehe ich vor einem Problem, bei dem ich mir nicht sicher bin ob dieses überhaupt lösbar ist.
Ich probiere es mal zu beschreiben.
Ich habe für meinen Job ein Arbeitsschutztool gebaut um mir die Arbeit gegenüber den Mandanten zu vereinfachen um automatisiert aus Word Vorlagen z.B. Gefährdungsbeurteilungen erstellen zu lassen.
Aufbau:
z.B. im Bereich der Gefährdungsbeurteilungen habe ich die Titel als Checkboxen aufgelistet und ich muss nur noch abhaken welche für meinen Mandanten relevant sind. Klicke ich dann auf Gefährdungsbeurteilung generieren, rattert er alle abgehakten checkboxen durch und erstellt automatisiert die Gefährdungsbeurteilungen und speichert diese ab in einem vordefinierten Ordner ab.
Soweit so gut. Funktioniert einwandfrei.
Jetzt möchte ich hingehen und noch laufende Nummern beim Abspeichern vergeben lassen. Und zwar nur bei den Abgehakten Checkboxen. Und da wird es knifflig.
Ich weiss, dass ich Variablen definieren muss, komme aber bei der n+1 Geschichte nicht weiter. Zu allem Überfluss soll die Laufende Nummer vor dem Dateinamen ausgespuckt werden und die Dateinamen sind alle unterschiedlich. Heisst ich habe da auch keine Konstante.
Wie würdet Ihr das Ganze lösen? Ich habe probiert vorab Variablen zu definieren und diese dann, wenn die Checkbox "True" ist weiter zu verarbeiten... Aber wieder mal starre ich schon zu lange auf den Code... Jemand eine Idee?
Ich habe bei der ersten Checkbox mal einen Versuch unternommen. Aber das klappt eben nur mit einer Checkbox. :-)
Viele Grüße!
Frederik
Sub GeneriereGfbu()
Dim Name_Tischlerei As String
Name_Tischlerei = Range("D2").Value
Dim Name_Ansprechpartner As String
Name_Ansprechpartner = Range("D3").Value
Dim LfdNummer As String 'Interne Vorgangsnummer fortlaufend
LfdNummer = Range("D4").Value
Dim Datum As Date
Datum = Date
Dim Pfad As String
Pfad = "B:\betr. Beratung\10_Firmenberatung\"
Dim Ordnername As String
Ordnername = LfdNummer & "_" & Name_Tischlerei & "\"
Dim OrdnerGefaehrdungsbeurteilung As String
OrdnerGefaehrdungsbeurteilung = "10_Gefährdungsbeurteilungen"
Dim Endpfad As String
Endpfad = Pfad & Ordnername & OrdnerGefaehrdungsbeurteilung & "\"
Dim PreNum As String
PreNum = "3.1."
Dim SeNum As Integer
SeNum = 0
Dim Lfd_Nummer_Dateiname As Integer
Dim wordapp As Object
Set wordapp = CreateObject("word.Application")
'Allgemein
'Gefährdungen allgemein
If Range("A6") = True Then
Lfd_Nummer_Dateiname = PreNum & SeNum + 1
wordapp.Documents.Open "B:\betr. Beratung\01_Berufsgenossenschaft_BGHM\01_Gefährdungsbeurteilung\01_Musterbetrieb_Schreinerei_Tischlerei\01_Arbeitsblätter_Einrichtungen_Tätigkeiten\GBO-Allgemeine-Gefaehrdungen.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.Bookmarks("Name_Ansprechpartner").Range.Text = Name_Ansprechpartner
wordapp.ActiveDocument.Bookmarks("Datum").Range.Text = Datum
wordapp.ActiveDocument.SaveAs Endpfad & Lfd_Nummer_Dateiname & "-Allgemeine-Gefaehrdungen.docx"
wordapp.ActiveDocument.Close
End If
'Arbeitsschutzorganisation
If Range("B6") = True Then
wordapp.Documents.Open "B:\betr. Beratung\01_Berufsgenossenschaft_BGHM\01_Gefährdungsbeurteilung\01_Musterbetrieb_Schreinerei_Tischlerei\01_Arbeitsblätter_Einrichtungen_Tätigkeiten\GBO-Arbeitsschutzorganisation.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.Bookmarks("Name_Ansprechpartner").Range.Text = Name_Ansprechpartner
wordapp.ActiveDocument.Bookmarks("Datum").Range.Text = Datum
wordapp.ActiveDocument.SaveAs Endpfad & "GBO-Arbeitsschutzorganisation.docx"
wordapp.ActiveDocument.Close
End If
'Arbeitsstätte allgemein
If Range("C6") = True Then
wordapp.Documents.Open "B:\betr. Beratung\01_Berufsgenossenschaft_BGHM\01_Gefährdungsbeurteilung\01_Musterbetrieb_Schreinerei_Tischlerei\01_Arbeitsblätter_Einrichtungen_Tätigkeiten\GBO-Arbeitsstaette-allgemein.docx"
wordapp.Visible = True
wordapp.ActiveDocument.Bookmarks("Name_Tischlerei").Range.Text = Name_Tischlerei
wordapp.ActiveDocument.Bookmarks("Name_Ansprechpartner").Range.Text = Name_Ansprechpartner
wordapp.ActiveDocument.Bookmarks("Datum").Range.Text = Datum
wordapp.ActiveDocument.SaveAs Endpfad & "GBO-Arbeitsstaette-allgemein.docx"
wordapp.ActiveDocument.Close
End If
'Und so weiter - ca. 70 Checkboxen
wordapp.quit
End Sub