Avatar billede friis5 Novice
22. august 2007 - 14:34 Der er 7 kommentarer og
1 løsning

Oprette combobox med autofilter form

Hej alle,
jeg skal have oprettet en UserForm som i en af listerne indlæser som valgmulighed hvad der står i søjle A.

Har søgt lidt omkring, og faldt over denne kode, som henter søjle A ind og grupperer den, således at jeg bare skal have skrevet dataen over i et array - men jeg kan bare ikke få det til at virke. - hvad gør jeg galt?


Sub AutoFilterArray()

Dim Uniq_Matrix As New Collection
Dim TempMatrix
Dim StartSheet As Worksheet
Dim rngStart As Range, rngIndexCol As Range
Dim i As Long
Dim iUniqTotal As Integer
'Dim InputArray As ?

  Set StartSheet = ActiveSheet
  With Application
      .DisplayStatusBar = True
      Set rngStart = StartSheet.Range("A1")
      Set rngIndexCol = StartSheet.Range("A1")
      .Calculation = xlCalculationManual
      .ScreenUpdating = False
  End With
 
  '***fyld alle data i kol A over i et midlertidig array
  With rngIndexCol
      TempMatrix = Range(Cells(rngStart.Row, .Column), Cells(65536, .Column).End(xlUp).Address)
    End With
   
  '***træk de unikke items ud i en collection
  On Error Resume Next
  For i = 2 To UBound(TempMatrix)
      Uniq_Matrix.Add TempMatrix(i, 1), CStr(TempMatrix(i, 1))
'    InputArray(i - 1) = i
  Next i
 
  End Sub
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 15:21 #1
Skal du blot have listet alle værdier i kolonne A i en ComboBox?
Avatar billede friis5 Novice
22. august 2007 - 15:33 #2
Nej, jeg skal have dem grupperet først

fx.

A
A
A
B
A
C
D

til et array med

A
B
C
D

Men i bund og grund skal jeg bare vide, hvordan jeg får dem i ovenstående kode over i et array (da ovenstående kode sorterer data som jeg ønsker det).
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 15:41 #3
Jamen de ligger da i Uniq_Matrix som et array!
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 15:49 #4
Næh, det gør de ikke, men det kan du gøre således:

ReDim DitArray(0)
 
For Y = 0 To Uniq_Matrix.Count - 1
    ReDim Preserve DitArray(Y)
    DitArray(Y) = Uniq_Matrix(Y + 1)
Next
Avatar billede friis5 Novice
22. august 2007 - 16:23 #5
Takker - det minder meget om det jeg prøvede - endte dog med noget der så således ud:

  '***henter de unikke data over i et array
  ReDim InputArray(Uniq_Matrix.Count)
 
  For i = 1 To UBound(InputArray)
    InputArray(i) = Uniq_Matrix(i)
  Next i

(hvordan giver man point, for dit svar var a-ok :]
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 16:28 #6
Du skal bare acceptere dette svar.
Avatar billede friis5 Novice
22. august 2007 - 17:06 #7
Perfekt
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 17:14 #8
Takker :-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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