Clever-Excel-Forum

Normale Version: Namen mit Unterstrich in anderes Tabellenblatt übertragen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich will z.B. vom Tabellenblatt "Tabelle2" von der Spalte "A" Namen (z.B. Max Mustermann) in die Tabelle1 in die Spalte "B" übertragen. Es soll aber nicht der Name 1:1 übertragen werden, sondern es soll immer zwischen dem Vor- und Nachnamen ein "_" eingefügt werden und das Leerzeichen soll weggelöscht werden. Sprich, es sollte dann so aussehen: Max_Mustermann

Kann mir da vielleicht jemand helfen?

LG
Thomas
Hola,

dann schau dir mal Wechseln() an.

Gruß,
steve1da
Hallo!

Ich würde gerne durch VBA gleich das Leerzeichen ersetzen und durch ein "_" ersetzen.
Hier mein aktueller Code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'Wenn etwas geändert wird

If Target.Column = 5 Then 'in Spalte E
             
   If ActiveSheet.Cells(Target.Row, 1).Value <> vbNullString Then 'und Spalte A nicht leer ist
             
           With ThisWorkbook.Worksheets("Benutzerdaten")
               strFind = ActiveSheet.Cells(Target.Row, 1).Value
           End With
                     
           With ThisWorkbook.Worksheets("Namen")
               Set rngFind = ThisWorkbook.Worksheets("Namen").Columns(2).Find(what:=strFind, LookAt:=xlPart) 'suche Wert aus Spalte A in Top30 - Teil 1 in Spalte B
               If Not rngFind Is Nothing Then 'Wenn Wert existiert dann'
               
               'ab hier wird ein neuer Name eingetragen'
             
               Else 'sonst

                   With ThisWorkbook.Worksheets("Namen")
                       q = .Cells(5, 1).CurrentRegion.Rows.Count + 5
                       
                       .Cells(q, 1).FormulaR1C1 = "=RANK(RC[5],C[5])"
                       .Cells(q, 2).FormulaR1C1 = strFind
                       .Cells(q, 3).FormulaR1C1 = "P"
                       .Cells(q, 5).FormulaR1C1 = "1000"
                       .Cells(q, 6).FormulaR1C1 = "=ROUND((RC[-2]/RC[-1]*100),2)"
                       .Cells(q, 7).FormulaR1C1 = Date
                       .Cells(q, 4).FormulaR1C1 = "0"
                     
                   End With
               End If
           End With
                         
   End If
End If
   
End Sub

Es geht um den Wert "strFind", der soll verändert werden.
Hallo, :19:

wenn du keine Formel in die Zelle schreibst, musst du auch nicht "FormulaR1C1" nehmen - schreibe die Zeile so: :21:

Code:
.Cells(q, 2).Value = Replace(strFind, " ", "_")
Danke sehr für deine Hilfe. Funktioniert genauso, wie ich es brauche.