Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

x ersetzen durch wert aus bestimmter zelle

Forumthread: x ersetzen durch wert aus bestimmter zelle

x ersetzen durch wert aus bestimmter zelle
22.08.2008 09:08:22
Ingolf
hallo,
ich muß eine liste erstellen. die werte unten will ich nicht immer eingeben müssen, sondern nur dort wo ein wert stehen soll ein x machen. excel soll mir dann für jedes x den wert aus der zeile 2 der gleichen spalte eintragen. mache ich in eine zelle 2 x, dann muß der wert auch 2 mal übernommen werden.
dachte in etwa an sowas:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'wenn eingabe = x, dann erstze x durch wert in zelle (zeile 2, spalte wie zelle von zu  _
erstzenden wert)
End Sub


hab da schon ein paar if's ausprobiert, aber das funktioniert vorn und hinten nicht ;-(
danke für Hilfe,
ingo

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: x ersetzen durch wert aus bestimmter zelle
22.08.2008 09:30:09
Beverly
Hi Ingo,
versuchs mal so

Private Sub Worksheet_Change(ByVal Target As Range)
If InStr(Target, "x") > 0 Then
Target = WorksheetFunction.Rept(Cells(2, Target.Column), Len(Target))
End If
End Sub




Anzeige
AW: x ersetzen durch wert aus bestimmter zelle
22.08.2008 09:38:00
Ingolf
hallo karin,
super, vielen dank, da wär ich nie drauf gekommen ;-)
aber trotzdem noch ne kleine zusatzfrage:
wenn ich "x, x" in die zelle schreibe, dann ersetzt er mir jetzt nicht nur die x, sondern auch das komma durch den wert!?!?!
gruß,
ingo

AW: x ersetzen durch wert aus bestimmter zelle
22.08.2008 09:55:00
Beverly
Hi Ingo,
aus deinem Beitrag hätte ich nicht entnommen, dass außer den "x" noch andere Zeichen vorkommen. Es ist auch die Frage, ob die anderen Zeichen außer "x" erhalten bleiben sollen.
Hier ein Code, wo alle anderen Zeichen wegfallen

Private Sub Worksheet_Change(ByVal Target As Range)
Dim inAnzahl As Integer
If InStr(Target, "x") > 0 Then
inAnzahl = Len(Target) - Len(WorksheetFunction.Substitute(Target, "x", ""))
Target = WorksheetFunction.Rept(Cells(2, Target.Column), inAnzahl)
End If
End Sub


Wenn die anderen Zeichen erhalten bleiben sollen, dann dieser


Private Sub Worksheet_Change(ByVal Target As Range)
Dim inAnzahl As Integer
If InStr(Target, "x") > 0 Then
Target = WorksheetFunction.Substitute(Target, "x", Cells(2, Target.Column))
End If
End Sub




Anzeige
AW: x ersetzen durch wert aus bestimmter zelle
22.08.2008 10:01:15
Ingolf
hallo karin,
sorry, hatte ich wohl doch nicht klar genug beschrieben.
super. vielen dank. so wie die zweite variante hatte ichs mir vorgestellt. is doch ne stufe zu hoch für mich ;-)
danke für die hilfe und schönes wochenende,
ingo
;
Anzeige
Anzeige

Infobox / Tutorial

Excel-Zelleninhalt ersetzen durch Wert aus bestimmter Zelle


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du den Zelleninhalt ersetzen möchtest.

  2. Drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Füge den folgenden Code in das entsprechende Arbeitsblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim inAnzahl As Integer
       If InStr(Target, "x") > 0 Then
           inAnzahl = Len(Target) - Len(WorksheetFunction.Substitute(Target, "x", ""))
           Target = WorksheetFunction.Substitute(Target, "x", Cells(2, Target.Column))
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Teste die Funktion, indem du in eine Zelle ein "x" eingibst. Der Zelleninhalt sollte durch den entsprechenden Wert aus Zeile 2 ersetzt werden.


Häufige Fehler und Lösungen

  • Fehler: Der Zelleninhalt wird nicht ersetzt.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt eingefügt wurde und dass Makros in den Excel-Einstellungen aktiviert sind.
  • Fehler: Kommas oder andere Zeichen werden ebenfalls ersetzt.

    • Lösung: Verwende den folgenden Code, um nur "x" zu ersetzen und andere Zeichen zu behalten:
    Private Sub Worksheet_Change(ByVal Target As Range)
       If InStr(Target, "x") > 0 Then
           Target = WorksheetFunction.Substitute(Target, "x", Cells(2, Target.Column))
       End If
    End Sub

Alternative Methoden

Eine weitere Möglichkeit, den Zelleninhalt in Excel zu ersetzen, ist die Verwendung von Formeln. Du kannst die WENN-Funktion in Kombination mit VERGLEICH verwenden, um den Zelleninhalt dynamisch zu ersetzen.

Beispiel:

=WENN(A1="x"; $B$2; A1)

Diese Formel prüft, ob in Zelle A1 ein "x" steht und ersetzt es durch den Wert in Zelle B2.


Praktische Beispiele

  • Beispiel 1: Wenn in Zelle A3 ein "x" steht, wird der Wert aus Zelle B2 übernommen.

  • Beispiel 2: Wenn du mehrmals "x" in A3 eingibst (z.B. "x, x"), wird der Wert aus B2 entsprechend oft in die Zelle geschrieben, sodass die Excel-Zelleninhalte ersetzt werden, wenn ein bestimmter Wert vorhanden ist.


Tipps für Profis

  • Verwende Kommentare im Code, um zu erklären, was jeder Abschnitt macht. Dies erleichtert die Wartung des Codes.
  • Teste den Code in einer Kopie deiner Datei, um unerwünschte Änderungen am Original zu vermeiden.
  • Nutze die Application.EnableEvents = False und Application.EnableEvents = True, um zu verhindern, dass der Code bei jeder Änderung mehrmals ausgeführt wird, was zu unerwarteten Ergebnissen führen kann.

FAQ: Häufige Fragen

1. Was passiert, wenn ich "x" und andere Zeichen eingebe? Der Code ersetzt nur das "x" durch den Wert aus der bestimmten Zelle, wenn die zweite Variante verwendet wird.

2. Unterstützt dieser Code auch mehrere "x"? Ja, der Code zählt alle "x" in der Zelle und ersetzt sie entsprechend durch den Wert aus der angegebenen Zelle.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige