Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inputbox suchen und 2 verschiedene Zellen ersetzen

Inputbox suchen und 2 verschiedene Zellen ersetzen
30.10.2018 09:51:55
Thomas
Guten Tag,
nach zweimaliger gloreicher Hilfe aus dem Forum (an dieser Stelle nochmals vielen Dank!), möchte ich das nächste Problem, welches ich nicht gelöst bekomme hier einstellen in der Hoffnung das die kommenden Antworten vielen anderen auch helfen.
Ich möchte gerne via Inputbox (falls andere Möglichkeiten gibt bin ich dafür offen, eventuell über userform) einen Wert suchen und ersetzten, sowie die Zelle 3 Spalten weiter der gleichen Zeile mit einem anderen Wert ersetzten.
Beispiel:
In Zeile 3,9 und 89 steht in Spalte C der Wert "12345" und in Spalte F der Wert "3".
Diese sollen nun ersetzt werden.
Beim Starten des Makros soll eine Inputbox erscheinen in welche der Benutzer zuerst den zu suchenden Wert einträgt, in einer zweiten und dritten Inputbox sollen dann die Werte stehen die als Ersatz vorgesehen sind.
So soll in Zeile 3,9 und 89 in Spalte C dann 67890 stehen und in Spalte F "15".
Das Makro soll alle entsprechenden Werte der Spalte C in allen Tabellenblätter suchen ersetzten.
Versucht habe ich folgendes aber das klappt vorne und hinten nicht:
Sub Artikelnummer_und_Umrechnungsfaktor_ersetzen()
Dim Alt As Integer
Dim Neu As Integer
Dim Neu2 As Integer
Dim rngZelle As Range
Dim ws As Worksheet
Application.ScreenUpdating = False
'Inputbox mit Dialogfeld erstellen für alte Artikelnummer
Alt = InputBox("Bitte alte Artikelnummer eingeben", "Ersetzten von Artikelnummer inkluse  _
Umrechnungsfaktoren", "Alte Art. Nr.")
'Prüfen ob Eintrag vorliegt
If Alt = "" Then Exit Sub
'Inputbox und Prüfung für neue Artikelummer
Neu = InputBox("Bitte neue Artikelnummer eingeben", "Ersetzten von Artikelnummer inkluse  _
Umrechnungsfaktoren", "Neue Art. Nr.")
If Neu = "" Then Exit Sub
'Inputbox und Prüfung für neuen Umrechnungsfaktor
Neu = InputBox("Bitte den neuen Umrechnungsfaktor eingeben", "Ersetzten von Artikelnummer  _
inkluse Umrechnungsfaktoren", "Neuer Umrechnungsfaktor")
If Neu = "" Then Exit Sub
' Schleife die alle Zellen Spalte C durchsucht -> Austausch Neu gegen Alt, sowie Ersetzen von   _
_
Spalte F durch Neu2
For Each ws In Worksheets
For Each rngZelle In ws.Range(C)
If InStr(1, rngZelle.Value, Alt) Then
rngZelle.Value = Replace(rngZelle.Value, Alt, Neu)
ActiveCell.Offset(0, 3).Select
ActiveCell = Neu2
End If
Next
Next
End Sub

Als i-Tüpfelchen wäre noch eine MsgBox toll die sagt wenn kein Zahlenwert oder kein Wert Wert eingeben wurde, das dies gemacht werden muss (Inputbox geht wieder auf - quasi erzwungene Wiederholung).
Schönen gruß und vielen Dank im Voraus
Thomas

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inputbox suchen und 2 verschiedene Zellen ersetzen
30.10.2018 10:30:50
Werner
Hallo Thomas,
ein i-Tüpflechen deinerseits wäre, wenn du deine Datei hochladen würdest, damit man das nicht nachbauen muß.
Und dann noch eine Frage: Von wievielen Blättern sprichst du denn, die durchsucht werden müssen.
Gruß Werner
AW: Inputbox suchen und 2 verschiedene Zellen ersetzen
30.10.2018 10:54:42
Thomas
Hallo Werner,
anbei die Datei, hab mal die Struktur simple nachgebaut.
Tabellenblätter variieren (von 5-30), ebenso die Namen.
Daten die geändert werdenmüssen stehen aber immer in Spalten C und F.
https://www.herber.de/bbs/user/125003.xlsx
Schönen Gruß
Thomas
AW: Inputbox suchen und 2 verschiedene Zellen ersetzen
30.10.2018 11:00:07
Werner
Hallo Thomas,
ein Schritt in die richtige Richtung. Nur stellt sich die Frage, wie sehen denn deine "echten" Artikelnummern aus. Sind das "echte" Zahlen oder ist das Text.
Zeig doch mal ein paar "echte" Artikelnummern.
Gruß Werner
Anzeige
AW: Inputbox suchen und 2 verschiedene Zellen ersetzen
30.10.2018 11:15:11
Thomas
Hallo Werner,
sind alles 6-8 stellige Zahlencodes, z.B. 11260950, ebenso verhält es ish mit den Umrechungsfaktoren sind alles Zahlen zwischen 1-100.
Sprich es gibt kein Text sondern nur Zahlen.
schönen Gruß
Thomas
wenn Du mit mir nicht kommunizieren willst ...
30.10.2018 11:40:43
Matthias
wenn Du mit mir nicht kommunizieren willst,
dann schreibs mir wenigsten! :-(
Falscher DatenTyp
30.10.2018 10:34:25
Matthias
Inputbox = Text!
Also String und nicht Integer
Die Variable Neu wird im nächsten Schritt wieder überschrieben!
'Inputbox und Prüfung für neue Artikelummer
Neu = InputBox("Bitte neue Artikelnummer eingeben", "Ersetzten von Artikelnummer inkluse  _
_
Umrechnungsfaktoren", "Neue Art. Nr.")
If Neu = "" Then Exit Sub
'Inputbox und Prüfung für neuen Umrechnungsfaktor
Neu = InputBox("Bitte den neuen Umrechnungsfaktor eingeben", "Ersetzten von  _
Artikelnummer  _
inkluse Umrechnungsfaktoren", "Neuer Umrechnungsfaktor")
If Neu = "" Then Exit Sub

Neuer Umrechnungsfaktor
Wenn dort Neu2 stehen soll musst Du das ändern, sonst ist das ja sinnlos.
Bei:
For Each rngZelle In ws.Range(C)

wäre C eine Variable
Ersetze das mit:
For Each rngZelle In ws.Range("C:C")
Wobei ich nicht unbedingt die komplette Spalte(3) durchsuchen würde.
Gruß Matthias
Anzeige
Code geändert ...
30.10.2018 10:46:32
Matthias

Option Explicit
Sub Artikelnummer_und_Umrechnungsfaktor_ersetzen()
Dim Loletzte As Long
Dim Alt As String
Dim Neu As String
Dim Neu2 As String
Dim rngZelle As Range
Dim ws As Worksheet
Application.ScreenUpdating = False
'Inputbox mit Dialogfeld erstellen für alte Artikelnummer
Alt = InputBox("Bitte alte Artikelnummer eingeben", "Ersetzten von Artikelnummer inkluse  _
Umrechnungsfaktoren", "Alte Art. Nr.")
'Prüfen ob Eintrag vorliegt
If Alt = "" Then Exit Sub
'Inputbox und Prüfung für neue Artikelummer
Neu = InputBox("Bitte neue Artikelnummer eingeben", "Ersetzten von Artikelnummer inkluse  _
Umrechnungsfaktoren", "Neue Art. Nr.")
If Neu = "" Then Exit Sub
'Inputbox und Prüfung für neuen Umrechnungsfaktor
Neu2 = InputBox("Bitte den neuen Umrechnungsfaktor eingeben", "Ersetzten von Artikelnummer  _
inkluse Umrechnungsfaktoren", "Neuer Umrechnungsfaktor")
If Neu = "" Then Exit Sub
'Schleife die alle Zellen Spalte C durchsucht -> Austausch Neu gegen Alt, sowie Ersetzen von  _
Spalte F durch Neu2
For Each ws In Worksheets
Loletzte = ws.Cells(ws.Rows.Count, 3).End(xlUp).Row
For Each rngZelle In ws.Range("C1:C" & Loletzte)
If InStr(1, rngZelle.Value, Alt) Then
rngZelle.Value = Replace(rngZelle.Value, Alt, Neu)
'       welchen Sinn hat das? (deshalb mal auskommentiert)
'       ActiveCell.Offset(0, 3).Select
'       ActiveCell = Neu2
End If
Next
Next
End Sub
Gruß Matthias
Anzeige
AW: Code geändert ...
30.10.2018 12:07:00
Thomas
Hallo Matthias,
erst mal vielen Dank. Funktioniert so weit ganz gut.
Zwei Dinge:
- erstens das auskommentierte sollte dazu dienen, die Spalte F durch den Eintrag NEU2 zu ersetzten
- das Makro ersetzt alles was "Neu" enthällt, gibt es eine Möglichkeit nur einen genauen match zu ersetzten?
Freundlichen Gruß und bis hierher schon mal Danke
Thomas
eine If-Abfrage mehr ...
30.10.2018 12:32:25
Matthias
Hallo
Hier der Teil den Du ändern musst.
'Schleife die alle Zellen Spalte C durchsucht -> Austausch Neu gegen Alt, sowie Ersetzen von  _
Spalte F durch Neu2
For Each ws In Worksheets
Loletzte = ws.Cells(ws.Rows.Count, 3).End(xlUp).Row
For Each rngZelle In ws.Range("C1:C" & Loletzte)
If CStr(rngZelle.Value) = Alt Then
If InStr(1, rngZelle.Value, Alt) Then
rngZelle.Value = Replace(rngZelle.Value, Alt, Neu)
rngZelle.Offset(, 3) = Neu2
End If
    End If
Next
Next
End Sub

Das mit dem Auskommentieren war hier gemeint.
' welchen Sinn hat das? (deshalb habe ich das auskommentiert)
' ActiveCell.Offset(0, 3).Select
' ActiveCell = Neu2
Ich hab das also jetzt weggelassen.
Gruß Matthias
Anzeige
AW: Inputbox suchen und 2 verschiedene Zellen ersetzen
30.10.2018 13:18:56
Thomas
Danke vielen Dank!
Top es funktionieren Beide Varianten.
Vielen Dank wieder mal ne Menge gelernt!
@ Matthias: Klar will ich mit allen kommunizieren, deshalb hab ich auf beides geantwortet.
Danke für die Rückmeldung ... owT
30.10.2018 13:22:27
Matthias
Gerne u. Danke für die Rückmeldung. o.w.T.
30.10.2018 13:30:23
Werner

352 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige