Meerdere Checkboxen selecteren en functie uitvoeren

Status
Niet open voor verdere reacties.

Killerclown

Gebruiker
Lid geworden
30 dec 2007
Berichten
181
Ik heb een formuliertje gemaakt in VBA met daarop een tekstvak en verschillende checkboxen. Elke checkbox staat voor een andere map op de C-schijf
Nu is het de bedoeling dat men één of meerder checkboxen selecteert en dan op de verzendknop drukt zodat het tekstje uit het tekstveld en één of meerdere mappen wordt geschreven als tekstfile.

Het tekstje naar 1 map schrijven lukt mij als er maar 1 checkbox is geselecteerd.
Maar als je meer dan 1 checkbox selecteert, dan begint mijn probleem. Het lukt mij niet om dat tekstje naar meerdere mappen te schrijven.

Kan iemand mij helpen?

Dit is de code voor de verzendknop:
Code:
Private Sub cmdVerzenden_Click()

Selection.HomeKey wdStory
Selection.TypeText Format(Now, "d mmmm yyyy")
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText txtOnderwerp
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText txtBericht
Selection.TypeParagraph

If Checkbox1.Value = True Then Call BerichtCheckbox1
If CheckBox2.Value = True Then Call BerichtCheckBox2
If CheckBox3.Value = True Then Call BerichtCheckBox3

End Sub

De sub BerichtCheckbox1 omvat dan de code voor het opslaan, welke map het wordt opgeslagen en beveiligd het document met een paswoord (verschillende paswoorden voor verschillende mappen).

Kan iemand mij helpen hoe ik meerdere checkboxen kan selecteren en het bestand in meerdere mappen kan opslaan?
Mijn kennis van VB is nogal beperkt.

Alvast heel veel dank voor de hulp en uitleg.
 
Kun je hier ook jouw huidige code posten van de routines BerichtCheckbox1&2&3?
 
Kun je hier ook jouw huidige code posten van de routines BerichtCheckbox1&2&3?

Ja hoor, geen probleem.

Code:
Sub BerichtCheckBox1()

fileSaveName = "C:\test\test1\" & txtOnderwerp.Value & ".doc"

With ActiveDocument
        .ReadOnlyRecommended = False
        .Password = "xxx"
        .WritePassword = ""
   End With

ActiveDocument.SaveAs fileSaveName
Unload Me
Application.Quit
End Sub

BerichtCheckbox2 en 3 zijn idem als 1, enkel een andere map (c:\test\test 2 en test 3) en een ander paswoord.

Hopelijk kan je me verder helpen met het aanduiden van verschillende checkboxen tegelijkertijd en dan het uitvoeren van de verschillende routines want ik zit hier echt vast.

Alvast dank.
 
Hoi,

Tenzij ik met vergis.
Onderstaande lijkt me niet in de sub BerichtCheckBox1 horen te staan.
Je sluit namelijk het een en ander dat nog niet gesloten dient te worden. De code zal na deze regels niet meer verder gaan.

Code:
[COLOR="Red"]Unload Me
Application.Quit[/COLOR]
 
Hoi,

Tenzij ik met vergis.
Onderstaande lijkt me niet in de sub BerichtCheckBox1 horen te staan.
Je sluit namelijk het een en ander dat nog niet gesloten dient te worden. De code zal na deze regels niet meer verder gaan.

Code:
[COLOR="Red"]Unload Me
Application.Quit[/COLOR]

Inderdaad. Maar het was de bedoeling dat na het uitvoeren van de functie, dat Word afgesloten wordt. Ik had eerst gedacht om voor de code "unload me" terug te keren naar Sub cmdVerzenden_Click en dan daar ne check ofzo te doen of er nog checkboxen aangevinkt staan maar hier loop ik vast.
Misschien moet ik de Unload Me en Application.Quit ergens zetten nadat alle checkboxen die aangeduid waren afgewerkt zijn maar mijn probleem is dat ik de code voor de verschillende checkboxen niet ineen krijg.
Hopelijk kan iemand mij helpen.
 
Kun je dat, wat je tot nu toe hebt gemaakt hier posten.

Ik heb een formuliertje gemaakt met aan de verzendknop bovenstaande code (cmdVerzenden_click) en daarbij dan de verschillende subs BerichtCheckbox1 &2 &3
Meer had ik nog niet buiten een cancelknop en een clearknop omdat ik vast zit met de code voor als je verschillende checkboxen in 1 keer aanduid. Mijn code lukt wel als je 1 checkbox aanduid. Dan wordt het tekstje opgeslagen in bijvoorbeeld map test1 maar als ik meerdere checkboxen aanduid, dan weet ik niet hoe ik dat juist moet oplossen zodat hetzelfde tekstje in meerdere mappen geschreven wordt.

