Hej Jeg har et regneark med 20 rækker og vil gerne have de enkelte værdier repræsenteret i et cirkeldiagram. Mit problem er at der ikke altid er værdier i alle 20 rækker(de ændres løbende)Er jeg nødt til løbende at markere de enkelte celler med værdier under kildedata i diagrammet eller er der en smartere måde så den selv undlader tomme celler i diagrammet??
ide - du kan have to sæt af data - den ene sæt er overskueligt, og det andet sæt henter oplysninger fra det første eller indsæter #I/T, og så laver du grafen fra det andet datasæt.
Hmm, virker kun med værdier og ikke tekst. Hvis jeg eksempelvis vil have tekst på X-aksen så fremkommer også de steder hvor der står #I/T . Nogle ideer???
Problemet er at Excell tror der er lige så mange værdier som der er celler hvorfor x-aksen altid vil være lige så lang som antallet af rækker. Det burde kunne lade sig gøre at ændre dette såfremt man har et dynamisk regneark.
put denne kode i arkets kodemodul forudsætter du har dine tekster i A1:A20 og værdier i B1:B20 ellers ret til
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1:B20")) Is Nothing Then Exit Sub Dim x, y, v, c Application.EnableEvents = False c = ActiveCell.Address Application.ScreenUpdating = False x = Range("A1:B20") For Each v In Range("B1:B20") If v = "" Then v.Offset(0, -1) = "" Next
Range("A1:B20").Select Selection.SpecialCells(xlCellTypeConstants, 3).Select y = Selection.Address
En hel masse flotte løsninger må jeg sige, men er det overhovedet nødvendigt idet et cirkeldiagram viser et udsnit i % og dermed vil de tomme værdier jo slet ikke indgå.
Private Sub Worksheet_Change(ByVal Target As Range) Dim x, v Dim oArea As Range Dim rng As Range Application.ScreenUpdating = False v = ActiveCell.Address Range("A1:B20").Select 'Selection.SpecialCells(xlCellTypeConstants, 1).Offset(0, -1).Select Selection.SpecialCells(xlCellTypeFormulas, 1).Offset(0, -1).Select For Each oArea In Selection.Areas If rng Is Nothing Then Set rng = oArea.Resize(, 2) Else Set rng = Union(rng, oArea.Resize(, 2)) End If Next oArea x = rng.Address ActiveSheet.ChartObjects(1).Activate ActiveChart.ChartArea.Select ActiveChart.SetSourceData Source:=Sheets("Ark1").Range(x), PlotBy:=xlColumns Application.ScreenUpdating = True Range(v).Select End Sub
Et alternativ er at sætte autofilter på. Filtre så på rækker > 0 Grafen vil så automatisk kun afspejle disse rækker og det gælder også for kategorinaerne.
Hey Igen. tak for de mange svar. Jeg tror dog det bliver for kompliceret for mit lille regneark og jeg må leve med at ændre kildedata i mine diagrammer løbende.
Hey Bak Autofilter virker glimrende, men hvis der efter en beregning kommer en ny række i datagrundlaget som skal medtages i graferne, så skal man igen manuelt sortere. Kan dette undgåes??
hvor kommer dine værdier fra (dem som indgår i grafen) hvad hedder dit ark (med grafen)
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.