Avatar billede Claus Mester
10. november 2005 - 13:48 Der er 10 kommentarer og
2 løsninger

VBA word - tjek tekst i formular felt

Jeg ønsker at opbygge en funktion, der ved exit af et formularfelt kører makroen "tjek_tekst".

tjek_tekst skal undersøge hvilken tekst der står i det just passerede formularfelt.

Står der "1" skal teksten blive gul. Står der "2" skal teksten blive rød.

Kan i hjælpe med en kode til det?

Nicolaus
Avatar billede joern Nybegynder
10. november 2005 - 15:37 #1
Hej.

Hvilken event skal udløse farveskriftet, 'Click' ?

text1.backcolor = rgb(255,255,0)  'gul

text1.backcolor = rgb(255,0,0)  'rød

text1.backcolor = rgb(255,255,255)  'hvid 

Dette fungerer i Visual Basic - aldrig arbejdet med VBA.
Avatar billede martin_moth Mester
10. november 2005 - 16:40 #2
Mon ikke du kan bruge .LostFocus

Jeg ved ikke hvad du mener med "et formularfelt" - er det en textbox i en form, eller? Hvis det er, kan du jo bruge

Sub Text1_Lostfocus()
  if val(text1.text) = 1 then
    'bla bla se joerns svar
  end if
  if val(text1.text) = 2 then
    'bla bla se joerns svar
  end if
End sub
Avatar billede Claus Mester
10. november 2005 - 19:47 #3
joern: det vil ikke virke, da jeg ikke adresserer rullelisten.

martin_moth: Det er ikke en form. Det er en rulleliste (dropdown) indsat fra værktøjslinien "Formularer", defineret med 2 dropdown felter.

Her http://knowhow.frac.dk/VBA.html er et billede af den.
Avatar billede joern Nybegynder
10. november 2005 - 19:52 #4
Sorry.  Kender stort set intet til VBA.  Denne kategori er jo også VB.  Prøv evt. kategorien Excel.
I VB kan man ikke få forskellig farve på linierne i en liste, kun i en grid.

/jørn
Avatar billede Claus Mester
10. november 2005 - 20:01 #5
Det hjælper ikke noget at poste i Excel. Der er relativt stor forskel på VBA i de to programmer, selvom der dog er en del fællesnævnere.

Der er en stor samling af spørgsmål til VBA i VB. Undre mig at der ikke er blevet oprettet en sektion til netop VBA i sin tid.
Avatar billede martin_moth Mester
10. november 2005 - 20:02 #6
Mon ikke det er en combobox.

Uanset hvad, så har den nogle events du kan bruge. F.eks. _Lostfocus, eller endnu bedre, _Change. Brug den
Avatar billede martin_moth Mester
10. november 2005 - 20:04 #7
Du må kunne aflæse hvad der står i dit "formularfelt" (sig mig, har det ikke et rigtigt navn - et engelsk?) ved at bruge aflæse dets index
Avatar billede Claus Mester
11. november 2005 - 13:15 #8
martin: Det hedder en dropdown, men det er rigtigt, at det i VB/VBA sprog kaldes en Combobox :-)

Det engelske ord er: formfield(s).

Min største udfordring er, at jeg ikke kan hitte en måde at adressere den på. Med mange andre elementer kunne jeg skrive

msgbox selection.text
msgbox active...text/name/index

Det eneste jeg lige nu kan se, at jeg kan adressere den med, er egenskaben "Name". Men den fortæller mig blot hvilket navn jeg har givet feltet, ikke teksten i den.
Avatar billede Claus Mester
11. november 2005 - 13:22 #9
Fik hjælp i et amerikansk forum. Løsning:

With ActiveDocument.FormFields("Text1")
    If .result = 1 Then
        ActiveDocument.Unprotect
        .Range.Font.Color = wdColorBlue
    Else
        ActiveDocument.Unprotect
        .Range.Font.Color = wdColorPlum
    End If
    ActiveDocument.Protect wdAllowOnlyFormFields, noreset
End With

Tak for hjælpen, begge. Jeg syntes i skal smide svar for jeres indsats. Så deler vi.

Og så - god weekend.
Avatar billede martin_moth Mester
11. november 2005 - 13:31 #10
det var nu ikke meget jeg kunne bidrage med...
Avatar billede joern Nybegynder
11. november 2005 - 13:33 #11
Hej.

Fint at du fik løst problemet, og angiver svaret.  Jeg fortjener ikke point, behold dem.

Tak, i lige måde.
Avatar billede Claus Mester
11. november 2005 - 15:38 #12
martin: Nej, men du lagde en indsats og det er jeg glad for.
joern: Så takker jeg blot for din indsats :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester