UserForm die teksten wegschrijft naar document via in vba opgenomen tekst met velden

Status
Niet open voor verdere reacties.

Wolterink66

Gebruiker
Lid geworden
17 dec 2014
Berichten
13
Beste,

Het volgende:
Ik heb een UserForm met Checkboxen. Een aantal hiervan moeten op aangevinkt staan. Men kan meerdere aanvinken indien nodig. Als ik daarna op Submit klik zou er vanuit de vba code stukken tekst in een document geschreven moeten worden.
Ik loop met mijn beperkte kennis tegen een aantal issues aan:

  1. Hoe kan ik bepaalde Checkboxen aangevinkt zetten als default.
  2. Hoe kan ik teksten waarin MergeVelden zitten opnemen in de Variabele? Ik krijg foutmeldingen omdat vbe mijn << vervangt met het " teken.

Wellicht is dit alles vrij simpel te beantwoorden, maar ik kom er even niet uit......

Groeten,

Fred
 
ik denk dat een voorbeeld bestand meer kans bied op hulp
 
VBA in Word

Sub QI()

Dim TVoorbrief As String
Dim TVoorblad As String
Dim TInhoud As String
Dim TExpertise As String
Dim TSituatieschetsEnAangebodenOplossing As String
Dim TSituatiescherts As String
Dim TAangebodenOplossing As String
Dim TVoordelenAangebodenOplossing As String
Dim TFinancieelOverzicht As String





TVoorbrief = "CRMNaam"
"PROJECTCRMContactAanhefOms#space""PROJECTCRMContactinitials#space""PROJECTCRMContacttv#space""PROJECTCRMContactlastname#space"
"CRMAdresregel1"
"CRMPostcode" "CRMPLAATS"



Delft, 17 december 2014


Uw referentie : "PROJECTUwReferentie"
Onze referentie : "PROJECTNummer" versie [Status]
Bijlage (n) : 2
Betreft : OFFERTE voor project ""PROJECTOmschrijving""



"PROJECTCRMContactAanhef#space""PROJECTCRMContacttv#firstcap#space""PROJECTCRMContactlastname",

Zoals afgesproken tijdens ons gesprek van "[Klik & type datum]" ontvangt u hierbij onze offerte betreffende het project ""PROJECTOmschrijving"".

Wij rekenen erop dat wij met deze offerte tegemoetkomen aan uw wensen en eisen, en zijn benieuwd naar uw mening. Heeft u naar aanleiding van de inhoud nog vragen, dan kunt u altijd contact opnemen met onze binnendienst verkoop of met uw accountmanager, via "PROJECTAMFTelefoon", "PROJECTAMMobiel" of "PROJECTAMMail".




End Sub
 
Allereerst natuurlijk welkom bij HelpMij! Gelijk een opmerking: we proberen de draadjes zo overzichtelijk mogelijk te houden. Zou je code willen opmaken met de CODE knop? Die vind je in het bewerkingsvenster als je op <Ga geavanceerd> klikt. 't Is de knop met ( # ) er op.
Verder zijn al die lege regels in de code natuurlijk ook niet nodig; die kun je dus rustig weghalen wat mij betreft. Ik heb al lang genoeg last van een muisarm gehad :).

Wat betreft vraag 1: kwestie van de checkboxen initialiseren in de Initialize gebeurtenis van het formulier. De tweede vraag snap ik eerlijk gezegd niet; maar op deze manier samenvoegvelden aanpassen gaat zeker niet lukken.
Maar doe er vooral ook een voorbeeld bestandje bij, dat werkt een stuk makkelijker voor ons.
 
Word vba

Code:
Private Sub Document_Open()
    UserForm1.Show
End Sub


Sub QI()

Dim TVoorbrief As String
Dim TVoorblad As String
Dim TInhoud As String
Dim TExpertise As String
Dim TSituatieschetsEnAangebodenOplossing As String
Dim TSituatiescherts As String
Dim TAangebodenOplossing As String
Dim TVoordelenAangebodenOplossing As String
Dim TFinancieelOverzicht As String


TVoorbrief = "CRMNaam"
"PROJECTCRMContactAanhefOms#space""PROJECTCRMContactinitials#space""PROJECTCRMContacttv#space""PROJECTCRMContactlastname#space"
"CRMAdresregel1"
"CRMPostcode" "CRMPLAATS"



Delft, 17 december 2014


Uw referentie   : "PROJECTUwReferentie"
Onze referentie : "PROJECTNummer" versie [Status]
Bijlage (n) : 2
Betreft     : OFFERTE voor project ""PROJECTOmschrijving""


"PROJECTCRMContactAanhef#space""PROJECTCRMContacttv#firstcap#space""PROJECTCRMContactlastname",

Zoals afgesproken tijdens ons gesprek van "[Klik & type datum]"  ontvangt u hierbij onze offerte betreffende het project ""PROJECTOmschrijving"".

Wij rekenen erop dat wij met deze offerte tegemoetkomen aan uw wensen en eisen, en zijn benieuwd naar uw mening. Heeft u naar aanleiding van de inhoud nog vragen, dan kunt u altijd contact opnemen met onze binnendienst verkoop of met uw accountmanager, via "PROJECTAMFTelefoon", "PROJECTAMMobiel" of "PROJECTAMMail".


End Sub
 
Word UserForm

Ik kan het word doc niet uploaden. Krijg een foutmelding dat deze extentie niet is toegestaan DOCM
 
Word Userform

Maar als volgt:

Als je een wordtemplate opent, dan krijg je een userform te zien. Deze bevat checkboxen die je kunt kiezen. Als je daarna op de button Submit klikt, dan worden de gerelateerde tekst fragmenten in het document geplaatst. Deze tekst fragmenten moeten gekoppeld zijn aan de checkboxen. Hierdoor kan men dus kiezen welke tekst componenten je wilt opnemen in de document.


Nu als ik dus een DIM aanmaak met bijvoorbeeld TVoorbrief.
DIM TVoorbrief As String


En vervolgens een TVoorbrief tekst wil "koppelen"dan krijg ik foutmeldingen. Dit komt omdat met het copy / pasten VBA de Veld verwijzing (<<) in de document template vervangt met ".

Beetje duidelijker?
 
Word Userform

Mijn dank voor de zeeeerrr snelle reacties op deze site!!!

Super
 
Word Userform

Aha,
Heb de setting gevonden voor de checkbox om hem op checked te zetten
 
Laatst bewerkt:
Als je het bestand in een zipje zet, kun je hem wel uploaden. Want ik denk dat het toch handiger is om het bestand zelf te zien. Maar ik begrijp dat je het Initialize event gevonden hebt :). Overigens denk ik dat je het beste met DocVariables kunt werken. Maar dat is beter te zeggen als we het document zien :).
 
Ik snap deze code niet:
Code:
Private Sub CheckBox1_Click()
    CheckBox1.Value = True

  If CheckBox1.Value = False Then
   CheckBox1.Value = True
  End If
              
End Sub
Een selectievakje heeft in zijn leven maar 2 taken: aan zijn, of uit. En dat doe je door er als gebruiker in te klikken op het formulier. Het heeft geen enkele zin om dat op deze manier te doen, want de gebruiker zet een vinkje al aan of uit. Wat wil je hier mee bereiken?
En ik mis de code die ik verwachtte in de procedure Private Sub UserForm_Initialize()
 
Word Userform

Hoi,

Dat begrijp ik nu ook ;-)
Het was een probeersel om een instelling af te dwingen.

Nu zou het zo moeten gaan dat als een checkbox is aangevinkt, er een bijbehorende stuk tekst op de document wordt geplaatst.
Dat is het idee.
Echter als ik een DIM doe en daar een stuk tekst aan koppel, dan krijg ik foutmeldingen. VBE vervangt mijn << tekens in "
Dus een Veldnaam verwijzing verandert van <<Name>> naar "Name" .
De veldnaam ben ik nodig in het document omdat dit een template wordt die wordt gevoed vanuit Synergy / Exact.
 
Waar zijn de teksten die je wilt laten genereren? Die zie ik namelijk ook niet.
 
De volgende file word document bevat de teksten die opgenomen moeten worden in de vba
 
Laatst bewerkt:
Ik heb ondertussen naar je documenten gekeken, en ik snap nog steeds niet helemaal wat je wilt. Je brief ziet er uit als een samenvoegdocument, met vreemde veldnamen als PROJECTCRMContactAanhefOms#space en PROJECTCRMContactlastname#space, maar daar ligt je probleem natuurlijk niet. Verder zie ik een aantal macrobuttons, die in een samenvoegingsbestand volgens mij weinig tot geen bestaansrecht hebben, en een waslijst aan opmerkingen. Nergens zie ik a) waar je losse teksten moeten komen, of b) welke teksten dat zouden moeten zijn. Je hebt het er steeds over dat je in je formulier teksten wilt genereren op basis van de selecties die je maakt in het formulier, maar dan moeten we op zijn minst dus die tekstblokken als gescheiden blokken kunnen herkennen, en weten waar die moeten komen te staan.
 
Word userform

Beste Michiel,

Het word document bevat de teksten. In de kantlijn zie je wellicht wat commentaren staan. Deze geven de begin en het einde van een tekstblok aan . Bijvoorbeeld start voorblad en einde voorblad.

Deze tekst blokken bevatten inderdaad veldverwijzingen die gevuld worden in een applicatie (synergy van Exact).

Eigenlijk wil ik met een userform de mogelijkheid hebben om via Checkboxen dus bepaalde tekstblokken weg te halen.
Mijn eerste gedachte was dan ook om de tekstblokken in de macro te plaatsen en deze dan weg te schrijven naar het word document.
Andere oplossing die ik voorbij zag kommen op internet was het gebruik van Bookmarks.
Ik weet dus niet goed wat het beste is om te doen.


Groeten,

Fred
 
Bladwijzers kan, die gebruik ik zelf ook wel. Je hebt 2 opties:
1. teksten standaard in het document zetten, en verwijderen op basis van selectievakjes
2. teksten in document aanmaken op basis van selectievakjes

Het maakt eigenlijk niet eens zoveel uit welke optie je kiest, want in beide gevallen moet je bladwijzers gebruiken. In het eerste geval gebruik je de bladwijzers om teksten te verwijderen, in het tweede geval juist om ze te plaatsen. Er zit ook geen verschil in moeilijkheidsgraad. Optie 1 heeft wel een voordeel t.o.v. optie 2: tekst die je in het document zet, kun je volledig opmaken. Dat wordt bij optie 2 lastig, omdat je de teksten ergens vandaan moet halen. En als je ze achter een formulier hangt, dan krijg je doorgaans platte tekst. En die is niet opgemaakt.

Wat ik zelf dan doe, is alle variabele teksten verbergen zodat je ze niet ziet in het document. Via het menu selecteer je dan de gewenste blokken, en door op OK te klikken loop je door alle bladwijzers heen, en gooi je ze weg (met de tekst) of maak je ze zichtbaar. En dat is het zo'n beetje.

Aan jou de schone taak om e.e.a. uit te werken, want de bladwijzers moet je zelf aanmaken in je document. Die opmerkingen kun je het beste verwijderen, want daar heb je verder niks aan. Zorg er wel voor dat je de bladwijzers maakt rondom de tekst, en niet ervoor, want dan heb je er niks aan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan