Avatar billede Slettet bruger
10. juli 2002 - 16:59 Der er 8 kommentarer og
1 løsning

Div. problemstillinger i forbindelse med programmering i VB(A)

Hej allesammen.

Jeg har nu bøvlet en del med macroprogrammering.

Jeg skal lave et spørgeskema med x antal comboboxes.

Der skal desuden være change-event på samtlige combos (identisk db-opslag)

mit første forsøg:

Lad os sige der er 50 comboboxes...

for i = 1 to 50
  sub combo(i)_change ()

  ..........

  end sub
next

Håber I kan se pointen ;)

Desuden har jeg et andet problem.

Lad os sige vi har 5 text felter:

for x = 1 to 5
  text(x).value = "dette er tekst i textbox" & x & "..."
next


Håber I kan knække nødden ;)


Med venlig hilsen

Michael
Avatar billede tjacob Juniormester
10. juli 2002 - 17:31 #1
1.) Du kan ikke have en sub inden i en For-Next løkke på denne måde.
Prøv:
Private Sub Combo1_Change(Index As Integer)
    Dim i
    For i = 1 To 50
        Combo1_Change(i).? = ?
    Next i

End Sub

2.) Det burde virke!!!???!!!
    prøv: text(x).Text = "............"

/tjacob
Avatar billede Slettet bruger
10. juli 2002 - 18:07 #2
det var sat**ns... ;)

Det var næsten for let... hehehe


Tak for hjælpen.
Avatar billede tjacob Juniormester
10. juli 2002 - 18:58 #3
Ja, det var næsten for let. Og ALT for mange points ;-)
Avatar billede Slettet bruger
11. juli 2002 - 10:27 #4
ahhh... du slipper nu ikke helt.

Når vi taler macroprogrammering (VBA) kan man nemlig ikke definere index på objekterne... eller kan man?

Der er i hvertfald ikke et index felt i proporties vinduet.
Avatar billede tjacob Juniormester
11. juli 2002 - 12:24 #5
Ja, jeg havde ikke lige set det var VBA ;-)

En måde det kunne gøres på:

Giv de aktuelle objekter (f.eks. Comboboxene) en tag, f.eks. : "xx"

Derefter kan du tilgå disse objekter således:

    Dim i, cBox As Control, cBoxs As Controls

    Set cBoxs = Form1.Controls
    For each cBox in cBoxs
        If cBox.Tag = "xx" Then
            cBox.? = ? 
        End If
    Next cBox

/tjacob
Avatar billede Slettet bruger
11. juli 2002 - 13:17 #6
Det er heller ikke muligt...
tilføjer combobox med følgende kode:

for i = 40 to 190 step 15
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=54.75, Top:=i, Width:=111.75, Height:=15).Select

Next i

Ovenstående koder opretter 10 comboboxes lige nedenunder hinanden...

Det jeg så skal have lavet er en change-event på samtlige combos... hmm...
Avatar billede Slettet bruger
11. juli 2002 - 13:31 #7
Hej igen.

For at indsætte combos i mit dokument, bruger jeg følgende kode:


For i = 40 to 190 step 15

ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=54.75, Top:=i, Width:=111.75, Height:=15).Select

Next i


Såh, det eneste jeg nu mangler er en change-event på samtlige combos.

Kan man ikke lave det, nu hvor jeg ikke kan definere index's ?
Avatar billede Slettet bruger
11. juli 2002 - 13:36 #8
Hej igen.

For at indsætte combos i mit dokument, bruger jeg følgende kode:


For i = 40 to 190 step 15

ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=54.75, Top:=i, Width:=111.75, Height:=15).Select

Next i


Såh, det eneste jeg nu mangler er en change-event på samtlige combos.

Kan man ikke lave det, nu hvor jeg ikke kan definere index's ?
Avatar billede Slettet bruger
11. juli 2002 - 15:39 #9
ahh... woups... ;O)

Undskyld de mange kommentarer, troede ikke de kom igennem ;)
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