Är du i Excel fortfarande?
Ett enkelt exempel.
Först behöver du en rullista. Du kan naturligtvis använda en Formulärkontroll eller en ActiveX-kontroll men i det här exemplet används excels Dataverifiering:
Skapa först en rullista i en cell
Markera en cell (C2 i exemplet)
Gå till menyn Data->Verifiering->Inställningar
Ändra "Tillåt" till Lista och kryssa i Nerullningsbar listruta i cell
I Källa skriver du a;b;c;d;e (a,b,c,d,e om du kör engelska inställningar i Windows)
Ok
Nu borde du ha en rullista i Cell C2
Nu behöver du bara få den att byta sida också:
Högerklicka på Fliknamnet (typ "Index") och välj "Visa Kod"
Skriv in någonting i stil med:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, ActiveSheet.Range("C2")) Is Nothing Then Exit Sub
Worksheets(ActiveSheet.Range("C2").Value).Activate
End Sub
Den här Koden körs varje gång någonting ändras på sidan. Den första raden kollar bara vilken cell som ändrats. Om det är någon annan cell än C2 så avslutas scriptet. Annars Hämtar den värdet i cell C2 och försöker öppna en sida med samma namn
Näpp, inte vad jag vet. Se Sjödals tråd "Excel: Lista plus välja ur listan" för liknande diskussion. Där diskuteras andra metoder att få fram lite synligare kontroller också.
Hmm. Eftersom du redan använder Makron så skulle du Iofs kunna aktivera cellen så fort sidan öppnas.
Private Sub Worksheet_Activate()
Range("C2").Activate
End Sub
Vette tusan hur man skall få den att "fällas ut". Men pilen syns i alla fall. Löser det något?
*********** Ed***********
Man kanske skall ge ett exempel på hur du anväder en Kombinationsrute-kontroll (visa, verktygsfält, kontroller, Kombinationsruta, dra till bladet)
Högerklickar på kontrollen. Välj "egenskaper" och fyll i adressen till en lista i ListFillRange (några celler där du skrivit en hjälplista med fliknamnen. Kan ligga i en dold del av sidan)
Sedan väjer du "visa kod" och skriv in någonting i stil med
Private Sub ComboBox1_Change()
Worksheets(ComboBox1.Value).Activate
End Sub
Är det dataverifiering du använderi cell A1?
Då måste du skapa en hjälptabell någonstans tex i blad2 kolumn A och B. Typ:
Kund___Rabatt
AAB___15%
BAB___13%
CHB___17%
Sen skriver du helt enkelt en letaradfunktion i A2
=LETARAD(A1;Blad2!A:B;2;FALSKT)
eller
=VLOOKUP(A1,Sheet2!A:B,2,FALSE)
*******
Hmmm, i princip skulle du kunna använda kundlistan i blad2 som källa för verifieringen men den tycks inte gilla listor på andra blad. Det enklaste kanske är att lägga Kund/rabatt listan på samma blad som du vill ha rullisten, Tex i kolumn K och L, och helt enkelt gömma undan de kolumnerna
Om man vill ha själva verifieringslistan(Källan) på separat blad så kan man väl namnge listområdet med ett namn och sedan definiera namnet som källa?
Data/Verifiering och skriva =namnet (vid källa)
Eller är jag ute och cyklar? :-)
Nejdå. Du har rätt. Om du cyklar har du i alla fall cykelhjälm, reflex och ett fungerande lyse :-)
Tänkte bara hålla det enkelt. Jag tycker själv att namngivna områden kan blir krångliga. Men i det här fallet är det nog den bästa lösningen (menyn infoga->namn->definiera).
Hmmm, man kan till och med välja hela kolumn A, så man behöver inte hålla på med dynamiska listor heller. Smiiiiidigt.
135 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17