Supportnet / Forum / Tabellenkalkulation
Makro mit Formula und Range
Frage
Hallo Supporter,
ich habe folgendes Problem:
Der Zellinhalt aller geöffneten Dokumente und Worksheets soll, wenn er ein "=", ein "[" und ein "S:" an der jeweiligen Stelle enhält, verändert werden (in Excel).
Folgendes Makro macht das auch, aber nur manchmal:
Sub Pfadaenderung()
Dim R As Range
Dim i As Integer
Dim Length As Integer
Dim Path_old As String
For Each wb In Workbooks
For Each ws In Worksheets
ActiveWorkbook.Save
For Each R In ws.UsedRange
If Left(R.Formula, 1) = "=" And InStr(R.Formula, "[") > 1 And InStr(R.Formula, "S:") > 1 Then
Path_old = R.Formula
i = InStr(R.Formula, ":")
Length = Len(R.Formula)
Path = Left(Path_old, i - 2) & "J:" & Right(R.Formula, Length - i)
R.Formula = Path
Else
End If
Next R
Next ws
ActiveWorkbook.Close Savechanges:=True
Next wb
End Sub
Wenns nicht klappt, kommt folgende Meldung:
"Laufzeitfehler: '-214...'"
"Die Methode 'Formula' für das Objekt 'Range' ist fehlgeschlagen"
Kann mir jemand helfen?
Danke schon im voraus.
Paulo
Antwort 1 von gast89
Hallo Zusammen
Ich möchte das es mier bei der wahl einer Zelle (z Bsp. A1) automatisch mein Macro ausführt.
Die Wahl der Zelle ist meist mit dem Tabulator kann aber auch durch die maus etc. gewählt werden.
Ist es möglich Macros den Zellen zuzuweisen
Vielen Dank für die Hilfe
Roger
Ich möchte das es mier bei der wahl einer Zelle (z Bsp. A1) automatisch mein Macro ausführt.
Die Wahl der Zelle ist meist mit dem Tabulator kann aber auch durch die maus etc. gewählt werden.
Ist es möglich Macros den Zellen zuzuweisen
Vielen Dank für die Hilfe
Roger
Antwort 2 von fedjo
Hallo Roger,
in das Codefenster der Tabelle einfügen:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address = "$A$1" Then
'Call dein Makro
Range("B1") = "A1"
End If
End Sub
Gruß
fedjo
in das Codefenster der Tabelle einfügen:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address = "$A$1" Then
'Call dein Makro
Range("B1") = "A1"
End If
End Sub
Gruß
fedjo
Antwort 3 von Saarbauer
Hallo @Paulo87,
hast du mal das Makro in Einzelschritten abgearbeitet?
In welcher Zeile kommt den die Fehlermeldung?
Hallo @gast89,
du solltest dein Problem grundsätzlich nicht in anderen Threads abhandeln, sondern eine neuen adfür eröffnen.
Gruß
Helmut
hast du mal das Makro in Einzelschritten abgearbeitet?
In welcher Zeile kommt den die Fehlermeldung?
Hallo @gast89,
du solltest dein Problem grundsätzlich nicht in anderen Threads abhandeln, sondern eine neuen adfür eröffnen.
Gruß
Helmut
Antwort 4 von Paulo87
Hallo Helmut,
vielen Dank schonmal für deine Antwort.
ja, das hab ich gemacht.
Der Fehler kommt in der fett geschriebenen Zeile:
Ich weiß nicht mehr weiter...
Finde es total seltsam, dass es manchmal ohne Probleme klappt und beim nächsten Mal wieder der Fehler auftritt...
Danach stürzt Excel auch ab mit Ausnahmefehler und so.
Mit freundlichen Grüßen
Paulo87
vielen Dank schonmal für deine Antwort.
ja, das hab ich gemacht.
Der Fehler kommt in der fett geschriebenen Zeile:
Sub Pfadaenderung()
Dim R As Range
Dim i As Integer
Dim Length As Integer
Dim Path_old As String
For Each wb In Workbooks
For Each ws In Worksheets
ActiveWorkbook.Save
For Each R In ws.UsedRange
If Left(R.Formula, 1) = "=" And InStr(R.Formula, "[") > 1 And InStr(R.Formula, "S:") > 1 Then
Path_old = R.Formula
i = InStr(R.Formula, ":")
Length = Len(R.Formula)
Path = Left(Path_old, i - 2) & "J:" & Right(R.Formula, Length - i)
[b]R.Formula = Path
Else
End If
Next R
Next ws
ActiveWorkbook.Close Savechanges:=True
Next wb
End Sub
Ich weiß nicht mehr weiter...
Finde es total seltsam, dass es manchmal ohne Probleme klappt und beim nächsten Mal wieder der Fehler auftritt...
Danach stürzt Excel auch ab mit Ausnahmefehler und so.
Mit freundlichen Grüßen
Paulo87
Antwort 5 von Paulo87
Super...jetzt zeigts die nicht fett an...
ist die Zeile.
R.Formula = Path
ist die Zeile.
Antwort 6 von Saarbauer
hallo,
hast du mal nachgesehen was in Path drinsteht wenn es funktioniert und wenn es nicht fuktioniert?
So kann ich auf anhieb in der Zeile kein Fehler entdecken
Gruß
Helmut
hast du mal nachgesehen was in Path drinsteht wenn es funktioniert und wenn es nicht fuktioniert?
So kann ich auf anhieb in der Zeile kein Fehler entdecken
Gruß
Helmut
Antwort 7 von Paulo87
Hallo Helmut,
hab jetzt mal überprüft was in Path drinsteht.
Seitdem ist der Fehler nicht mehr aufgetaucht. Ist sehr komisch...
Aber so lange es so bleibt passts ja ;)
Danke dir auf jeden Fall.
Viele Grüße
Paulo87
hab jetzt mal überprüft was in Path drinsteht.
Seitdem ist der Fehler nicht mehr aufgetaucht. Ist sehr komisch...
Aber so lange es so bleibt passts ja ;)
Danke dir auf jeden Fall.
Viele Grüße
Paulo87

