Namen mit Unterstrich in anderes Tabellenblatt übertragen
#1
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
Excel Version 2016
Top
#2
Hola,

dann schau dir mal Wechseln() an.

Gruß,
steve1da
Top
#3
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.
Excel Version 2016
Top
#4
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, " ", "_")
Top
#5
Danke sehr für deine Hilfe. Funktioniert genauso, wie ich es brauche.
Excel Version 2016
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste