Hier anmelden!

Willkommen bei Excellent

Externe Bezüge auflösen

Beitrag verlinken am 05.04.2008 geschrieben
  • nach oben
Hallo,
ich habe reichlich externe Bezüge der Form ='G:\Projekte\[Datenerfassung.xls]Bereich1'!$G$30 und möchte daraus interne Bezüge der Form ='Bereich'!$G$30 machen. Mein VBA-Code

Public Sub ExterneBezuegeLoesen()
Dim strFormula As String
Dim iPos As Integer
Dim iLen As Integer
Dim iRow As Integer
Dim iCol As Integer
Dim c As Object

Cells().Select
For Each c In Selection
If c.HasFormula = True Then
strFormula = c.Formula
iPos = InStr(1, strFormula, "]")
If iPos > 0 Then
iLen = Len(strFormula)
strFormula = "='" & Mid(strFormula, iPos + 1, iLen - iPos)
c.Formula = strFormula
End If
End If
Next c
End Sub

Es läuft soweit durch, jedoch schreibt die Zeile c.Formula=strFormula einen String in die Zelle, der nicht als Formel interpretiert wird, sondern als String. Wer kann mir meinen Fehler zeigen?

Gruß - Dirk Hornauer
Beitrag verlinken am 05.04.2008 geschrieben
  • nach oben
Hallo Dirk,

versuch mal nach dem Umsetzen nochmals mit FormulaLocal drüber zu gehen.

Public Sub ExterneBezuegeLoesen()
Dim strFormula As String
Dim iPos As Integer
Dim iLen As Integer
Dim iRow As Integer
Dim iCol As Integer
Dim c As Object

Cells().Select
For Each c In Selection
If c.HasFormula = True Then
strFormula = c.Formula
iPos = InStr(1, strFormula, "]")
If iPos > 0 Then
iLen = Len(strFormula)
strFormula = "='" & Mid(strFormula, iPos + 1, iLen - iPos)
c.Formula = strFormula
'******hier drüber
strFormula.FormulaLocal=strFormula.FormulaLocal
'***

End If
End If
Next c
End Sub

Gruß und schönes WE
Andreas
Beitrag verlinken am 05.04.2008 geschrieben
  • nach oben
...vielleicht genügt ja auch schon ein
c.Formula = strFormula
c.ClearFormats
End If
...........................................
Bei mir hat Dein Makro nämlich einwandfrei funktioniert .....

Mit freundlichsten Grüßen

Peter Murschall
Beitrag verlinken am 05.04.2008 geschrieben
  • nach oben
Danke an Andreas und Peter für die Unterstützung. Leider bringen weder das "noch mal drübergehen mit FormulaLocal" noch das "c.ClearFormats" bei mir den gewünschten Erfolg. Nach wie vor sehe ich den korrekt umgewandelten String in der Zelle, jedoch wird er nicht als Formel interpretiert, denn dann müsste ich ja in der Zelle c den Wert der referenzierten Zelle sehen.

Gruß - Dirk
Beitrag verlinken am 05.04.2008 geschrieben
  • nach oben
Hallo Dirk,
seltsam, siehst Du in der Berbeitungsleiste ein Hochkomma vor der Formel ?
Gruß
Andreas
Beitrag verlinken am 05.04.2008 geschrieben
  • nach oben
Ja, wahrlich seltsam.
Überprüf doch mal das Format der Zelle und die Option Berechnung.
Beitrag verlinken am 06.04.2008 geschrieben
  • nach oben
Danke für Eure Anregungen. Ich habe die Tipps überprüft:

Die Bearbeitungszeile zeigt
='Bereich_GB'!$O$30

Die Formatierung ist "Standard", habe aber auch schon "Text" und "Zahl" ohne Erfolg getestet. Die Option Berechnung steht auf "automatisch".

Einen schönen Sonntag - Dirk
Beitrag verlinken am 06.04.2008 geschrieben
  • nach oben
Hallo Dirk,
das Abostroph macht mich ein wenig stutzig nach dem =-Zeichen

='Bereich_GB'!$O$30

Was passiert denn wenn Du den Bereich mit diesen Formeln markierst

Bearbeiten: Siuche nach =' ersetzen durch =
Beitrag verlinken am 06.04.2008 geschrieben
  • nach oben
Dirk-Lothar Dr. Hornauer:

Die Bearbeitungszeile zeigt
='Bereich_GB'!$O$30

und was passiert, wenn Du nach dem Einstellen der Formatierung auf
Standard, in der Zelle die Tasten 'F2' 'Enter' drückst ?

Mit freundlichsten Grüßen

Peter Murschall

Beitrag verlinken am 07.04.2008 geschrieben
  • nach oben
Nochmals vielen Dank an Andreas und Peter für das "Mitkämpfen".

Das führende Hochkomma schließt zusammen mit dem Hochkomma vor dem Ausrufezeichen den Blattnamen ein. Richtig ist, dass bei Blattnamen ohne Leerzeichen das Hochkomma-Paar entfallen kann. Aber auch das hatte ich schon ohne Erfolg ausprobiert.

Aber jetzt kommt's: Wenn man mit F2 nochmals in den Editiermodus geht und mit Return abschließt, dann ist die Welt in Ordnung!!!! Peter, danke für den Tipp! Wie in aller Welt kommt man auf sowas? Und wie bringe ich das meinem VBA-Code bei?

Herzlichen Gruß und einen guten Start in die Woche
Dirk
  • Statistiken: 14 Beiträge | 1753 Aufrufe

Hier anmelden

Du bist noch kein Mitglied der Community?

Community-Details

  • Suche nach:

  • Community-Name

    Excellent
    Die Excel-Community von ExcelDaily

  • Dein Gastgeber ist

    Martin Althaus

  • Online seit

    17.03.2008

  • Mitglieder

    454

  • Sprache

    Deutsch

powered by mixxt
  • v1.1.1
  • (highfive)