Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Blatt automatisch neu berechnen | Herbers Excel-Forum


Betrifft: Blatt automatisch neu berechnen von: RalfTh
Geschrieben am: 18.01.2010 10:19:42

Hallo Excelfreunde

Ich habe mal wieder ein Anfängerproblem.
Ich habe eine Exceldatei mit einem Blatt Namens "INI" Hier ermittle ich unter anderem den Dateinamen und die Namen der einzelnen Blätter. Hierzu habe ich mir diese kleine Funktion zusammengeschustert:

'##########################################################################
'Namen der Tabellenblätter ermittlen
'##########################################################################

Public Function SheetName(Index)
    Dim a As Variant
    a = Sheets(Index).Name
    SheetName = a
    
End Function

So weit so gut, oder auch nicht. Wenn ich nämlich jetzt neue Tabellenblätter einfüge, oder den Namen des Tabellenblattes ändere werden die Zellen, welche diese Funktion nutzen nicht neu berechnet.

Es gibt ja Application.Calculate, aber ich weiß nicht wo ich es einsetzen soll.

Wäre dankbar für Hilfe

Grüße
Ralf

  

Betrifft: Versuchs mal mit application.volatile OT von: ingoG
Geschrieben am: 18.01.2010 10:38:21

.


  

Betrifft: AW: Blatt automatisch neu berechnen von: Renee
Geschrieben am: 18.01.2010 10:39:38

Hi Ralf

So weit so gut, oder auch nicht.
Eher nicht ;-)
Das Problem: Weder ein Rename noch das Einfügen eines Tabellenblatts, triggert ein Ereignis in Excel.
Ist zwar nicht sehr schön, aber ein

    Application.Volatile
 nach deiner Dim Anweisung würde helfen.

GreetZ Renée



  

Betrifft: AW: Blatt automatisch neu berechnen von: PointOfView
Geschrieben am: 18.01.2010 10:51:20

Hallo Ralf,

versuch es mal hiermit:

'Code in "DieseArbeitsmappe"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Call Kalkuliere
End Sub
Code in ein Modul (bsp. basMain):
Sub Kalkuliere()
'alle Tabellenblätter berücksichtigen
Set MySheet = ActiveSheet
Dim intAnzahl As Integer
For intAnzahl = 1 To Worksheets.Count
Worksheets(intAnzahl).Activate
'automatische kalkulieren aktivieren
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
MySheet.Activate
Next
End Sub

Wenn ich Dich richtig verstanden habe, dann soll die Berechnung bei jeder Aktivität innerhalb des Workbooks erfolgen, egal ob Wertänderungen erfolgen, oder Tabellenblätter gelöscht oder hinzugefügt werden. Bitte korrigiere mich, wenn ich falsch liege.

Viele Grüsse
Oliver


  

Betrifft: AW: Blatt automatisch neu berechnen von: Tino
Geschrieben am: 18.01.2010 11:47:10

Hallo,
versuch mal und füge in die entsprechende Tabelle diesen Code ein.

Private Sub Worksheet_Activate()
 ActiveSheet.Calculate
End Sub
Gruß Tino


Beiträge aus den Excel-Beispielen zum Thema "Blatt automatisch neu berechnen"