# 2 kleine Fragen: Tabellenende Auto erkennen, Exel ausblenden?



## The Brain (11. September 2006)

hi!

ich hab doch noch zwei kleine Probleme. das Wichtigere:

Ich kann ja nun endlich meine TXT datei (siehe post weiter unten ) einlesen. in der Befinden sich daten dich ich nun in ein sheet einlese und auswerte. das problem: diese daten haben ich nicht immer die gleiche länge. es handelt sich um Temperaturdaten von messfühlern. je öfter gemessen wurde bzw länger, des do mehr zeilen sind es. der Anfang ist natürlich immer gleich, jedoch eben das Tabellenende ist immer wo anders. wenn ich nun ein Diagramm erstelle und dieses als makro aufzeichne, wird der ausertungsbereich ja festgelegt z.b. wie jetzt grade "Range("C3:K317")". es gibt doch die möglichkeit dieses erkennen zu lassen wenn keine belegten zellen mehr kommen. ich hab das mal vor 6 Jahren beim fachabi gemacht aber naja... 6 Jahre eben und das feuer nach abschluss hat nichts übrig gelassen 

zweit sache:
ich hab mein programm aus excel herraus geschieben. es ist als eine .xls datei und jedes mal wenn ich diese aufrufe sieht man im hintergrund eine tabelle. ist es möglich dieses auszublenden und später dann nur das Digramm einsehen zu können? 

wäre klasse wenn einer helfen könnte. hab schon gegooglet usw aber irgendwie find ich nichts. 

thanks schonmal für die mühe


----------



## The Brain (11. September 2006)

so, kleinen schritt bin ich weiter: 


```
Worksheets("Temperaturen").Activate 
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
```

durch diesen code springe ich automatisch an die letzte Zelle in meiner Tabelle. jetzt muss ich nur noch wissen wie ich die position dieser zelle irgendwie speicher. bei meinen versuchen wird der inhalt gespeichert, aber nicht die postition...


----------



## Nirraven (11. September 2006)

Zum ein und ausblenden geht 

```
ActiveWindow.SelectedSheets.Visible = False
```
ganz gut 

Und ne Range kannst du mit 

```
Worksheets("Tabelle1").Range(ActiveCell, "A5").Select
```
z.B. auswählen.


----------



## The Brain (11. September 2006)

ach, er schon wieder 

thanks erstmal. das erste funkt soweit gut. zum zweiten jedoch....


```
Private Sub CBDiagramm_Click() 

    Charts.Add 
    ActiveChart.ChartType = xlLine 
    ActiveChart.SetSourceData Source:=Sheets("Temperaturen").Range("C3:K317"), _ 
        PlotBy:=xlColumns 
    ActiveChart.Location Where:=xlLocationAsNewSheet, Name:= _ 
        "Diagrammauswertung" 
    With ActiveChart.Axes(xlCategory) 
        .HasMajorGridlines = False 
        .HasMinorGridlines = False 
    End With 
    With ActiveChart.Axes(xlValue) 
        .HasMajorGridlines = False 
        .HasMinorGridlines = False 
    End With 
    ActiveChart.HasLegend = False 
    ActiveChart.HasDataTable = False 
    Sheets("Diagrammauswertung").Select 
End Sub
```

das is mein code. ich muss nun irgendwie den Range der Aktiven zelle der Tabelle welche ja den schluss makiert, an die stelle 
	
	
	



```
ActiveChart.SetSourceData Source:=Sheets("Temperaturen").Range("C3:K317"), _ 
        PlotBy:=xlColumns
```
 bekommen. also der anfang von c3 bleibt, jedoch ist das ende in diesem fall K317 variabel. hierfür muss das aus der aktiven zelle rein. hast ne idee wie ich das anstellen kann?


----------



## Nirraven (11. September 2006)

```
Worksheets("Temperaturen").Activate  
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
```
Damit kommst du in die letzte gefüllte Zelle

Also sollte

```
ActiveChart.SetSourceData Source:=Sheets("Temperaturen").Range(ActiveCell, "C3"), PlotBy:=xlColumns
```

klappen


----------



## The Brain (11. September 2006)

das obere hab ich ja auch. das unter funkt jedoch nicht. das hab ich auch schon probiert... ich weis nicht was da schief läuft.... er müßte aus der aktiven zelle den zweiten wert nehmen. also an dieser Stelle K317. lüppt aber nicht

Wenn ich mir einfach einen Testbutton mache, und darauf eine MSGbox = ActiveCell setze, wird mir der wert der zelle, aber nicht die pos gegeben. Mache ich jedoch ein ActiveCell.Address, bekomme ich die Zellen benannt in $K$317


----------



## The Brain (12. September 2006)

so jungs....

bin fast da.....


```
With Sheets("Temperaturen") 
letzteZeile = Range("C3").End(xlDown).row 
    Range("C3:K" & letzteZeile).Activate 
    End With
```

dadruch makiere ich mir meinen Tabellenberich. nur ein problem: Eagal was ich in 
	
	
	



```
ActiveChart.SetSourceData Source:=Sheets("Temperaturen").Range("C3:K317"), _  
        PlotBy:=xlColumns
```
 auch mache. ich bekomm immer eine fehlermeldung. wie komme ich den Aktiven Zellenbreich in den "Range()" oben!!?


----------



## nightdancer (20. September 2006)

ActiveSheet.Range("A1").Specialcells(xlCellTypeLastCell).Row

gibt die Zeilennummer der letzten belegten Zelle in der Spalte A zurück.


----------

