1.9k Aufrufe
Gefragt in Tabellenkalkulation von tracer Mitglied (393 Punkte)
Hallo wehrte Experten;

ich möchte mal wieder um eure Hilfe bitten bei
einem Excel Problemchen.
In einem Tabelleblatt habe ich in Spalte B
Strings stehen, die wie folgt aussehen:
SD6A85
sd4A77

usw.
Ich möchte nun jeweils das "sd" durch EL erstzen.
Aus einem anderen Beitrga hier habe ich versucht,
mir etwas zu entnehmen, hat aber nicht funktioniert.

Option Explicit

Sub sdersetz()
Columns("B:B").Replace What:="sd", Replacement:="EL", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Am liebsten würde ich beim öffnen des Tabellenblatts das
Macro anlaufen lassen. Aber da ich hier bereits Fehlermeldungen
ohne weitere Funktion des Scripts bekomme, bin ich völlig am
Ende und weiss nicht weiter.

Fehler:
Laufzeitfehler' 1004'
Anwendungs- oder Objektdefinierter Fehler

Könnt Ihr mir hlefen ?

gruß
tracer

8 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

warum machst du es nicht einfach mit der "Ersetzen"-Funktion und suchen in Spalten.

Gruß

Helmut
0 Punkte
Beantwortet von tracer Mitglied (393 Punkte)
Hallo Helmut,

falls Du die Funktion aus dem Menü "Bearbeiten" meinst,
kann ich diese nicht brauchen, da ich in anderen Spalten
ebenfalls solche Texte stehen habe, die aber nicht verändert
werden dürfen. Rein der Inhalt der Spalte"B" müsste angepasst
werden. Soweit ich das in meinem Excel 2000 sehe, kann ich das
unter Ersetzen nicht eingrenzen.

gruß
tracer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo tracer,

selbstvertändlich kannst Du diese Funktion nutzen, sie wirkt doch immer nur auf die markierte Spalte.

Gruß
Rainer
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

Excel 2000 kann ich es nicht sagen, da excel 2003. Aber bei 2003 gibt es die Option bei ersetzen "Nur in Spalten"

Gruß

Helmut
0 Punkte
Beantwortet von tracer Mitglied (393 Punkte)
ok, werde ich probieren.
Da ich aber über das Jahr mehrere Tabellenblätter in der Form
erhalte, dachte ich, mittels eines Macros, z.B. in meiner
Persönlichen Arbeitsmappe, das ganze auf einen
"Auslöser" reduzieren zu können. Da diese Tabelle eben auch
durch mehrere Personen betreut wird und ich der letzte in
der Reihe bin, der damit dann die entsprechenden Vorgänge
einleiten muss, dachte ich hier an eine Arbeiterleichterung.

Aber trotzdem danke für eure Hinweise,

gruß
tracer
0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Hallo Tracer,

die Ersetzen-Lösungen funktioniert. Befehl ist auch über STRG H aufzurufen.

Solle es wirklich ein Makro sein, dann bitte:

Sub Makro1()
Columns("B:B").Select
Selection.Replace What:="SD", Replacement:="EL", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Gruß Maik
0 Punkte
Beantwortet von seradest Einsteiger_in (17 Punkte)
Variante 1: Excel-Suchfunktion + Ersetzen verwenden.
Variante 2: Formellösung in Excel
Variante 3: Makro

Meines erchatens nach sollte ein Makro immer die letzte Option sein. Spricht
was dagegen mit String-Funktionen in Excel zu arbeiten? Steht die zu
erstzenden Zeichenkette immer ganz links?

du könntest auch einfach die Funktionen benutzen:

=wenn(links(a1;2)="SD";ersetzen(a1;1;2;"EL");a1)

Falls nicht immer ganz links:

=wenn(nicht(istfehler(finden("sd";a1)));ersetzen(a1;finden("sd";a1);2;"EL");a1)

Der Text steht in A1.

probleme gibt es wenn die Zeichenkette auch mehr als ein mal in einer Zelle
vorkommt, dann ist eine Makrolösung die bessere Option.
0 Punkte
Beantwortet von tracer Mitglied (393 Punkte)
Guten Morgen,

@m-o-m:
Danke sehr, ich habe auch die Ersetzen Lösung probiert.
Stimmt in jedem Fall, daß sie funktioniert.
Das Script funktioniert jetzt nach etwas ändern auch.
Bei mir will es nur dann funktionieren, wenn ich SearchFormat und Replaceformat weglasse, ansonsten bekomme ich wieder den
zuvor beschriebenen Fehler. (evtl. EXCEL zu alt?)

@Seradest:
Das verstehe ich nun. Ich werde, sofern es möglich ist,
zukünftig danach vorgehen. Da ich erst seit kurzem häufiger
mit Excel zu tun habe, bitte ich um Nachsicht für meine
Fragenstellungen.

Allen nochmals vielen Dank,

gruß
tracer
...