Avatar billede hoell Nybegynder
30. marts 2006 - 12:55 Der er 9 kommentarer og
1 løsning

Select Case i en løkke (VBA)

Når nu jeg ikke kan nedenstående, hvordan  går jeg det så lige smart?

Dim a As Integer, b As Integer
For a = 1 To AntalEns
    b = a - 1
Select Case ComboBox1.Value
    Case b
            Modelnumber = ComboBox1.Value
End Select
Next a

Bonus info:
Dim Modelnumber
AntalEns altid stører end 1 og lig antallet af linjer i comboboxen, da denne genereres ud fra AntalEns.

Nogen ideer?
Avatar billede sjh Nybegynder
30. marts 2006 - 12:59 #1
øh.. den 'Select Case' du har der giver ikke nogle mening.. Brug en If .. Then


Dim a As Integer

  For a = 1 To AntalEns
    If ComboBox1.Value = (a - 1) Then
      Modelnumber = ComboBox1.Value
    End If
  Next ' a
Avatar billede sjh Nybegynder
30. marts 2006 - 13:07 #2
skulle være sådan..

If ComboBox1.Value >= (a - 1) Then ' Her skal (a - 1) være større eller ligmed .Value
Avatar billede hoell Nybegynder
30. marts 2006 - 13:13 #3
Men så er jeg nød til at vide, hvordan jeg har mere ned en kollone værdier i en combobox, for jeg får ikke listværdien ud af min combox PT.
Avatar billede sjh Nybegynder
30. marts 2006 - 14:58 #4
øh.. kan ikke lige se helt hvad du mener.. vil du gennemløbe dem som er i ComboBox1 ??

Dim i As Integer
  With ComboBox1
      For i = 0 To (.ListCount - 1)
        MsgBox .List(i)
      Next
  End With
Avatar billede sjh Nybegynder
30. marts 2006 - 15:02 #5
eller sådan:

Dim i As Integer
Dim Modelnumber As Variant
  With ComboBox1
      For i = 0 To (.ListCount - 1)
        Modelnumber = .List(i) ' ComboBox1.Value
        If Modelnumber >= (a - 1) Then
       
        End If
      Next
  End With
Avatar billede sjh Nybegynder
30. marts 2006 - 15:05 #6
nej sådan:

Dim i As Integer
Dim Modelnumber As Variant
  For a = 1 To AntalEns
    With ComboBox1
        For i = 0 To (.ListCount - 1)
          If .List(i) >= (a - 1) Then
            Modelnumber = .List(i) ' ComboBox1.Value
          End If
        Next
    End With
  Next ' a

:D
Avatar billede hoell Nybegynder
30. marts 2006 - 15:08 #7
Okay for fra

Normalt  ville jeg lave en:
    Select Case ComboBox.Value
        Case 0
            Modelnumber = "XXXX"
        Case 1
            Modelnumber = "YYYY"
        osv..
    Select End

Men da jeg kun ved at der er AntalEns rækker i comboxen, altså et dynamisk antal.

arrh som jeg skriver tror jeg jeg ved hvorfor du er i tvivl.

Jeg skal bruge den tekst som jeg viser i comboboxen, som er smidt ind med combobox1.Additem. Hvordan får jeg den ud igen?
Den bliver smidt ind med :
AntalEns = 0
For i = 1 To 1200
    If Worksheets("Hoved ark").Range("L" & i & "") = BrandName And Worksheets("Hoved ark").Range("C" & i & "").Value = "S " & Model & "" Then
        ComboBox1.AddItem Worksheets("Hoved ark").Range("D" & i & "").Value & vbTab & i
        AntalEns = AntalEns +1
    End If
Next i

Håbre det giver ne lidt bedre forståelse for problemet?
Avatar billede sjh Nybegynder
30. marts 2006 - 15:11 #8
Ja hvis det bare er den du har valgt i din ComboBox1 så er det bare:

vadi = ComboBox1.Value
Avatar billede hoell Nybegynder
30. marts 2006 - 16:10 #9
Så der points, jeg skulle lige have boundcolumn = 1, så var den der ;-)
Avatar billede sjh Nybegynder
30. marts 2006 - 16:15 #10
godt nok..
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