Print side | Luk vindue

output fra dropdown?

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=146
Udskrevet den: 12.Nov.2024 kl. 23:19


Emne: output fra dropdown?
Besked fra: Lonny
Emne: output fra dropdown?
Posteringsdato: 25.Nov.2010 kl. 13:11
Hej
jeg har følgende kode:
 
With Range("O18:O18")
Set drop3 = ActiveSheet.DropDowns.Add(.Left - 10, .Top, .Width + 10, .Height)
End With
With drop3
.List = initialer
End With
 
som indlæser initalerne fra arryet "initaler" i en dropdown - og det funker fint
 
Nu skal jeg videre ud fra valgt initial i dropdownboksen "drop3" og har derfor lavet en sub med navnet "drop3_change()"
 
Jeg får ikke noget brugbart output - har prøvet både med drop3, drop3.list, drop3.value, drop3.listitem osv osv
Jeg har også forsøgt mig med ændring af subben til "drop3_click()" samt brugt
drop3.OnAction = "drop3_change"
 i koden ovenfor. Ved brug af OnAction kan jeg få output fra en messagebox (msgbox("Dav")) men det er ikke nok !!!
 
Hvad gør jeg forkert eller rettere hvad bør jeg gøre
 
 



Svar:
Besked fra: Allan
Posteringsdato: 25.Nov.2010 kl. 14:28
Hej Lonny,
 
Hvis du sætter en 'LinkedCell' ind i din kode, vil din dropdown skrive nummeret på den valgte værdi i en celle.
Nu kan du bruge en Worksheet_change() til at mærke om værdien ændrer sig.
 
With drop3
.List = initialer
.LinkedCell = "$O$18"
End With
 
//Allan


Besked fra: Lonny
Posteringsdato: 25.Nov.2010 kl. 15:09
Hej
Tak for svar
Det funker men..............
.... jeg skal ikke have informationen sat ind i arket - jeg skal bruge informationen til at komme videre via vba til at sætte anden information i arket og kan ikke hente via en celle
 
Frustrende at jeg kan få den ønskede information lagt ud i en celle men ikke se denne på anden vis
 
 


Besked fra: Allan
Posteringsdato: 25.Nov.2010 kl. 15:25
Hej Lonnie,
 
Der er den mulighed at du skrotter tankegangen om dropdown, og i stedet vælger en Datavalidering (Den ligner en dropdown til en forveksling.)
 
Eksempel:
 
Du vil placere din dropdown i cellen o18
 
Læg denne i et modul:
Sub TestMakro()
Range("O18").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Test1,Test2,Test3"
    End With
End Sub
Sub Test1()
MsgBox "Du har valgt at køre makroen Test1"
End Sub
Sub Test2()
MsgBox "Du har valgt at køre makroen Test2"
End Sub
Sub Test3()
MsgBox "Du har valgt at køre makroen Test3"
End Sub
 
Og læg denne i det ark som du vil have dropdownen i:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$O$18" Then
    If Target.Value <> "" Then Run Target.Value
End If
End Sub
 
Kør nu makroen TestMakro
Prøv efterfølgende af ændre dropdownen i O18 og se hvad der sker.
 
Kan det løfte opgaven?
 
//Allan


Besked fra: Lonny
Posteringsdato: 25.Nov.2010 kl. 15:46
Hej
Tak igen men...
...jeg tror at vi snakker forbi hinanden sikkert fordi jeg ikke kan formulere mit problem ordentligt
Og jeg har et lidt komplekst regneark (siger newbien)
Har du en mailadresse - så sender jeg arket ?


Besked fra: Allan
Posteringsdato: 25.Nov.2010 kl. 16:14
Hej igen
 
Klik på mit navn og vælg 'Send personlig beked' så får jeg filen af den korrekte vej.
 
//Allan


Besked fra: Lonny
Posteringsdato: 26.Nov.2010 kl. 11:17
Hej
Tusind tak for tilbuddet - Jeg prøvede men mit regneark er for stort (ca 700k)
 
Jeg har nu erstattet min dropdown med
Public Sub sæt_combo(lf, tp, wh, hg, navn, dat)
    Worksheets("Forside").OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=lf, Top:=tp, Width:=wh, Height:= _
        hg).Select
    With Selection
        .Name = navn
        .ListFillRange = dat      
    End With
End Sub
 
og det funker (so far)
 
god weekend fra Lonny


Besked fra: Allan
Posteringsdato: 26.Nov.2010 kl. 11:38
Super Lonny, det vigtigste er at det nu virker Wink
Kom endelig tilbage en anden gang.
 
//Allan


-------------
MVH

Allan
https://www.excel-regneark.dk" rel="nofollow - Excel-regneark.dk - Gratis skabeloner til Excel
Få over 120 ekstra funktioner med Danmarks bedste add-in


Besked fra: Lonny
Posteringsdato: 26.Nov.2010 kl. 12:25
Hej
jeg benytter mig omgående af dit tilbud - du ved - ræk en lillefinger.....
 
Jeg har nu sat mine comboboxe hist og pist og f.eks på siden "forside".
Det funger fint med en combo_change event, når koden er sat ind på arket "forside" men det duer ikke fra modulet. Er dette muligt? Og i så fald hvad skal jeg skrive foran combo_change?
 
Vh Lonny
 


Besked fra: Allan
Posteringsdato: 26.Nov.2010 kl. 13:58

Hej Lonny,

Uden at kende arkets opbygning, vil jeg tro du kan kalde koden i dit modul direkte fra din event.
Så i din combo_change på din forside skal du skrive:
Call NavnetPåDinMakro
 
Det kommer dog lidt an på opbygningen, men prøv den lige.
 
//Allan


-------------
MVH

Allan
https://www.excel-regneark.dk" rel="nofollow - Excel-regneark.dk - Gratis skabeloner til Excel
Få over 120 ekstra funktioner med Danmarks bedste add-in



Print side | Luk vindue