Hej! Du måste hela tiden referera till rätt sheet, även för Cells-operationen. Tack för ditt svar. Tyvärr fungerade inte det heller. Förmodligen har jag missat något mer. Så här ser hela koden ut i denna sub. För det första så finns det lite grejer med koden du bör snygga upp lite. Om makrot ligger i samma workbook som sheeten, så bör du istället namnge sheeten, och referera till dem. Det fungerade kanon. Jag har en kontroll av colNr i en annan sub. Tack så mycket för hjälpen Niklas...! /RogerHur kan man välja ett område "Range" i excel
Jag försöker välja ut ett antal celler (cell 3,5 till 40,5) i en kolumn. Dessa celler ska läggas in i ett diagram. När jag gör det så försöker jag använda koden nedan. Det kommer att vara olika områden som ska läggas in i diagrammet, vid olika tillfällen.
ActiveChart.SeriesCollection.Add Source:=Sheets("X-koordinat").Range((Cells(3, colNr)), (Cells(40, colNr))), Rowcol:=xlColumns, SeriesLabels:=True, CategoryLabels:=False, Replace:=False
variabeln "colNr" är i detta fall 5.
Jag har inte möjlighet att använda Range("E3":"E40")
När jag kör koden får jag ett felmeddelande: Körfel nr '1004' Metoden 'Cells' i objektet 'Global' misslyckades.
Någon som har en lösning på problemet?
Tack för hjälpen / RogerSv: Hur kan man välja ett område "Range" i excel
Lite stiligare är följande:
<code>
With Worksheets("X-koordinat")
ActiveChart.SeriesCollection.Add Source:=.Range(.Cells(3, colNr), .Cells(40, colNr)), ...
End With
</code>Sv:Hur kan man välja ett område "Range" i excel
<code>
Sub Add_PointsToDiagram(ByVal colNr As Integer)
ActiveSheet.ChartObjects("Diagram 3").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection.Add Source:=Sheets("X-koordinat").Range((Cells(2, colNr)), (Cells(40, colNr))), Rowcol:=xlColumns, SeriesLabels:=True, CategoryLabels:=False, Replace:=False
End Sub
</code>
/RogerSv: Hur kan man välja ett område "Range" i excel
I princip ska det här fungera:
<code>
Sub Add_PointsToDiagram(ByVal colNr As Integer)
ActiveSheet.ChartObjects("Diagram 3").Activate
ActiveChart.ChartArea.Select
With Sheets("X-koordinat")
ActiveChart.SeriesCollection.Add Source:=.Range((.Cells(2, colNr)), (.Cells(40, colNr))), Rowcol:=xlColumns, SeriesLabels:=True, CategoryLabels:=False, Replace:=False
End With
End Sub
</code>
Det här är lite snyggare
<code>
Sub Add_PointsToDiagram(ByVal colNr As Integer)
ActiveSheet.ChartObjects("Diagram 3").Activate
ActiveChart.ChartArea.Select
With WorkSheets("X-koordinat")
ActiveChart.SeriesCollection.Add Source:=.Range((.Cells(2, colNr)), (.Cells(40, colNr))), Rowcol:=xlColumns, SeriesLabels:=True, CategoryLabels:=False, Replace:=False
End With
End Sub
</code>
Och om inget funkar så ska du skriva så här:
<code>
Sub Add_PointsToDiagram(ByVal colNr As Integer)
ActiveSheet.ChartObjects("Diagram 3").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection.Add Source:=Sheets("X-koordinat").Range((Sheets("X-koordinat").Cells(2, colNr)), (Sheets("X-koordinat").Cells(40, colNr))), Rowcol:=xlColumns, SeriesLabels:=True, CategoryLabels:=False, Replace:=False
End Sub
</code>
Du bör nog också kolla så att colNr >0 och <256.Sv:Hur kan man välja ett område "Range" i excel