Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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

Makro für Zeiche wechseln, Bereich dynamisch

Makro für Zeiche wechseln, Bereich dynamisch
03.10.2013 09:51:35
Michael
Hallo Zusammen,
habe ein Makro gefunden, was Zeichen in einem im Makro festgelegten Bereich ersetzt. Läuft auch gut. Nun wollte ich es Umbauen, das sich das Makro den Bereich Dynamisch aus der Zelle holt, bekomm ich aba nicht hin Crying or Very sad Habe versucht den "Ort" as String und dann steht in der Zelle eben G1:G150, habe auch schon mit den Eckigen Klammern probiert und er sagt ständig Objekt erforderlich.
Kann mir da bitte jemand helfen?
Hier Orginal Makro:
Sub Zeichenwechseln()
Dim C As Range, Bereich As Range
Dim Awf As WorksheetFunction
Set Awf = Application.WorksheetFunction
Set Bereich = Tabelle9.[G1:G150]
With Awf
For Each C In Bereich
C = .Substitute(.Substitute(.Substitute(C, "-", "0"), "*", "0"), "+", "0")
Next C
End With
End Sub

Hier meine Versuche : (natürlich habe ich bei Set Bereich jeweils nur eine Variante aktiviert gelassen zum testen, gehen aber beide nicht)
Sub Zeichenwechseln()
Dim C As Range, Bereich As Range
Dim Awf As WorksheetFunction
Dim Ort As String
Ort = ActiveWorkbook.Sheets("Admin").Cells(9, 42).Value
Set Awf = Application.WorksheetFunction
'Set Bereich = Tabelle9.[G1:G150]
Set Bereich = (Ort)
Set Bereich = Tabelle9.[Ort]
With Awf
For Each C In Bereich
C = .Substitute(.Substitute(.Substitute(C, "-", "0"), "*", "0"), "+", "0")
Next C
End With
End Sub

Danke & Gruß
Michi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für Zeiche wechseln, Bereich dynamisch
03.10.2013 10:13:02
ChrisL
Hi Michi
Angenommen in Tabelle1, Zelle A1 steht der String "G1:G150"
Sub t()
Dim rng As Range
Set rng = Worksheets("Tabelle9").Range(Worksheets("Tabelle1").Range("A1"))
MsgBox rng.Address
End Sub
cu
Chris

AW: Makro für Zeiche wechseln, Bereich dynamisch
04.10.2013 21:02:58
Michael
Hi Chris,
läuft Prima, danke für die Antwort, so hab ich verstanden wie ich das einbauen muss.
Hmm nun wollte ich ein Makro basteln, was einen Bereich durchsucht (z.b. G2:G150) und mir dann in einer andern tabelle alle Zeilennnummern nacheinander auflistet, die das Zeichen "-" enthalten. Habe auch nen Makro gefunden, wo es für eins klappt in ausgabe einer Msgbox. Nun wollte ich da ne Schleife einbauen und das klappt ma gar net :(
Sub tt()
Dim Zelle As Range
Set Zelle = Worksheets("Tabelle2").Range("a:A").Find(Worksheets("Tabelle1").Range("A1"))
If Not Zelle Is Nothing Then MsgBox Zelle.Row
End Sub

Danke & Gruß
Michi

Anzeige
AW: Makro für Zeiche wechseln, Bereich dynamisch
05.10.2013 14:39:53
fcs
Hallo Michi,
hier ein Makro für eine entsprechende Mehrfachsuche. Die Ergebnisse werden beginnend in der Starzelle untereinander in der Tabelle eingetragen.
Gruß
Franz
Sub tt()
Dim Zelle As Range, strAddr1 As String, lngCount As Long
Dim ZelleErgebnis As Range
With Worksheets("Tabelle1")
'Startzelle zum Eintragen der Treffer
Set ZelleErgebnis = .Range("A3")
'Daten der letzten Suche löschen
lngCount = .Cells(.Rows.Count, ZelleErgebnis.Column).End(xlUp).Row
If lngCount >= ZelleErgebnis.Row Then
.Range(ZelleErgebnis, Cells(lngCount, ZelleErgebnis.Column)).ClearContents
End If
lngCount = 0
End With
With Worksheets("Tabelle2").Range("a:A") 'zu durchsuchender Zellbereich
'Suchwert suchen - Parameter für LookIn und Lookat ggf. anpassen
Set Zelle = .Find(Worksheets("Tabelle1").Range("A1"), LookIn:=xlValues, lookat:=xlPart)
If Zelle Is Nothing Then
MsgBox "nichts gefunden"
Else
strAddr1 = Zelle.Address 'Zelle der 1. Fundstelle merken
Do
ZelleErgebnis.Offset(lngCount, 0) = Zelle.Row
lngCount = lngCount + 1
Set Zelle = .FindNext(After:=Zelle)
Loop Until Zelle.Address = strAddr1
MsgBox "Suche abgeschlossen: " & lngCount & " Fundstellen"
End If
End With
End Sub

Anzeige
AW: Makro für Zeiche wechseln, Bereich dynamisch
05.10.2013 18:10:49
Michael
Hi Franz,
klasse Makro, läuft gut und schnell. Nun noch ne Frage.Wie kann ich denn die 2 Makros kombinieren?
Würde gerne dieses Makro umbauen:
Und zwar so, das er die Zeichen nur bei den gefundenen Zellen ändert.(was mir dein Makro ja nun schön auflistet)
Kann man das irgendwie mit Select Case? oder so ne Aufzählung machen? Hab schon bissi rumprobiert, aba das hat mehr kaputt gemacht als es funktioniert hätte.
Sub Zeichenwechseln()
Dim C As Range, Bereich As Range
Dim Awf As WorksheetFunction
Dim Ort As String
Ort = ActiveWorkbook.Sheets("Admin").Cells(9, 42).Value
Set Awf = Application.WorksheetFunction
Set Bereich = Tabelle9.[G1:G150]
With Awf
For Each C In Bereich
C = .Substitute(.Substitute(.Substitute(C, "-", "0"), "*", "0"), "+", "0")
Next C
End With
End Sub

Danke & Gruß
Michi

Anzeige
AW: Makro für Zeiche wechseln, Bereich dynamisch
06.10.2013 14:31:07
fcs
Hallo Michi,
du kannst in den Fundstellen mit folgenden Ergänzungen/Anpassungen die Ersetzungen direkt machen:
mfg Franz
Anpassungen in der Do-Loop-Schleife des Such-Makros
Do
ZelleErgebnis.Offset(lngCount, 0) = Zelle.Row
lngCount = lngCount + 1
Zelle.Value = fncInhaltAendern(Zelle.Value)
Set Zelle = .FindNext(After:=Zelle)
If Zelle Is Nothing Then Exit Do
Loop Until Zelle.Address = strAddr1
'Diese Function als zusätzliches Makro in deinem Modul einfügen
Function fncInhaltAendern(ByVal varInhalt As Variant) As Variant
With Application.WorksheetFunction
fncInhaltAendern = _
.Substitute(.Substitute(.Substitute(varInhalt, "-", "0"), "*", "0"), "+", "0")
End With
End Function

Anzeige
AW: Makro für Zeiche wechseln, Bereich dynamisch
06.10.2013 21:06:53
Michael
Hi fcs,
wow alle Achtung, das Makro fetzt. Schnell und effizient.
Besten dank.
Gruß Michi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige