Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1648to1652
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
suchen und ersetzten
09.10.2018 20:28:35
Jens
Hallo zusammen,
ich suche nach einen Makro oder VBA um in einer Arbeitsmappe mit ca. 250 Tabellenblätter "alte" Nummern durch "neue" zu ersetzten.
Im Tabellenblatt "umwandeln" befindet sich in Spalte A, die zu suchende alte Nummer.
Im gleichen Tabellenblatt in Spalte B befindet sich die neue zu ersetztende Nummer.
Könnte mir jemand hier helfen?
Vielen Dank im vorraus.
Gruß Jens

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen und ersetzten
09.10.2018 20:40:05
onur
Poste mal eine Beispieldatei mit "umwandeln" und 2-3 Tabellenblättern, damit man sieht, wie die anderen Blätter aufgebaut sind.
AW: suchen und ersetzten
09.10.2018 20:45:13
Sepp
Hallo Jens,
ungetestet.
Sub replaceNumbers()
  Dim varNumber As Variant
  Dim objWS As Worksheet
  Dim lngIndex As Long

  On Error GoTo ErrorHandler
  With Application
    .Calculation = xlCalculationManual
    .EnableEvents = False
  End With
  With Sheets("umwandeln")
    varNumber = .Range("A1:B" & .Cells(.Rows.Count, 1).End(xlUp).Row)
  End With

  For Each objWS In ThisWorkbook.Worksheets
    If objWS.Name <> "umwandeln" Then
      For lngIndex = 1 To Ubound(varNumber, 1)
        If IsNumeric(varNumber(lngIndex, 1)) Then
          objWS.Cells.Replace What:=varNumber(lngIndex, 1), Replacement:=varNumber(lngIndex, 2), _
            LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False
        End If
      Next
    End If
  Next

ErrorHandler:
  If Err.Number <> 0 Then MsgBox Err.Description
  With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
  End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: suchen und ersetzten
09.10.2018 21:05:12
Jens
Hallo Sepp,
vielen Dank für deine schnelle Antwort. Leider bekomme ich eine Fehlermeldung.
Ich habe ein Beispiel vom Aufbau der Arbeitsmappe hochgeladen...
Gruß Jens
AW: suchen und ersetzten
09.10.2018 21:28:42
Sepp
Hallo Jens,
wie lautet den die Fehlermeldung?
Bei mir läuft es ohne Probleme, habe nur einen kleinen Excel-Bug "umschifft".
Sub replaceNumbers()
  Dim varNumber As Variant
  Dim objWS As Worksheet, rng As Range
  Dim lngIndex As Long

  On Error GoTo ErrorHandler
  With Application
    .Calculation = xlCalculationManual
    .EnableEvents = False
  End With
  With Sheets("umwandeln")
    Set rng = .Cells.Find("*")
    varNumber = .Range("A1:B" & .Cells(.Rows.Count, 1).End(xlUp).Row)
  End With

  For Each objWS In ThisWorkbook.Worksheets
    If objWS.Name <> "umwandeln" Then
      For lngIndex = 1 To Ubound(varNumber, 1)
        If IsNumeric(varNumber(lngIndex, 1)) Then
          objWS.Cells.Replace What:=varNumber(lngIndex, 1), Replacement:=varNumber(lngIndex, 2), _
            LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False
        End If
      Next
    End If
  Next

ErrorHandler:
  If Err.Number <> 0 Then MsgBox Err.Description
  With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
  End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: suchen und ersetzten
09.10.2018 21:39:53
Sepp
Hallo Jens,
dann versuche es so.
Sub replaceNumbers()
  Dim varNumber As Variant
  Dim objWS As Worksheet, rng As Range
  Dim lngIndex As Long

  On Error GoTo ErrorHandler
  With Application
    .Calculation = xlCalculationManual
    .EnableEvents = False
  End With
  With Sheets("umwandeln")
    Set rng = .Cells.Find("*")
    varNumber = .Range("A1:B" & .Cells(.Rows.Count, 1).End(xlUp).Row)
  End With

  For Each objWS In ThisWorkbook.Worksheets
    If objWS.Name <> "umwandeln" Then
      For lngIndex = 1 To Ubound(varNumber, 1)
        If IsNumeric(varNumber(lngIndex, 1)) Then
          objWS.Cells.Replace What:=varNumber(lngIndex, 1), Replacement:=varNumber(lngIndex, 2), _
            LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False
        End If
      Next
    End If
  Next

ErrorHandler:
  If Err.Number <> 0 Then MsgBox Err.Description
  With Application
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
  End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
