# per VB Tabellenblätter wechseln und "beschreiben"



## bluesbounce (28. April 2004)

Hi Hi,

ich habe ein kleines Problem ;-)

Ich erstelle aus Access heraus in VB Excel Tabellen, also ich öffne eine Vorlage, trage Daten ein und speicher die unter einem anderen Namen ab. ( Anbei ein Dummy Beispiel )

Nun stellt sich mir die Frage, wie ich verschiedene Tabellenblätter ansprechen kann. 
z.B. ich trage alle Daten in das Tabellenblatt <Daten> ein und ziehe mir auf dem ersten Tabellenblatt <Darstellung> die Daten aus dem anderen Blatt berechne und stelle es farbig dar etc. Ansich ist mir alles klar nur, wie kann ich in VB
auf unterschiedliche Tabellenblätter eines Excel Sheets zugreifen 

Vielen Dank und Gruß
Alex




```
Public Function CreateExcel()
  Dim objExcel As Object
  Dim strSpeicherName As String
  Dim strVorlage As String
  Set DB = CurrentDb
  Dim i
  i = 1
  
  strVorlage = "c:/test/test.xls"
  
On Error Resume Next
  Err.Clear
  Set objExcel = GetObject(, "Excel.Application ")
  If Err.Number <> 0 Then Set objExcel = CreateObject("Excel.Application")
  On Error GoTo 0
 
 
 Set rs = DB.OpenRecordset("tbl_data")
rs.MoveLast
If rs.RecordCount >= 1 Then
    rs.MoveFirst
    Do While Not rs.EOF
     strSpeicherName = "c:/test/done/text" & rs("Name_1") & ".xls"
     With objExcel
    .Workbooks.Open strVorlage, , True
    
    
    .Application.Visible = True
    .Cells(1, 1).Value = "Name_1"
    .Cells(1, 2).Value = rs("Name_1")
    .Cells(2, 1).Value = "Name_2"
    .Cells(2, 2).Value = rs("Name_2")
    
    ' Erklärung : cells(<<Zeilennummer>>, <<Spaltennummer>>).value = "<<Eintrag>>"
    
    .Visible = True
    .ActiveWorkbook.SaveAs strSpeicherName
    .Quit
  End With
        rs.MoveNext
     Loop
Else
    Beep
    MsgBox "Meldung: Es wurden keine Daten gefunden, welche Ihrer Selektion entsprechen!", vbInformation, "Fehlermeldung"
End If
  
  Set objExcel = Nothing
End Function
```


----------



## Retlaw (28. April 2004)

```
For i = 1 To Sheets.Count
    Sheets(i).Select
    Cells(1, 1).Value = "test"
Next
```
Schreibt auf jedes Tabellenblatt in die erste Zelle "test".
Ein Sheet hat nicht mehrere Tabellenblätter, sondern ist eins.
Das Gesamte ist ein Workbook (Arbeitsmappe).


----------



## bluesbounce (28. April 2004)

Danke, also mit


```
objExcel.sheets(1).select
```

das Blatt 1 auswählen 

```
objExcel.sheets(2).select
```

das Blatt 2 
?

Gruß
Alex


----------



## bluesbounce (28. April 2004)

cool klappt, vielen Dank !


----------

