Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ersetzen von Teilen einer Zelle

Ersetzen von Teilen einer Zelle
11.09.2007 13:52:28
Teilen
Ein freundliches Hallo,
mir wurde in diesem Forum schon öfter geholfen und ich hoffe für mein jetziges Problem wieder eine Lösung zu bekommen.
Sachverhalt: In einer Zelle stehen Namen in der Schreibweise "Name, Vorname" ohne Anführungszeichen. Nun sollen die Namen in einer neuen Zelle in der schreibweise "Name_Vorname" ohne Anführungszeichen auftauchen.
Dieses ist bis dahin noch kein Problem, aber es gibt ja auch Namen mit mehrteiligen Vornamen oder Familiennamen und das sogar mit und ohne Bindestrich.
Mein Ziel ist es, alle Zeichenfolgen ", " (Komma+Leerzeichen); Leerzeichen (einzeln) und die Bindestriche jeweils durch den Fußstrich ("_") zu ersetzen.
Hintergrund:
Die so erzeugten Zellinhalte werden bei der Erstellung von Tabellenblättern per Makro, als Blattname verwendet. Dieser Blattname ist wiederum Bestandteil von Formeln, die nicht fuktionierten, wenn Leerzeichen, Komma oder Bindestriche im Namen enthalten waren.
Eventuelle hab ich auch nur etwas bei den Formeln nicht beachtet.
Folgende Formeln werden genutzt:
=SUMME(INDIREKT($D8&"!$AB$40")) $D8 enthält den Tabennblattnamen
=WENN(ISTNV(SVERWEIS(RECHTS(ZELLE("dateiname";A1);LÄNGE(ZELLE("dateiname";A1))-FINDEN("]";ZELLE("dateiname";A1)));Matrix;2;FALSCH));"";SVERWEIS(RECHTS(ZELLE("dateiname";A1);LÄNGE(ZELLE("dateiname";A1))-FINDEN("]";ZELLE("dateiname";A1)));Matrix;2;FALSCH))
letztere Formel habe ich im Forum gefunden und für meine Zwecke angepasst!
Ich bin für jeden Hinweis dankbar
Gruß Jürgen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ersetzen von Teilen einer Zelle
11.09.2007 14:05:47
Teilen
Hallo Jürgen,
kennst Du KarlMariavonWeber?
Gruß Heiko

AW: Ersetzen von Teilen einer Zelle
11.09.2007 14:37:19
Teilen
Hallo Heiko,
danke für den Tipp. Ist wirklich gut, aber wie nutze ich Ihn für meine Belange.
Das Trennen der Namen ist nicht mein Ziel, sondern das Ersetzen von unterschiedlichen Zeichen bzw. Zeichenfolgen in dem Text einer Zelle, damit z.B.
Name, Vorname-Vorname2 in Name_Vormane_Vorname2 oder
Name-Name2, Vorname Vorname2 in Name_Name2_Vorname_Vorname2 oder
Name Name2, Vorname-Vorname2 in Name_Name2_Vorname_Vorname2
umgewandelt werden,
ergo es sollen die Zeichen Komma mit folgendem Leerzeichen (ist immer die Trennung zwischen Namen und Vornamen); Leerzeichen (einzeln) und der Bindestrich
durch den Fußstrich ersetzt werden, egal an welcher Stelle sie auftauchen, wenn sie auftauchen.
Gruß Jürgen

Anzeige
AW: Ersetzen von Teilen einer Zelle
11.09.2007 14:43:39
Teilen
Hallo Jürgen,
vielleicht hilft dir das weiter:


Option Explicit
Public Sub Ersetzen()
Dim lZeile  As Long
Dim aWerte  As Variant
Dim iIndex  As Integer
'
'   z. Zt. im Array: ", "  - Komma Leerzeichen
'                    " ,"  - Leerzeichen Komma
'                    ","   - Komma
'                    " "   - Leerzeichen
'                    "-"   - Bindestrich
'
   aWerte = Array(", ", " ,", ",", " ", "-")
   With Worksheets("Tabelle1")
      For lZeile = 2 To .Range("A65536").End(xlUp).Row
         Range("B" & lZeile).Value = Trim(.Range("A" & lZeile).Value)
         For iIndex = 0 To UBound(aWerte)
            Range("B" & lZeile).Value = _
               Replace(.Range("B" & lZeile).Value, aWerte(iIndex), "_")
         Next iIndex
      Next lZeile
   End With
End Sub 


Gruß Peter

Anzeige
AW: noch etwas erweitert
11.09.2007 15:18:00
Jürgen
Hallo Peter,
herzlichen Dank für die Lösung, ist einfach super ;-)
Genau so hab ich mir das Ergebnis vorgestellt.
Meine "Namen Ein" stehen in Spalte "B" ab Zeile "9" und "Name aus" sollen in Spalte "D" ab Zeile "9", was muss ich wo ändern? Kleine Bemerkungen würden eventuelle schon reichen.
Noch einmal Danke!
Gruß Jürgen

AW: noch etwas erweitert
11.09.2007 15:25:00
Peter
Hallo Jürgen,
dann so:


Option Explicit
'
'   Ziel ist es, alle Zeichenfolgen ", " (Komma+Leerzeichen); Leerzeichen (einzeln)
'   und die Bindestriche jeweils durch den Unterstrich ("_") zu ersetzen.
'
Public Sub Ersetzen()
Dim lZeile  As Long
Dim aWerte  As Variant
Dim iIndex  As Integer
'
'   z. Zt. im Array: ", "  - Komma Leerzeichen
'                    " ,"  - Leerzeichen Komma
'                    ","   - Komma
'                    ". "  - Punkt Leerzeichen
'                    "."   - Punkt
'                    " "   - Leerzeichen
'                    "-"   - Bindestrich
'
   aWerte = Array(", ", " ,", ",", ". ", ".", " ", "-")
   Application.ScreenUpdating = False
   With Worksheets("Tabelle1") ' <== den Tabellenblattnamen ggf. ersetzen !!!
      For lZeile = 9 To .Range("B65536").End(xlUp).Row
         .Range("D" & lZeile).Value = Trim(.Range("B" & lZeile).Value)
         For iIndex = 0 To UBound(aWerte)
            .Range("D" & lZeile).Value = _
               Replace(.Range("D" & lZeile).Value, aWerte(iIndex), "_")
         Next iIndex
      Next lZeile
   End With
   Application.ScreenUpdating = True
End Sub 


Gruß Peter

Anzeige
AW: noch etwas erweitert
12.09.2007 06:50:31
Jürgen
Guten Morgen Peter,
noch einmal herzlichen Dank, klappt prima.
Gruß und einen schönen Tag
Jürgen

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige