Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Suchen und Ersetzen
27.03.2008 13:43:22
David
Hallo Excel-Gemeinde.
Ich habe mal wieder eine Frage. Folgender Code:

Range(Cells(9, Spalte), Cells(78, Spalte)).Replace What:="WENN", Replacement:="=WENN",  _
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


wurde per Makrorecorder aufgezeichnet. Ich habe nur die "Range" geändert, da dort vorher "Cells" stand. Allerdings funzt diese Zeile nicht. Es kommt zwar keine Fehlermeldung, aber die gewünschte Aktion passiert auch nicht.
Wenn ich das Ganze über die Excel-Ersetzen-Funktion manuell ausführe geht es. Am definierten Bereich kann es eigentlich nicht liegen. Ich habe testhalber einen Select-Befehl ausprobiert, da wurde auch genau die gewünschte Range ausgewählt.
Zum Hintergrund noch kurz: Ich habe in einigen Zellen die Formeln, die wegen externer Verweise die Tabelle sehr langsam machte, in der Form geändert, dass ich das "=" am Anfang weggenommen habe. Wenn dann der entsprechende Monat kommt, soll in den Zellen das "WENN" wieder durch "=WENN" ersetzt werden, damit die Formeln wieder "da" sind.
Hat jemand eine Idee, warum das per Excel geht, per VBA aber nicht?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Ersetzen
27.03.2008 13:50:00
Uwe
Hi,
also so:

Sub test
Dim spalte As Integer
spalte = 1
Range(Cells(9, spalte), Cells(78, spalte)).Replace What:="WENN", Replacement:="=WENN", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub


klappt das bei mir.
Wie hast DU denn die Variable Spalte definiert?
Gruß
Uwe
(:o)

AW: Suchen und Ersetzen
27.03.2008 13:57:05
David
Spalte ist als "long" definiert und wird auch korrekt ermittelt, das habe ich überprüft.
Der Wert wird ja schon vorher verwendet in mehreren Zeilen nach dem Muster

With Range(Cells(47, Spalte), Cells(54, Spalte))
.Formula = .Value


und das funzt ganz prima.
Danach erhöhe ich nur den Wert mit


Spalte = Spalte + 1


damit die nächste Spalte genommen wird und dann soll die fragliche Zeile durchlaufen. Das geht net...

Anzeige
AW: Suchen und Ersetzen
27.03.2008 20:00:03
Horst
Hi,
lad mal eine Beispielmappe hoch, in der das nicht klappt.
mfg Horst

AW: Suchen und Ersetzen
28.03.2008 07:58:00
David
Hier ist die besagte Mappe, um einiges abgespeckt (insbesondere die ganzen externen Verweise habe ich umgestellt), aber das Makro geht trotzdem nicht.
https://www.herber.de/bbs/user/51097.xls
Das Makro soll in der Spalte März die Formeln durch Werte ersetzen (klappt) und in der Spalte April dann in allen Zellen das "WENN" durch "=WENN" ersetzen, damit aus diesen Zellen wieder "richtige" Formeln werden.
Soweit ich das an der Hintergrundaktivität in der Mappe erkennen kann, durchsucht er auch die Zellen, aber der Ersetzen-Vorgang wird nicht durchgeführt, ohne daß ich erkenne kann, warum.
Wäre schön, wenn da jemand eine Erklärung für hätte.
Danke.

Anzeige
AW: Suchen und Ersetzen
28.03.2008 09:55:00
Renee
Hi David,
Das ganze Blatt, schaut mir irgendwie ENGLISCH aus.
Dein Code könnte zwar in einer deutschen EXCEL-Version klappen (ersetzen WENN durch =WENN) wird aber in jeder anderen Sprachversion von EXCEL versagen!
GreetZ Renée

AW: Suchen und Ersetzen
28.03.2008 10:01:13
David
Das sollte eigentlich kein Grund sein, da ich diesbezüglich noch nie Schwierigkeiten haben. Wir haben hier zwar auch englische/amerikanische Sheets, aber dieses ist auf jeden Fall originär ein deutsches. Und auch mein Excel ist eine deutsche Version.
Alle sonstigen Befehle und Formeln gebe ich ja auch in deutsch ein...

AW: Suchen und Ersetzen
29.03.2008 22:28:17
Tino
Hallo,
habe hier mal eine andere Version aufgebaut.

Sub TestFormel()
Dim Zelle As Range, SuchB As Range, a As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set SuchB = Range(Cells(1, 1), Cells(78, 2)) 'Suchbereich
For a = 1 To Application.WorksheetFunction.CountIf(SuchB, "WENN*")
If a = 1 Then
Set Zelle = SuchB.Find(What:="WENN*", After:=ActiveCell, LookIn:=xlValues)
Zelle.FormulaLocal = "=" & Zelle.Value
Else
Set Zelle = SuchB.FindNext(Zelle)
Zelle.FormulaLocal = "=" & Zelle.Value
End If
Next a
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub


Gruß
Tino

Anzeige
AW: Suchen und Ersetzen
08.04.2008 12:13:00
David
Ich habe das Problem auf eine andere Art gelöst und brauche somit das Makro nicht mehr. Trotzdem danke.
Ich werde mir die Lösung aber in mein privates Archiv legen, vielleicht brauche ich ja mal noch irgendwann etwas in der Art.
Gruß
David

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige