Word: optionbutton blanco

Status
Niet open voor verdere reacties.

Killerclown

Gebruiker
Lid geworden
30 dec 2007
Berichten
181
Hey,

Ik heb een tabel in Word waar in bepaalde cellen een "X" staat. Nu wil ik dat bepaalde optionbuttons aan staan als er in die cel een "X" staat. (slechts 1 "X" per rij)
Ik probeer onderstaande code maar de optionbuttons blijven blanco.

Wat doe ik mis?

Code:
If ActiveDocument.Tables(1).Cell(Row:=2, Column:=2).Range.Text = "X" Then OptionButton1.Value = True
If ActiveDocument.Tables(1).Cell(Row:=2, Column:=3).Range.Text = "X" Then OptionButton2.Value = True
If ActiveDocument.Tables(1).Cell(Row:=2, Column:=4).Range.Text = "X" Then OptionButton3.Value = True
If ActiveDocument.Tables(1).Cell(Row:=2, Column:=5).Range.Text = "X" Then OptionButton4.Value = True
If ActiveDocument.Tables(1).Cell(Row:=2, Column:=6).Range.Text = "X" Then OptionButton5.Value = True

Alvast dank
 
Doe er een voorbeeldje bij; ik sta niet te popelen om het zelf na te bouwen :).
 
Mijn excuses, ik dacht dat iedereen stond te popelen om het na te bouwen :D

Hier het bestand: Bekijk bijlage 2015 Evaluatie - kopie.doc
(Ik heb wel de extensie veranderd naar doc want docm wordt hier blijkbaar niet aanvaard)

Op pagina 1 staat de tabel met de knop naar het formulier.
Het is wel nog in opbouw maar in userform "Frm01Kennis" vind je de code terug die hieronder staat.

Ik zou willen als er al een kruisje in de tabel staat, dat dit ook in het formulier zichtbaar is. Maar de optionbuttons blijven blanco.
Mijn volgende stap zou dan zijn dat als je een andere optionbutton kiest dan diegene die al geselecteerd staat (en waar het kruisje in de tabel staat), dat de tabel ook aangepast wordt en het kruisje verplaatst wordt.

Alvast dank.
 
Je had natuurlijk allang getest:

Code:
msgbox len(ActiveDocument.Tables(1).Cell(2, 2).Range.Text)


Die lengte komt natuurlijk nooit overeen met "X"

PS. 'Popelen' is dat geen dorpje in België ?
 
Laatst bewerkt:
Hmmm...ok, daar zit het probleem.
Nu probeer ik het op te lossen met de Trim-functie maar de lengte blijft 3. Enig idee?

PS Poperingen is een dorp in België :-)
 
Ja hoor, dat klopt ;)

Laat je hersens eens kraken; worden ze niet slechter van.
 
Geef je op voor de canvas krak...
 
Kijk eens wat er letterlijk in je cel staat, en trek daar je vervolgstappen uit:
Code:
    s = ActiveDocument.Tables(1).Cell(2, 2).Range.Text
    For i = 1 To Len(s)
        MsgBox Mid(s, i, 1) & " - " & Asc(Mid(s, i, 1))
    Next i
 
Ok, zo ver was ik ook al om te zien wat er in de cel staat maar daar zit ik strop.

Volgens methode snb: bevat de cel 3 tekens
volgens methode OctaFish: staat er in de cel X° (X en een zwart bolletje). Dit had ik zelf ook al gevonden op een andere manier.

Ik dacht eerst met de functie Trim de spaties weg te doen maar dat lukt niet.
Dus ik veronderstel dat dat zwart bolletje iets anders betekend. Een return staat er niet in de cel.
Daar hang ik dus vast. Even zien of ik op google iets vind :confused:
 
De oplossing staart je al aan in je eigen bericht.
 
Aangezien ik er maar geen kop of staart aan krijg wat die karakters zijn (geen spatie en geen return), heb ik het probleem als volgt omzeilt:

Code:
If ActiveDocument.Tables(1).Cell(Row:=2, Column:=2).Range.Characters(1) = "X" Then OptionButton1.Value = True

Ik heb gebruik gemaakt van het object Characters en dat lijkt op het eerste zicht te werken.
 
Je hebt het probleem niet omzeild, maar opgelost. !:thumb:

Door te testen welke cellen in een kolom een 'X' bevatten.
 
Ik heb wat op google gezocht en het onderstaande gevonden en beetje aangepast:

Code:
Dim Count As Integer
Dim Target As String
Dim Cell As Object
Dim N As Integer

   Count = 0
   Target = "X"
   If Target = "" Then GoTo Done
      For Each Cell In ActiveDocument.Tables(1).Columns(4).Cells
         N = InStr(1, Cell.Value, Target)
         While N <> 0
            Count = Count + 1
            N = InStr(N + 1, Cell.Value, Target)
         Wend
      Next Cell
   MsgBox Count & " Occurrences of " & Target
Done:

Toch krijg ik op de lijn N = InStr(1, Cell.Value, Target) een foutmelding 438.
Iemand een idee wat er fout is?

Met dank!
 
HEEEEEEELP!!!!!

Niemand die me verder kan helpen? Ik ben radeloos aan het worden.

Het lukt me maar niet om het aantal X'en te tellen in een kolom. In google vind je bijna uitsluitend voor Excel maar niets voor tabel in Word.

:(:(:(:(:(:(:(:(:(
 
Code:
Sub M_snb()
   For Each cl In ActiveDocument.Tables(1).Columns(4).Cells
     y=y-(left(cl.range.text,1)="X")
   next

   msgbox y
End Sub
 
Toch is het simpel, want een kolom in Word is niks anders dan een kolom in Excel. Met dit verschil dat Word er geen enkel punt van maakt als je cellen samenvoegt, waardoor het nooit te voorspellen is of je in de juiste kolom zit. Maar bij een normale tabel is het dus weinig anders. Ik ben er mee bezig, maar ga er morgen mee verder.
 
Het lukte me totaal niet. Dagen later en pagina's met probeersels verder en ik kreeg niet anders dan foutmeldingen. Functies verkeerd, objecten vereist, etc. Ik werd er zot van.
Thanks snb. Wat een opluchting. Dit werkt. Enkel de lijn "y=y-(left(cl.range.text,1)="X")" snap ik niet zo goed. Je trekt van y cellen af met "X" in??? Ik begrijp het niet :(
Bedankt OctaFish om het ook even te bekijken. Ik zoek het waarschijnlijk veel te ver :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan