Taler vi om en dropdownboks (list box), som trækkes ind i Excel arket fra toolboxen, altså noget VBA programmering ... eller er det en liste i en celle på baggrund af et celle område ?
Med venlig hilsen, Nicolai
Synes godt om
Slettet bruger
15. august 2011 - 13:47#2
Hej,
Det er en liste der er genereret på baggrund af et celle område
Jeg har et eksempel i en Excel 2003 fil, hvis du er interesseret ?
I eksemplet har jeg ...
På sheet1, som er en slags "administrationsside" - De forskellige bilmærker i kolonne A - Bilmærker med tilhørende kilometer i række 1
På sheet2, som kunne være en brugergrænseflade ? - En comboboks med de bilmærker der findes i kolonne A.
Når en værdi (et bilmærke) vælges i comboboksen hentes bilmærke + tilhørende kilometer på sheet1 og vises for brugeren på sheet 2
------
Jeg var inde omkring det med, at hide/unhide de enkelte kolonner, men jeg synes der bliver for meget "hoppen" frem og tilbage i det enkelte sheet, når der hides/unhides ... men det er blot min mening :o)
Hvis du vil prøve eksemplet, så send en mail ... så returnere jeg filen.
Med venlig hilsen, Nicolai
Synes godt om
Slettet bruger
16. august 2011 - 12:26#8
Hej Nicolai
Ja da jeg er meget interesseret i at se hvordan du har løst problemet. Jeg må sige du gør da noget ved det :o)
På sheet1: De forskellige bilmærker i kolonne A. Bilmærker med tilhørende kilometer i række 1.
På sheet2: En comboboks oprettet via Control Toolboksen med de bilmærker der findes i kolonne A.
Når en værdi (et bilmærke) vælges i comboboksen hentes bilmærke + tilhørende kilometer på sheet1 og vises for brugeren på sheet 2 i celle E1 og F1
Følgende kode er oprettet:
Bag thisworkbook
Private Sub Workbook_Open()
'kald proceduren FyldStatiskListe i module1 Module1.FyldStatiskListe
End Sub
Bag Sheet1
Private Sub Worksheet_Change(ByVal Target As Range)
'hvis der ændres noget i kolonne A på sheet1 If Target.Column = 1 Then
'kald proceduren OpdaterStatiskListe i module1 Module1.FyldStatiskListe
End If
End Sub
Bag Sheet2
Private Sub cboBilmærker_Change() Dim a As Integer Dim b As String Dim v As String
'tøm cellerne E1 og F1 på sheet2 Sheet2.Cells(1, 5).Value = "" Sheet2.Cells(1, 6).Value = ""
'tildel variablen b den valgte værdi i comboboksen b = Me.cboBilmærker.Value
'tildel variablen a, kolonnenummeret på sidste kolonne indeholdende data i række 1 'rækken med biler og tilhørende kilometer a = Sheets(1).Range("B1").End(xlToRight).Column
'for hver celle i række 1 på Sheet1 'start i celle B1 (kolonne 2) For i = 2 To a
'tildel v værdien i cellen i række 5 på sheet1 v = Sheet1.Cells(1, i).Value
'find den valgte bil 'hvis celle værdien er = værdien som er valgt på comboboksen If v = b Then
'hent de fundne værdier fra sheet1 til sheet2 celle E1 og F1 Sheet2.Cells(1, 5).Value = Sheet1.Cells(1, i).Value Sheet2.Cells(1, 6).Value = Sheet1.Cells(1, i).Offset(0, 1).Value
'forlad proceduren Exit Sub
End If
'næste celle Next i
End Sub
I Module1
Public Sub FyldStatiskListe() Dim a As Integer
'sæt hændelser ud af drift Application.EnableEvents = False
'tøm comboboksen med bilmærkerne Sheet2.cboBilmærker.Clear
'slå hændelser til igen Application.EnableEvents = True
'tildel variablen a, rækkenummeret på sidste række indeholdende data i kolonne a på sheet1 'kolonnen med de forskellige bilmærker a = Sheets(1).Range("A65536").End(xlUp).Row
'for hver række indtil sidste celle med data i kolonne A For i = 1 To a
'tilføj bilmærke til comboboksen på sheet2 Sheet2.cboBilmærker.AddItem (Sheet1.Cells(i, 1).Value)
Next i
End Sub
Med venlig hilsen, Nicolai
Synes godt om
Ny brugerNybegynder
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.