Nein hast du nicht ..
09.10.2018 21:15:07
Werner
Hallo Jens,
... zumindest ist nichts in deinem Beitrag.
Du musst den Link, der von der Forensoftware erstellt wird kopieren und in deinen Beitrag einfügen.
Gruß Werner
AW: Nein hast du nicht ..
09.10.2018 21:18:50
Jens
Hallo Werner,
ist bereits geschehen... sorry
AW: suchen und ersetzten
10.10.2018 08:10:27
Jens
Hallo Sepp,
es funktioniert einwandfrei. Zuhause war mein Excel wohl zu alt. Sorry...
Vielen lieben Dank!
Eine Sache habe ich noch. In den alten und neuen Nr. können sich auch Buchstaben befinden.
Hier funktioniert die Ersetzung leider nicht. Vielleicht könntest du nochmal den Code ansehen?
Gruß Jens
Anzeige
AW: suchen und ersetzten
10.10.2018 17:19:57
onur
Sepp?
Mache einfach aus
Dim AltNeu() As Long

das:
Dim AltNeu()

AW: suchen und ersetzten
10.10.2018 15:11:07
Peter
Hallo Jens,
hier noche eine Lösung.
Private Sub CommandButton1_Click()
Dim Nrt As Integer, i As Integer, e As Object
For Nrt = 2 To Sheets("Umwandeln").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ThisWorkbook.Worksheets.Count
For Each e In Sheets(i).Range("A1:A" & Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row)
If e.Value = Sheets("Umwandeln").Cells(Nrt, 1).Value Then
e.Value = Sheets("Umwandeln").Cells(Nrt, 2).Value
End If
Next e
Next i
Next Nrt
End Sub
Code einem Button auf Tabelle"Umwandeln" eingeben.
Vieleicht kannst Du damit was anfangen.
Gruß
Peter (hpo)
Anzeige
AW: suchen und ersetzten
10.10.2018 16:34:45
Jens
Hallo Peter,
der Code funktioniert mit Zahlen, aber nicht mit Buchstaben.
Die in Spalte A (alte Nummer) können Buchstaben / Zahlenkombinationen enhalten.
Beispiel :
Spalte A (alt) = BK505050
Spalte B (Neu) = 1007070
Vielen Dank für deine Bemühungen.
Gruß Jens
AW: suchen und ersetzten
11.10.2018 12:04:13
Peter
Hallo Jens,
probier mal diesen Code:
Private Sub CommandButton1_Click()
Dim Nrt As Integer, i As Integer, e As Object
For Nrt = 2 To Sheets("Umwandeln").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ThisWorkbook.Worksheets.Count
For Each e In Sheets(i).Range("A1:A" & Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row)
If CStr(e.Value) = CStr(Sheets("Umwandeln").Cells(Nrt, 1).Value) Then
e.Value = Sheets("Umwandeln").Cells(Nrt, 2).Value
End If
Next e
Next i
Next Nrt
End Sub
Viele Grüße
Peter (hpo)
Anzeige
AW: suchen und ersetzten
11.10.2018 12:36:39
jens
Hallo Peter,
funktioniert leider nicht.
Der Code wandelt nur reine zahlen um. Nicht in verbindung mit Buchstaben.
Beispiel war: Alt = BK505050
Danke nochmals
Gruß Jens
AW: suchen und ersetzten
11.10.2018 12:42:51
Peter
Hallo Jens,
dann lade doch mal einen Teil deiner original Datei hoch.
Ich habe den Code mit Buchstaben und Zahlenkombinationen ausprobiert.
Der Code hat sowohl nur Zahlen als auch Zahlen-Buchstabenkombinationen einwandfrei geändert.
Um hier wieter helfen zu können wird dann doch ein Teil der Originaldatei benötigt.
Viele Grüße
Peter (hpo)
AW: suchen und ersetzten
11.10.2018 20:14:47
Jens
Hallo Peter,
die Originaldatei kann ich leider nicht zur Verfügung stellen. Aber hier findest du
eine gekürze Form: https://www.herber.de/bbs/user/124575.xls
Kann man den Code umschreiben, so das er nach ein Text sucht und nicht nach Zahl?
Im Blatt = "umwandeln" ist in Spalte A die alte Nr.
in Spalte B die dazugehörige neue Nr.
In Blatt Ford / BMW muss in Spalte A dieses geändert werden.
Danke nochmal.
Gruß Jens
Anzeige
AW: suchen und ersetzten
15.10.2018 12:44:23
Peter
Hallo Jens,
hier Deine Datei in dem ich nur meinen Code eingefügt habe.
Bei mir werden alle Nummern mit und ohne Buchstaben durch die neuen Nummer ersetzt.
https://www.herber.de/bbs/user/124627.xls
Viele Grüße
Peter (hpo)
AW: suchen und ersetzten
15.10.2018 19:13:16
Jens
Hallo Peter,
ich habs hin bekommen.
Vielen vielen Dank
Gruß Jens

254 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige