Just nu i M3-nätverket
Jump to content

Charts och combo box


ZebulonM

Recommended Posts

Hej,

 

Gör i princip aldrig något visuellt i VBA, men tänkte fixa till ett diagram som jag kan justera beroende på vald valuta.

Spelar jag in ett makro så får jag kod så jag klarar mig, men skulle vilja snygga till den lite grann.

Dvs koden i första delen av if-satsen är fel. Hur skriver jag den rätt?

 

Ex:

   If cbBase.Text = "CAD" Then
       With Sheet1.ChartObjects
       .SeriesCollection(1).Values = "=Sheet2!R20C2:R20C13"
       End With
'or: Sheet1.ChartObjects.SeriesCollection(1).Values _ = "=Sheet2!R20C2:R20C13" ?
   Else
       ActiveSheet.ChartObjects("Chart 3").Activate
       ActiveChart.SeriesCollection(1).Select
       ActiveChart.SeriesCollection(1).Values = _ 
"=Sheet2!R21C2:R21C13"
   End If

Link to comment
Share on other sites

Två saker

 

Det behövs egentligen inte VBA för detta, det går att lösa med FÖRSKJUTNINGsformler sparade under namn.

 

men vill du ha det i VBA? Du måste adressera vilken graf det är du vill arbeta med:

With Blad1.ChartObjects("Diagram 1").Chart
	.SeriesCollection.Item(1).Values = Blad1.Range("$C$2:$C$7")
End With

Link to comment
Share on other sites

Underbart! Namnet på grafen fick jag med, men gick bet på .Chart efter...

Jag har aldrig använt förskjutningsformler. Är det något liknande ActiveCell.Offset fast för celler istället?

Ahh, hittade en länk från 2005.

förskjutningsformler

får fundera lite på hur jag kopplar ett värde i komboboxen till referensen bara...

Link to comment
Share on other sites

Eller om du har Excel 2007/2010 kan det gå lite enklare men har du komboboxar inblandade blir det en del spännande formler som krävs.

 

kan kanske leta reda på ett ark där jag har det ordnat och ladda upp det här... finns senare trådar där ämnet tas upp ska sägas.

 

 

... letade lite och fann

dynamiskgraf.xls

tänk vad man sparat, det är nog filen som det länkades till i tråden du hittade.

Link to comment
Share on other sites

Jättebra exempel, det är ungefär vad jag letar efter.

Jag stöter dock på patrull med att få igång kontrollversionen på comboboxen. I ditt exempel har du fem flikar under format control för cboxen. I mitt fall har jag bara fyra och saknar den viktigaste, control-fliken. Har letat bland diverse settings och funderar på om det är någon tool som saknas? eller versionsissue kankse?

 

jag kör 2003 ett tag till, men det kommer nog 2010 om ett par månader.

 

Ajdå, såg först nu att det är en DropDown och inte Combo... Vet inte hur jag skapar en sådan om du kan hinta det. Jag klarar mig iof genom att kopiera din, men kan vara bra att veta :)

post-66175-1287667828,91_thumb.png

Link to comment
Share on other sites

Det du leker med är nog en VBA-kontroll. Den ställer du in via Egenskaper för kontrollen och där är det egenskaperna LinkedCell och ListFillRange du är ute efter.

Denna kontroll kommer att returnera värdet som är valt, inte index, varvid du med en PASSA-sats får leta reda på rätt index åt FÖRSKJUTNINGS-formeln.

Exemplet är med formulär kontroll men jag brukar vanligen använda VBA/ActiveX-kontroller då jag tycker de är bättre.

 

Men se detta som ett exempel. Grejen med det hela är att FÖRSKJUTNING skapar en referens som uppdateras baserat på ett val. Här är det tre olika serier, i en annan bok är det delar av en lång serie som använda. Där har jag en tabell med datum i en kolumn och värden i en annan och kan då välja, via box, vilket år värdena som används ska vara från. Helt dynamiskt.

 

Samma metod som ovan bara lite annorlunda implementerat.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...