31. marts 2010 - 19:20Der er
3 kommentarer og 1 løsning
Interaktiv graf / Excel+VBA
Jeg har et regneark, hvor jeg henter tre kolonner data ind fra et andet ark (Dato [a], Data1 [b], Data2 [c]). I kolonne [d] til [i] har jeg beregninger på Data 1 og Data 2.
Vha. seks checkbokse skal brugeren kunne tilføje/fjerne dataen i kolonne [d] til [i], i en graf. Grafen dannes først, når brugeren har taget stilling til hvilke data der skal med i grafen. Endeligt skal brugeren kunne angive slutdato for dataperioden, hvis dette måtte ønskes, dog kun hvis datoen er større end "x". Dette angives også inden grafen konstrueres.
Jeg fremsender gerne arket, hvis det måtte ønskes :)
Sub cmd_konsgraf_Klik() Const kol1 = "D" Const overSkRække = "11" Dim sidsteRække As Long, kildeOmråde As Variant, diagramTitel As String Dim periode As String, forkortet As String, p As Byte Dim chkListe As Variant, ix As Byte, kol As Variant chkListe = Array("G2", "I2", "G3", "I3", "G4", "I4")
Rem Traverser chkListe For ix = 0 To UBound(chkListe) If Range(chkListe(ix)) = True Then periode = Range(kol1 & overSkRække).Offset(0, ix) p = InStr(periode, " ") If p > 0 Then forkortet = Left(periode, p + 1) forkortet = Replace(forkortet, " ", "") Else forkortet = periode End If
If diagramTitel <> "" Then diagramTitel = diagramTitel + ", " End If
diagramTitel = diagramTitel & forkortet kol = Chr(Asc(kol1) + ix) kildeOmråde = kildeOmråde + kol & overSkRække & ":" & kol & CStr(sidsteRække) & "," End If Next ix
fremstilDiagram diagramTitel, Left(kildeOmråde, Len(kildeOmråde) - 1) 'fjern sidste , End Sub Private Sub sletBeståendeDiagrammer() For Each dia In ActiveSheet.ChartObjects dia.Delete Next dia End Sub Private Sub fremstilDiagram(diagramTitel, kildeOmråde) Dim diaNavn As String kopierFraSkabelon ActiveSheet.Paste
With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = diagramTitel End With End Sub Private Sub kopierFraSkabelon() Dim antalDia As Byte antalDia = ActiveWorkbook.Sheets("DiagramSkabelon").ChartObjects.Count
If antalDia > 0 Then ActiveWorkbook.Sheets("DiagramSkabelon").ChartObjects(1).Copy End If End Sub
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.