OptionButtons

Status
Niet open voor verdere reacties.

sarges

Gebruiker
Lid geworden
11 okt 2008
Berichten
57
Hallo,

Ik zit met het volgende:
Via verschillende optiebuttons zou ik 2 tabellen willen in laten vullen.
Elke optiebutton (als deze aangevinkt is) zou de gegevens die in Excel staan in de tabellen in Word moeten zetten.
Ik krijg het alleen maar voor elkaar als er 1 aangevinkt is, en de rest niet.
Zou iemand mij verder willen helpen.

Serge

Code:
Private Sub Invoegen_Click()
Dim rownum As Integer, j As Variant
rownum = ActiveDocument.Tables(1).Rows.Count
rownm = ActiveDocument.Tables(2).Rows.Count
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

conn.Open "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq= G:\ database.xls;"


If Opti1 = True Then
Elec = "Elec-tracing"
rs.Open "SELECT * FROM [Sheet1$] WHERE Naam = '" & Elec & "'", conn
For j = 2 To 7
    ActiveDocument.Tables(1).Cell(rownum, j).Range = rs("temp" & j).Value '
Next
For j = 1 To 4
    ActiveDocument.Tables(2).Cell(rownm, j).Range = rs("temp" & j + 7).Value  '
   Next
ActiveDocument.Tables(1).Rows.Add ' Nieuwe regel in tabel 1
ActiveDocument.Tables(2).Rows.Add ' Nieuwe regel in tabel 2
End If

If Opti2 = True Then
Meng = "Mengwater"
rs.Open "SELECT * FROM [Sheet1$] WHERE Naam = '" & Meng & "'", conn
For j = 2 To 7
    ActiveDocument.Tables(1).Cell(rownum, j).Range = rs("temp" & j).Value '
Next
For j = 1 To 4
    ActiveDocument.Tables(2).Cell(rownm, j).Range = rs("temp" & j + 7).Value  '
   Next
ActiveDocument.Tables(1).Rows.Add ' Nieuwe regel in tabel 1
ActiveDocument.Tables(2).Rows.Add ' Nieuwe regel in tabel 2
End If

Unload Me
Volgende.Show
End Sub
 
Lijkt mij eenvoudiger met:

In document: tabel met 7 rijen; cellen bevatten mergefields

Code:
Sub eenvoud()
  With ActiveDocument
    With .MailMerge
      .openDatasource "E:\gegevens.xls"
      .DataSource.Querystring="SELECT * FROM E:\gegevens.xls WHERE Naam = '" & Elec & "'"
    End With
    .fields.update 
  End with
End Sub

Code:
Private sub Opt1_Change()
    Activedocument.Mailmerge.DataSource.Querystring=replace("SELECT * FROM E:\gegevens.xls WHERE Naam = 'QQ'","QQ",iif(opt1,"Elec-tracing","Mengwater")
   Activedocument.Fields.update
End Sub
 
Laatst bewerkt:
snb,

Als je zou willen kijken naar de bijlage.
Ik heb in het usersform tekst en uitleg er bij gezet om proberen het iets duidelijker te maken.
Want de keuzes die via de optiebuttons gemaakt kunnen worden, worden niet altijd in de 2 tabellen neer gezet. Daarom de versie met ComboBox waar ik nu mee werk om het duidelijk te maken.
 

Bijlagen

Hiermee bereik je hetzelfde:

Code:
Private Sub UserForm_Initialize()
  With GetObject("G:\Beheer.xls")
    ComboBox1.List = .sheets(1).usedrange.Value
  End With
End Sub

Private Sub Invoegen_Click()
  For j = 1 To 7
    ActiveDocument.Tables(1).Cell(1, j).Range.Text = ComboBox1.List(ComboBox1.ListIndex, j - 1)
  Next
End Sub
 
Ik krijg "Automatiseringsfout Ongeldige syntaxis"

Met MergeFields lukt het wel, maar niet helemaal naar wens.
Dan is de versie met ComboBox makkelijker voor mij.
Ik snap maar niet hoe de optionbutton goed werkend moet krijgen
 
Vergeet die optieknoppen;

Met deze code geen enkele foutmelding.
Code:
Private Sub UserForm_Initialize()
  With GetObject("E:\OF\Beheer.xls")
    ComboBox1.List = .sheets(1).usedrange.Value
  End With
End Sub

Private Sub Invoegen_Click()
  If ComboBox1.ListIndex = -1 Then Exit Sub
  For j = 1 To 7
    ActiveDocument.Tables(1).Cell(1, j).Range.Text = ComboBox1.List(ComboBox1.ListIndex, j - 1)
  Next
End Sub
Ik denk dat je nog niet prcies weet wat je wil; het is mij in ieder geval onduidelijk waar welke gegevens moeten worden geplaatst.
 
De lijst die verschijnt in de "ComboBox" zijn keuzes die na bijvoorbeeld "Elec-tracing" gekozen te hebben in de tabellen terecht komt met de gegevens die opgeslagen zijn in excel bestand. Maar in een volgend "nieuw document" kan het zijn dat "elec-tracing niet gekozen hoeft te worden. Vandaar dat ik de optionbuttons wil gebruiken, zodat ik alle keuzes die ingevuld moeten worden op "ja" kan zetten. Helaas is bij de lijst in de ComboBox niet bij elke keuze het zo dat er gegevens in de 2 tabellen ingevuld moeten worden. Ligt aan het onderwerp. Bij "Technische aanpassingen" wordt alleen tabel 1 ingevuld en hoeft er verder geen info te komen, bij Elec-tracing worden er 2 tabellen ingevuld.

Pfff, ik hoop dat ik het iets duidelijker heb kunnen verwoorden.
 
Ik heb het zover voor elkaar gekregen met CheckBoxen
De keuze hangt af van of het van toepassing is.
Het is nu niet helemaal volgens de regels van VBA, wil het graag netter en beter maken.
Denk dat het nu wel duidelijk is wat ik bedoel.

Serge
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan