Avatar billede cnr Nybegynder
08. november 2006 - 11:55 Der er 4 kommentarer og
1 løsning

Identificer graf

Jeg er ved at lave noget VBA kode hvor brugeren vælger en graf i et excel regneark som skal kopieres over i et andet regneark. Den gamle graf i det andet regneark skal i den forbindelse slettes.

Denne graf vil have et nyt navn hver gang, fra sidste gang der blev kopieret over. For at få den gamle graf slettet bliver jeg alså nød til at kende navnet.

Er der en måde at finde ud af dette navn, enten ved at gemme det umiddelbart efter kopiering, eller identificier det når den nye graf skal sættes ind?
Avatar billede cbkc Nybegynder
08. november 2006 - 13:57 #1
Holder du grafen som et ark? Hvis du gør det kan du benytte arknavnet.

Ellers lav et skjult regneark, hvori du lister grafnavne/indeks og et referenceID, som hjælper med at vide hvilke grafer er hvad.

Ved ikek hvor skarp du er på VBA, men her er lidt meeget hurtig kode, som blot kopiere en graf ud i samme ark.

    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.ChartArea.Copy
    ActiveChart.ChartArea.Copy
    ActiveWindow.Visible = False
    Windows("Book1").Activate
    Range("K29").Select
    ActiveSheet.Paste
Avatar billede cnr Nybegynder
08. november 2006 - 15:09 #2
Jeg har fundet en løsning på problemet vha følgende kode efter jeg paster ind

Dim navn As String
navn = Activechart.Name

og så gemme navnet i en celle til næste gang.

Problemet er at navn bliver på følgende format ["sheetnavn" "grafnavn"]
når jeg næste gang kalder grafen i et ActiveSheet.ChartObjects(navn).Activate skal det være på formatet ["grafnavn"].

Er der en måde at gå ind og manipulere indeholdet af string'en så jeg smider første del væk?
Avatar billede cbkc Nybegynder
08. november 2006 - 18:30 #3
Sub test()
Dim sChartname As String
Dim sSheetname As String
sChartname = ActiveChart.Name
sSheetname = ActiveSheet.Name
sChartname = Right(sChartname, Len(sChartname) - Len(sSheetname) - 1)
' eller
sChartname = Right(ActiveChart.Name, Len(ActiveChart.Name) - Len(ActiveSheet.Name) - 1)

Debug.Print sChartname

End Sub
Avatar billede cnr Nybegynder
09. november 2006 - 10:23 #4
Det virker sgu, takker :-)

Sender du lige et svar, så jeg kan give point?
Avatar billede cbkc Nybegynder
09. november 2006 - 21:08 #5
fint :-)
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