Guten Tag zusammen,
ich habe ein Problem, welches ich nicht gelöst bekomme... Folgender Umstand:
Meine Aufgabe ist es ein Dokument zu erstellen, in dem ich per CheckBox An-/ Abwählen kann was ich benötige. Dann soll VBA dieses Word Dokument als PDF Datei speichern. Für die Liste habe ich 3 Buttons.
1. Liste generieren (Alle nicht markierten Objekte werden eingegraut)
2. Liste bearbeiten (Alle Objekte werden wieder schwarz... Quasi Anfangszustand - Brauche ich eigentlich nicht, aber damit kann ich nochmal kurz über die Liste gehen und gucken ob ich alles richtig angeklickt habe)
3. Liste speichern (Bei allen markierten Objekten wird die CheckBox ausgeblendet, Alle nicht markierten Objekte werden ausgeblendet, Alle markierten Objekte rücken zusammen, damit es kein "Lückentext" wird, das Fenster "Speichern Unter" öffnet sich)
Bsp.:
Ich habe eine Einkaufsliste in Word mit allen Dingen
Einkaufsliste 1.0
[CheckBox-Aktiviert] Mehl
[CheckBox] Zucker
[CheckBox] Salz
[CheckBox-Aktiviert] Seife
Davon "aktiviere" ich nur Mehl und Seife per CheckBox.
Dann klicke ich auf Liste speichern.
Mein PDF Dokument sieht wie folgt aus:
Einkaufsliste 1.0
Mehl
Seife
Wenn ich jetzt Änderungen vornehme bspw. Salz wird auch noch benötigt, dann gehe ich wieder in die Vorlage in Word und aktiviere zusätzlich noch Salz
Einkaufsliste 1.0
[CheckBox-Aktiviert] Mehl
[CheckBox] Zucker
[CheckBox-Aktiviert] Salz
[CheckBox-Aktiviert] Seife
Dann klicke ich wieder auf Liste speichern. Da ich den Namen per VBA Code vorgegeben habe, fragt mich der PC natürlich, ob ich die bereits vorhandene Datei (die in der das Salz fehlt) mit meiner jetzigen überschreiben will. Wenn ich auf "JA" klicke, dann speichert er zwar das Word Dokument als PDF Datei ab, aber die Änderungen sind nicht übernommen. In meiner Liste würde dann noch immer das Salz fehlen, welches ich erst im zweiten Versuch aktiviert habe.....
Kann mir jemand sagen woran das liegt? Bin echt am verzweifeln... Wenn jemand gerne helfen würde, aber meine Erklärung nicht kapiert, dann einfach reinschreiben... Für mich ist es klar, weil ich ja die ganze Zeit daran arbeite, kann ja aber sein, dass der ein oder andere meine Gedankengänge nicht nachvollziehen kann ^^
Hier die drei Codes der jeweiligen Button, hoffe, dass ich alles im richtigen Format eingefügt habe:
Private Sub CommandButton1_Click()
Dim FF As FormField
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
ActiveDocument.Unprotect
End If
For Each FF In ActiveDocument.FormFields
If FF.Type = wdFieldFormCheckBox Then
If FF.Result = False Then
FF.Select
With Selection
.Expand Unit:=wdParagraph
.Range.Font.ColorIndex = wdGray25
End With
End If
End If
Next FF
End Sub
Private Sub CommandButton2_Click()
Dim FF As FormField, donk As Paragraph
Dim myInShape As InlineShape
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
ActiveDocument.Unprotect
End If
ActiveWindow.View.ShowAll = False
For Each FF In ActiveDocument.FormFields
If FF.Type = wdFieldFormCheckBox Then
Set donk = FF.Range.Paragraphs(1)
With donk
.Range.Font.ColorIndex = wdBlack
.Range.Font.Hidden = False
End With
End If
Next FF
For Each myInShape In ActiveDocument.InlineShapes
If myInShape.Type = wdInlineShapeOLEControlObject Then
myInShape.Range.Font.Hidden = False
End If
Next myInShape
End Sub
Private Sub CommandButton3_Click()
Dim FF As FormField
Dim Absatz As Paragraph
Dim myInShape As InlineShape
Dim shpShape As Shape
Dim sDatei
sDatei = Format(Date, "ddMMyyyy")
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
ActiveDocument.Unprotect
End If
ActiveWindow.View.ShowAll = True
For Each FF In ActiveDocument.FormFields
If FF.Type = wdFieldFormCheckBox Then
If FF.Result = False Then
With FF.Range.Paragraphs(1)
.Range.Font.Hidden = True
FF.Range.Font.Hidden = True
Else
FF.Range.Font.Hidden = True
End If
End If
Next FF
For Each myInShape In ActiveDocument.InlineShapes
If myInShape.Type = wdInlineShapeOLEControlObject Then
myInShape.Range.Font.Hidden = True
End If
Next myInShape
With Application.Dialogs(wdDialogFileSaveAs)
.Format = 17
.Name = sDatei & "_T-Punkt_Einfriedung_ORT"
.Show
End With
End Sub
|