Avatar billede hubertus Seniormester
28. februar 2015 - 08:52 Der er 17 kommentarer og
1 løsning

Userform - hjæp til valg i lister

Jeg har to opgaver i en userform som jeg har brug for hjæp til.

a. er det muligt i en tekstbox, at lave et opslag i en liste, således at når jeg starter med at skrive navnet på et produkt, så udfylder den selv resten ud fra indholdet i en liste. Eks. i listen står der f.eks. tunfisk, når jeg så i tekstboxen skriver tun, så henter den selv resten efterhånden som der er et match i listen.

b. er det muligt når jeg har et match i textbox 1, at jeg så i en anden box kan vælge mellem den type af tunfisk der er. F.eks. tun i olie, tun i vand. Jeg forstiller mig en dropdown box med valgmulighederne. Disse valgmuligheder står ligeledes i en kolonne ved siden af produktlisten.

Jeg har et dataark med en kolonne der hedder produkt, og en der hedder produktyper.
Avatar billede supertekst Ekspert
28. februar 2015 - 09:16 #1
Ja begge dele kan lade sig gøre
Avatar billede hubertus Seniormester
28. februar 2015 - 10:26 #2
godt at høre. Har du så også et bud på, hvordan det skal gøres?
Avatar billede natkatten Mester
28. februar 2015 - 11:01 #3
Måske du kan hente inspiration fra dette eksempel:

http://gupl.dk/720238/
Avatar billede natkatten Mester
28. februar 2015 - 11:50 #4
Lettere forbedret version:

http://gupl.dk/720239/
Avatar billede supertekst Ekspert
28. februar 2015 - 13:15 #5
#2 vender tilbage hvis det er ønskeligt
Avatar billede hubertus Seniormester
28. februar 2015 - 13:27 #6
Supertekst du må meget gerne byde ind med løsningsforslag.

Hej Natkatten
Første del virker fint, men anden del er ikke som jeg har brug for. Jeg søger en løsning, hvor jeg f.eks. ved at vælge appelsiner i første tekstboks, skal kunne vælge mellem sure og søde i anden (bare et eks.). valget skal være i en dropdown boks, hvor første mulighed f.eks. sød er vist. Kan du indbygge det?
Avatar billede supertekst Ekspert
28. februar 2015 - 14:39 #7
Afventer..
Avatar billede supertekst Ekspert
28. februar 2015 - 16:04 #8
Har konstrueret en lille model, som indeholder 2 Combobokse og hvor produkt og tilhørende produktgrupper er anbragt i samme række.

Hvis du sender em mail returnere jeg filen. @-adresse under min profil.

Dim ræk As Integer, kol As Integer
Dim antalRæk As Integer, antalKol As Integer
Private Sub ComboBox1_Change()
Dim ix As Integer
    Me.ComboBox2.Clear
    antalKol = ActiveCell.SpecialCells(xlLastCell).Column
   
    ix = Me.ComboBox1.ListIndex
   
    For kol = 2 To antalKol
        If Cells(ix + 1, kol) <> "" Then
            Me.ComboBox2.AddItem Cells(ix + 1, kol)
        End If
    Next kol
End Sub
Private Sub UserForm_activate()
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    For ræk = 1 To antalRæk
        Me.ComboBox1.AddItem Range("A" & ræk)
    Next ræk
End Sub
Avatar billede hubertus Seniormester
28. februar 2015 - 17:02 #9
mail er afsendt
Avatar billede supertekst Ekspert
28. februar 2015 - 18:12 #10
Fil returneret..
Avatar billede natkatten Mester
01. marts 2015 - 11:43 #11
Opdateret version:

http://gupl.dk/720257/
Avatar billede hubertus Seniormester
01. marts 2015 - 12:57 #12
Hej natkatten
Funktionaliten er helt perfekt, jeg får dog en runtime error 32809, når data skal skrives tilbage til arket. Det sker I linjen:
inrk = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row '  Offset(1, 0).Row

jeg kan ikke se nogen fejl I linjen. Virker den hos dig?
Avatar billede natkatten Mester
01. marts 2015 - 13:08 #13
Ja, den virker uden problemer hos mig. Har lavet det i Excel 2013. Kan prøve at test det på en pc med Excel 2007 i morgen.
Avatar billede natkatten Mester
01. marts 2015 - 13:10 #14
Hermed ikke sagt, at koden ikke kan forbedres (bl.a. med fejlkontrol), for det kan den naturligvis. Eksemplet er til inspiration og ikke en "færdiglavet" og gennemtestet løsning.
Avatar billede supertekst Ekspert
01. marts 2015 - 15:19 #15
Sidste version:
Option Explicit
Dim ræk As Integer, kol As Integer
Dim antalRæk As Integer, antalKol As Integer
Private Sub ComboBox1_Change()
Dim ix As Integer
    Me.ComboBox2.Clear
    antalKol = ActiveCell.SpecialCells(xlLastCell).Column
   
    ix = Me.ComboBox1.ListIndex
   
    If ix = -1 Then
        Exit Sub
    End If
   
    For kol = 2 To antalKol
        If Cells(ix + 2, kol) <> "" Then
            Me.ComboBox2.AddItem Cells(ix + 2, kol)
        End If
       
        If Me.ComboBox2.ListCount > 0 Then
            Me.ComboBox2.ListIndex = 0
        End If
    Next kol
End Sub
Private Sub CommandButton1_Click()
Dim antalRæk2 As Integer, ræk2 As Integer
    ActiveWorkbook.Sheets(2).Activate
    antalRæk2 = ActiveCell.SpecialCells(xlLastCell).Row
    If antalRæk2 = 1 Then
        antalRæk2 = 2
    End If
   
    For ræk2 = 2 To antalRæk2 + 1
        If Range("A" & ræk2) = "" Then
            Range("A" & ræk2) = Me.ComboBox1
            Range("B" & ræk2) = Me.ComboBox2
            ActiveSheet.Columns.AutoFit
           
            ActiveWorkbook.Save
            ActiveWorkbook.Sheets(1).Activate
            Me.ComboBox1 = ""
            Me.ComboBox1.SetFocus
            Exit Sub
        End If
    Next ræk2
End Sub
Private Sub UserForm_activate()
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    For ræk = 2 To antalRæk
        Me.ComboBox1.AddItem Range("A" & ræk)
    Next ræk
End Sub
Avatar billede natkatten Mester
02. marts 2015 - 09:38 #16
Får samme fejl som du på min arbejds-pc. Dette gælder både Excel 2007 og 2013. Jeg tror, at fejlen skyldes dette:

http://excelmatters.com/2014/12/10/office-update-breaks-activex-controls/

Jeg vender tilbage. Skal alligevel have fundet en løsning ifm. andre opgaver.
Avatar billede natkatten Mester
02. marts 2015 - 11:07 #17
Har kørt denne "FixIT" fra Microsoft på min arbejds-pc:

http://support2.microsoft.com/kb/3025036/en-us

Nu fungerer makroen i Excel 2013, men ikke i Excel 2007! Jeg foretager mig ikke yderligere, idet jeg kun har beholdt Excel 2007 for at lave forskellige tests mv. Jeg benytter den ikke i mit daglige arbejde.

Giv pointene til Supertekst og luk dermed spørgsmålet - jeg går ikke op i dette.
Avatar billede hubertus Seniormester
02. marts 2015 - 17:24 #18
Det er ok, men tak for hjælpen alligevel.
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

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