Avatar billede mimet Nybegynder
07. februar 2013 - 22:53 Der er 4 kommentarer og
1 løsning

Fylde en combobox liste på en userform med data fra et andet regneark.

Jeg har en userform (UserFormValg1) med en knap (commandbutton1), der åbner en anden userform (Faktura1).
(Faktura1) indeholder en combobox (CB1_Kunder) og 4 textboxe (TxtNavn1, TxtNavn2, TxtNavn3 og TxtNavn4).
Mit ønske er at når Faktura1 åbner skal CB_Kunder dropdownlisten fyldes med værdier fra kolonne A i et regneark, der hedder (Kunder).
Når faktura 1 er åbnet skal txtNavn1-4 fyldes værdier fra samme regneark som combobox fik værdier.

TxtNavn1 = kolonne B
TxtNavn2 = kolonne C
TxtNavn3 = kolonne D
TxtNavn4 = kolonne E

Jeg har rodet længe med problemet og er derfor kommet lidt i tidsnød. Håber en af jer kan hjælpe mig.

Med venlig hilsen
Mimet
Avatar billede supertekst Ekspert
07. februar 2013 - 23:17 #1
Er regnearket med Kunder et anden fil eller samme fil, hvor fanenavn er Kunder?

Du er velkommen til at sende det/de relevante filer.

@-adresse under min profil.
Avatar billede mimet Nybegynder
08. februar 2013 - 09:37 #2
Hej Supertekst
fanen "Kunder" er i regnearket "Kunder"

Jeg kan først sende filerne i eftermiddag.

Med venlig hilsen
Mimet
Avatar billede supertekst Ekspert
08. februar 2013 - 09:55 #3
Ok..
Avatar billede supertekst Ekspert
09. februar 2013 - 17:20 #4
VBA-kode i Userform:

Const kunderFilNavn = "kunder.xlsm"
Const førsteKundeRække = 2
Dim kunderXLS As Object
Dim antalRækker As Long, kundeRæk As Long

Dim sti As String
Private Sub CB1_Kunder_Change()
    kundeRæk = Me.CB1_Kunder.ListIndex + førsteKundeRække
    indsætKundeData kundeRæk
End Sub
Private Sub CmdLuk_Click()
    Application.DisplayAlerts = False
    lukKunder
    Unload Me
End Sub
Private Sub lukKunder()
    With kunderXLS
        .ActiveWorkbook.Saved = True
        .ActiveWorkbook.Close
        .Application.Quit
    End With
   
    Set kunderXLS = Nothing
End Sub
Private Sub userform_initialize()
    Application.ScreenUpdating = False
   
    opsætningAfSti
    indlæsningAfKunder
End Sub
Private Sub opsætningAfSti()
    sti = hentSti
    sti = ActiveWorkbook.Path
    If Right(sti, 1) <> "\" Then
        sti = sti & "\"
    End If
End Sub
Private Sub indlæsningAfKunder()
Dim ræk As Long, kundeNr As Integer
    Set kunderXLS = CreateObject("Excel.Application")
    With kunderXLS
        .Workbooks.Open sti & kunderFilNavn
       
        .ActiveWorkbook.Sheets("Kunder").Activate
       
        antalRækker = .ActiveCell.SpecialCells(xlLastCell).Row
       
        For ræk = førsteKundeRække To antalRækker
            kundeNr = .Range("A" & ræk)
            If CStr(kundeNr) <> "" Then
                Me.CB1_Kunder.AddItem .Range("A" & ræk)
                indsætKundeData ræk
            End If
        Next ræk
    End With
   
    Me.CB1_Kunder.ListIndex = 0
   
End Sub
Private Sub indsætKundeData(ræk)
    With kunderXLS.ActiveWorkbook.Sheets("Kunder")
        Me.TxtNavn1 = .Range("B" & ræk)
        Me.TxtNavn2 = .Range("C" & ræk)
        Me.TxtNavn3 = .Range("D" & ræk)
        Me.TxtNavn4 = .Range("E" & ræk)
    End With
End Sub
Avatar billede mimet Nybegynder
09. februar 2013 - 17:44 #5
Tak for løsningen, det virker fint!
Her er svar og point
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