Code:
Private Sub cmdCancel_Click()

Unload Me
Application.Quit

End Sub

Private Sub cmdClear_Click()

Call UserForm_Initialize

End Sub

Private Sub cmdVerzenden_Click()

Selection.HomeKey wdStory
Selection.TypeText Format(Now, "d mmmm yyyy")
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText txtOnderwerp
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeText txtBericht
Selection.TypeParagraph

If Checkbox1.Value = True Then Call BerichtCheckbox1
If CheckBox2.Value = True Then Call BerichtCheckBox2
If CheckBox3.Value = True Then Call BerichtCheckBox3

End Sub


Sub BerichtCheckBox1()

fileSaveName = "C:\test\test1\" & txtOnderwerp.Value & ".doc"

With ActiveDocument
        .ReadOnlyRecommended = False
        .Password = "xxx"
        .WritePassword = ""
   End With

ActiveDocument.SaveAs fileSaveName
Unload Me
Application.Quit
End Sub
 
Ik heb de code een beetje aangepast, zal nog wel beter kunnen, maar ik ben geen word-vba expert.

Kijk maar of je er iets meer kunt

Code:
Private Sub cmdVerzenden_Click()

If CheckBox1.Value = True Then BerichtCheckBox1 "C:\test\test1\", txtOnderwerp.Value, "xxx1"
If CheckBox2.Value = True Then BerichtCheckBox1 "C:\test\test2\", txtOnderwerp.Value, "xxx2"
If CheckBox3.Value = True Then BerichtCheckBox1 "C:\test\test3\", txtOnderwerp.Value, "xxx3"

' Userform afsluiten em word sluiten
'Unload Me
'Application.Quit

End Sub

Sub BerichtCheckBox1(FolderName As String, FileName As String, Password As String)

Dim FileSaveName As String
FileSaveName = FolderName & FileName & ".doc"

Dim nd As New Document
With nd
    nd.Activate
    Selection.HomeKey wdStory
    Selection.TypeText Format(Now, "d mmmm yyyy")
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText txtOnderwerp
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText txtBericht
    Selection.TypeParagraph
    .ReadOnlyRecommended = False
    .Password = Password
    .WritePassword = ""
    nd.SaveAs FileSaveName
    nd.Close
End With

End Sub
 
Ik heb de code een beetje aangepast, zal nog wel beter kunnen, maar ik ben geen word-vba expert.

Kijk maar of je er iets meer kunt

Code:
Private Sub cmdVerzenden_Click()

If CheckBox1.Value = True Then BerichtCheckBox1 "C:\test\test1\", txtOnderwerp.Value, "xxx1"
If CheckBox2.Value = True Then BerichtCheckBox1 "C:\test\test2\", txtOnderwerp.Value, "xxx2"
If CheckBox3.Value = True Then BerichtCheckBox1 "C:\test\test3\", txtOnderwerp.Value, "xxx3"

' Userform afsluiten em word sluiten
'Unload Me
'Application.Quit

End Sub

Sub BerichtCheckBox1(FolderName As String, FileName As String, Password As String)

Dim FileSaveName As String
FileSaveName = FolderName & FileName & ".doc"

Dim nd As New Document
With nd
    nd.Activate
    Selection.HomeKey wdStory
    Selection.TypeText Format(Now, "d mmmm yyyy")
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText txtOnderwerp
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText txtBericht
    Selection.TypeParagraph
    .ReadOnlyRecommended = False
    .Password = Password
    .WritePassword = ""
    nd.SaveAs FileSaveName
    nd.Close
End With

End Sub

Dank je Spiderman om de code een beetje aan te passen. Het lijkt te werken.
Ik heb nog een vraagje over het volgende:
Code:
If CheckBox1.Value = True Then BerichtCheckBox1 "C:\test\test1\", txtOnderwerp.Value, "xxx1"

Wat betekent die xxx1?

En dan blijft natuurlijk mijn hoofdvraag: Hoe kan ik ervoor zorgen dat 1 tekstje bij het aanklikken van verschillende checkboxen, in meerdere mappen geschreven wordt?

Veel dank.
 
Dom van mij om het eerst eens niet te proberen.

Het lukt dus blijkbaar om 1 tekstje bij het aanduiden van meerdere checkboxen in verschillende mappen te schrijven.
Dank je Spiderman. Jouw code blijkt te werken.
Veel veel dank!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan