• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Das neue Jahr beginnt wie das alte - natürlich mit einem neuen Fotowettbewerb! Auch im Monat Januar freuen wir uns auf Eure Einsendungen. Wie es weitergeht, wisst Ihr ja - Hier geht es lang --> Klick

Excel - Aktualisierung von Formel mit absoluten Bezügen.

Chu

Martini
Registriert
15.06.07
Beiträge
658
Hallo,

ich habe ein Problem mit einem Excelsheet welches ich über ein Makro in VBA geschrieben habe. In diesem Sheet sind mehrer Arbeitsblätter und auf jedem einige Werte, die ich in einem Arbeitsblatt als übersicht zusammenfasse. Das Excel ist Microsoft Office 2003 unter Windows.

Nun zu dem Problem. In einigen Arbeitsblättern sind Bezüge auf externe Dateien die auf einem Netzlaufwerk liegen und welches jeweils unter dem selben laufwerksbuchstaben gemappt wird.
Sobald das Makro durchgelaufen ist sollte er mir den Wert aus dem externen Sheet und dessen Arbeitsblatt mit dem Bezug anzeigen z.B. eine Zahl 400 aber es erscheint nur "#BEZUG" mit einem Grünen Pfeil.

Code:
='H:\NWBACKUP\[Datei_Juno.xls]Aktivitäten_Juni'!$J$42
  1. Die Bezüge habe ich auf ihre Korrektheit überprüft :/
  2. Google spuckt haufenweise unpassende Antworten aus :/
Das seltsame ist, sobald ich einmal in die entsprechende Zelle mit dem Verweis klicke und diese wieder verlasse wird der Bezug hergestellt und danach funktioniert der Bezug wenn ich das Makro nochmals durchlaufen lasse. Auch wenn ich die Datei schliesse und erneut öffne, doch sobald ich den PC neustarte funktioniert es nicht mehr.

Was ich schon auf Lösungsvorschläge aus Google probiert habe:


  • Application.volatile - Keine Änderung
  • Zellbezug über Worksheets("name").Range("Bezug").calculate neu zu berechnen - Keine Änderung
  • Zellbezug über Worksheets..Select auszuwählen - Error 1004
  • ActiveWorkbook.RefreshAll - Keine Änderung
Ich suche bereits seit Tagen aber konnte nichts finden :/
 

Chu

Martini
Registriert
15.06.07
Beiträge
658
Also ich bin jetzt damit gelandet ;)
Code:
Sub F2toGo()
  'F2undEnter mit Sheet auswählen
  Call F2undENTER("Juni")
   ...
End Sub

Sub F2undENTER(Page As String)
'Zelle aktivieren mit F2 und ENTER
Dim Zelle As Range
Dim x As Integer
Dim i As Integer
Dim a, l As Integer

Sheets(Page).Select

a = 0
l = 1
Do While a = 0
    If Worksheets(Page).Cells(3, l + 1).Value <> "" Then
      l = l + 1
    Else
      a = 1
    End If
Loop

l = l - 1

'Anzahlzeilen des jew. Sheets
x = Cells(Rows.Count, 1).End(xlUp).Rows.Row
'Testausgabe
MsgBox x & "  " & l

For i = 1 To x
  If IsFormula(Page, i, l) = True Then
    Cells(i, l).Select
    SendKeys "{F2}", True
    SendKeys "{ENTER}", True
  End If
Next i

End Sub

Function IsFormula(Sheet As String, Zeile As Integer, Spalte As Integer) As Boolean
'Funktion überprüft ob eine Spalte eine Formel enthält
'Da jede Zelle eine Funktion darstellen soll muss sie True zurückgeben
    If Worksheets(Sheet).Cells(Zeile, Spalte).HasFormula = False Then
        IsFormula = False
    Else
        IsFormula = True
    End If
End Function