Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
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
Inhaltsverzeichnis

Suchen/Ersetzen nur auf einem Tabellenblatt?!?

Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 08:49:21
Marten
Guten Morgen,
ich komme bei dem Suchen/Ersetzen Befehl nicht weiter. Dieser sollte eigentlich nur auf ein Tabellenblatt begrenzt werden. Das funktioniert aber nicht und es wird in der gesamten Mappe ersetzt.
Hier der Code:
With Worksheets("Tabellenblatt").Range("I2:X" & LetzteZeile)
.Replace What:="text1", Replacement:="text2", LookAt:=xlPart
.Replace What:="text3", Replacement:="text4", LookAt:=xlPart
End With

Kann man das verhindern? Könnt ihr mir helfen?

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

Betreff
Datum
Anwender
Anzeige
AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 09:11:12
Nepumuk
Hallo,
das kann nicht sein. Suchen und ersetzen per VBA zeichnet sich dadurch aus, dass es nur auf den angegebenen Tabelle wirkt. Da muss bei dir was anderes nicht passen.
Gruß
Nepumuk

AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 09:21:07
Marten
Ja, keine Ahnung...
Hab es gerade nochmal manuell ausprobiert. Wenn ich Suchen/Ersetzen manuell durchführe und einmal "Durchsuchen: Arbeitsmappe" und einmal "Durchsuchen: Blatt" auswähle, gibt es im Makro-Recorder keinen Unterschied im Code.
Sub Blatt()
' Blatt Makro
Cells.Replace What:="test131", Replacement:="test111", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Sub Mappe()
' Mappe Makro
Cells.Replace What:="test131", Replacement:="test111", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

Anzeige
AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 09:31:46
Nepumuk
Hallo,
es ist tatsächlich so, dass das Ersetzen sich auf die gesamte Mappe auswirkt wenn du einmal manuell "Gesamte Mappe" eingestellt hast, egal was du als Bereich angegeben hast. Wusste ich bisher auch nicht. Das ist echt blöd, denn diese Einstellung lässt sich per Makro weder ändern noch auslesen.
Kommt sofort in meine Bug-Liste.
Gruß
Nepumuk

AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 11:36:21
Mullit
Hallo Nepumuk und Marten,
das ist echt ne böse Falle, aber ich hatte hier mal gelesen, daß das mit einem Dummy-Find-Call wenigstens zu reseten ist, ich weiß aber nicht, ob das in XlVersionen > Xl2010 geht:
Option Explicit

Public Sub test()
Call prcReplaceSheetOnly(pvstrSheetName:="Tabelle2", pvstrAddress:="A1:B10", _
  pvvntWhat:="tt", pvvntReplacement:="zz", pvenmXlLookAt:=xlPart)
End Sub

Private Sub prcReplaceSheetOnly(ByVal pvstrSheetName As String, _
  ByVal pvstrAddress As String, ByVal pvvntWhat As Variant, _
  ByVal pvvntReplacement As Variant, ByVal pvenmXlLookAt As XlLookAt)
  With ThisWorkbook
        Call .Worksheets(1).Cells(1, 1).Find(What:=vbNullString)
        Call .Worksheets(pvstrSheetName).Range(pvstrAddress).Replace( _
            What:=pvvntWhat, Replacement:=pvvntReplacement, LookAt:=pvenmXlLookAt)
  End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit

Anzeige
AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 12:17:35
Nepumuk
Hallo Mullit,
das funktioniert tatsächlich. Danke für den Tipp. Ich hab's in 2013 getestet.
Gruß
Nepumuk

AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 13:34:22
Marten
Super. Das hat geklappt. Danke!!!

AW: Suchen/Ersetzen nur auf einem Tabellenblatt?!?
23.11.2015 13:48:42
EtoPHG
Hallo Marten,
Das hängt von der letzten Einstellung (Durchsuchen: Blatt/Arbeitsmappe) im der Suchen/Ersetzen Dialog zusammen. Diese Einstellung lässt sich nur mit einem Trick/Workaround übertölpeln und zwar so:
    With Worksheets(1)
' Setzt den Suchen/Ersetzen Dialog auf Blatt zurück
.Cells.Find What:="Something stupid, that is nowhere in the f*cking Workbook"
End With

Im Anschluss an dieses Codeteil müsste deines laufen.
Gruess Hansueli

Anzeige
PS: .Cells.Find What:="" genügt natl. ;-) (owT)
23.11.2015 13:51:44
EtoPHG

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige