Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.07.2025 16:49:43
16.07.2025 16:28:01
16.07.2025 15:14:00
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert per VBA in mehrere andere Zellen übernehmen?

Forumthread: Wert per VBA in mehrere andere Zellen übernehmen?

Wert per VBA in mehrere andere Zellen übernehmen?
06.10.2003 12:24:08
dfluess
Hallo,

ich möchte mehrere Zellen mit Inhalt aus einer Zelle (z.B. A1) automatisch nach der Eingabe des Wertes füllen. Leider ist das nachträgliche Editieren der gefüllten Zellen wie unten angewendet dann nicht möglich.

Wie muss ich "Private Sub" Ändern, damit die Werte nur bei Eingabe übernommen werden?

DANKE!


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("B2,B4,C9,F13") = Range("A1")
End Sub

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert per VBA in mehrere andere Zellen übernehmen?
06.10.2003 12:27:55
Nike
Hi,


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
Range("B2,B4,C9,F13") = Target
End If
End Sub


Bye

Nike
AW: Wert per VBA in mehrere andere Zellen übernehmen?
06.10.2003 12:36:54
Dfluess
So einfach!
:-) Danke es funktioniert.
AW: Wert per VBA in mehrere andere Zellen übernehmen?
06.10.2003 12:49:24
DFluess
In diesem Sinne..
geht das auch zeilenweise?

Ich möchte den Inhalt aus der Zelle A1 _in die jeweils nächste Zeile_ nur dann einfügen, wenn ein Wert in einer Zelle der vorherigen Zeile eingegeben wurde.
geht das auch?
Oder noch besser: kann man den Zelleninhalt der aktuellen Zelle in die jeweils nächste Zeile nach o.g. Bedingung kopieren lassen?
Anzeige
AW: Wert per VBA in mehrere andere Zellen übernehmen?
06.10.2003 13:25:13
Nike
Hi,
klar, kopieren kannst du soviel du willst...
Ich weiß nur nicht, welche Bedingung du jetzt meinst.

Bye

Nike
AW: Wert per VBA in mehrere andere Zellen übernehmen?
06.10.2003 13:37:38
DFluess
Also:
Der Wert (Formel oder Zahl) aus A1 soll nur dann in die nächste Zeile (A2) kopiert werden, wenn in B1 ein Wert eingetragen ist... und weiter A2 nur nach A3 wenn B2 ein Wert hat u.s.w.

geht das?
Anzeige
AW: Na klar ;-)
06.10.2003 13:52:31
Nike
Hi,

das geht alles, man muß nur erst mal
aus der Beschreibung schlau werden ;-)


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Offset(0, 1) <> "" Then
Application.EnableEvents = False
Target.Copy Target.Offset(1, 0)
Application.EnableEvents = True
End If
End Sub


Bye

Nike
Anzeige
AW: Na klar ;-)
06.10.2003 14:09:08
DFluess
Das geht ja schon ganz gut, aber noch nicht ganz wie ich wollte.
Ich drücke ich mich mal wieder ungeschickt aus sorry :)

Ich möchte den Wert aus A1 nach A2 kopieren lassen, wenn in B1 ein Wert steht und ich in die nächste Zeile wechsele.
Es soll also immer der in der letzt stehenden Zeile eingetragene Wert in Spalte A in die nächste Zeile weiterkopiert werden, sobald ich in Spalte B die Eingabe abschließe.

geht das auch?
Anzeige
AW: wie jetzt?
06.10.2003 14:29:11
Nike
hi,
wie willst du's denn jetzt haben?
Erst so rum, jetzt anders rum?


Private Sub Worksheet_Change(ByVal Target As Range)
if traget.column = 2 then
If Target <> "" Then
Application.EnableEvents = False
Target.Offset(0, -1).Copy Target.Offset(1, -1)
Application.EnableEvents = True
End If
End Sub


Bye

Nike
Anzeige
AW: wie jetzt?
06.10.2003 14:49:05
DFluess
Ok, so klappt's Daaanke! :-)

allerdings musste ich die Zeile
"if traget.column = 2 then" rausnehmen
und einen Fehler mit "On Error GoSub next" abfangen der entstand, sobald ich manuell das zu kopierende Feld ändern wollte.

Was soll die Zeile "if traget.column = 2 then" bewirken?
Anzeige
AW: wie jetzt?
06.10.2003 15:06:10
DFLuess
Aha deshalb :-(
Die Prozedur sollte schon auf diese zwei Spalten beschränkt sein. Leider bekomme ich aber nur Laufzeitfehler mit dem Code..

Kannst Du bitte nochmal schauen?
AW: wo jetzt?
06.10.2003 15:17:22
Nike
Hi,
wo soll ich denn jetzt schauen?
Durch das Target = 2 wurde das eingeschränkt,
das nur Änderungen in Spalte B berücksichtigt werden...

Bye

Nike
Anzeige
AW: wo jetzt?
06.10.2003 15:28:43
DFLuess
Will ja nicht nerven aber Dein Code funzt nicht!
Ich habe wenig Erfahrungen mit VBA und kann deshalb auch nicht sehen, warum Dein Code nicht funktioniert. Ich bin doch nur ein Webdesigner und kein Excel-Profi :-(

...habe aber noch etwas gefunden was so funktioniert wie ich mir vorstelle. Leider ist in dem u.g Beispiel aber Spalte A mit Spalte B vertauscht.
Ich möchte in Spalte B die Eingabe machen und Spalte A Soll dann kopiert werden. Wie kann ich denn das nur umdrehen?


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
Range(Cells(Target.Row - 1, 2), Cells(Target.Row - 1, 256)).Copy _
Range(Cells(Target.Row, 2), Cells(Target.Row, 256))
Application.CutCopyMode = False
ERRORHANDLER:
Application.EnableEvents = True
End Sub

Anzeige
AW: wo jetzt?
06.10.2003 16:25:17
Nike
Hi,


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
On Error GoTo ERRORHANDLER
Application.EnableEvents = False
Cells(Target.Row - 1, 1).Copy _
Cells(Target.Row, 1)
Application.CutCopyMode = False
ERRORHANDLER:
Application.EnableEvents = True
End Sub


Also wenn's das nicht ich muß ich echt passen...

Bye

Nike
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Werte per VBA in mehrere Zellen kopieren


Schritt-für-Schritt-Anleitung

Um einen Wert aus einer Zelle (z.B. A1) automatisch in mehrere andere Zellen (B2, B4, C9, F13) zu übernehmen, kannst du den folgenden VBA-Code verwenden:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 1 Then
        Range("B2,B4,C9,F13") = Target
    End If
End Sub
  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das Arbeitsblatt aus, auf dem du den Code anwenden möchtest.
  3. Füge den obigen Code in das Codefenster ein.
  4. Schließe den VBA-Editor und gehe zurück zu deinem Arbeitsblatt.
  5. Gib einen Wert in Zelle A1 ein, um die anderen Zellen automatisch zu füllen.

Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht, wenn ich manuell Zellen ändere.

    • Lösung: Stelle sicher, dass der Code nur auf Änderungen in der richtigen Zelle reagiert. Verwende den Worksheet_Change-Ereignis, wie im obigen Beispiel.
  • Problem: Laufzeitfehler beim Kopieren.

    • Lösung: Füge On Error GoTo ERRORHANDLER und eine Fehlerbehandlungsroutine hinzu, um den Fehler abzufangen.

Alternative Methoden

Wenn du die Werte zeilenweise kopieren möchtest, kannst du den folgenden Code verwenden:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
        If Target <> "" Then
            Application.EnableEvents = False
            Target.Offset(0, -1).Copy Target.Offset(1, -1)
            Application.EnableEvents = True
        End If
    End If
End Sub

Dieser Code kopiert den Wert aus der linken Zelle (Spalte A) in die nächste Zeile, sobald du in Spalte B einen Wert eingibst.


Praktische Beispiele

  1. Kopieren beim Ändern von Zelle B1:
    • Gib einen Wert in B1 ein, und der Wert wird automatisch in A2 kopiert.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Not IsEmpty(Target) Then
        Application.EnableEvents = False
        Cells(Target.Row - 1, 1).Copy Cells(Target.Row, 1)
        Application.EnableEvents = True
    End If
End Sub
  1. Kopieren basierend auf einer vorherigen Bedingung:
    • Wenn in B1 ein Wert steht, wird der Wert aus A1 in A2 kopiert.

Tipps für Profis

  • Nutze Application.EnableEvents = False, um zu verhindern, dass der Code rekursiv ausgelöst wird, wenn du Zellen änderst.
  • Teste deinen Code gründlich, um sicherzustellen, dass er unter verschiedenen Bedingungen funktioniert.
  • Verwende Kommentare im Code, um die Funktionalität zu erklären, was besonders nützlich ist, wenn andere Benutzer den Code lesen.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um nur bestimmte Zellen zu beeinflussen?
Du kannst die Range-Funktion anpassen, um nur die gewünschten Zellen anzugeben, wie im ersten Beispiel.

2. Was kann ich tun, wenn der Code nicht funktioniert?
Überprüfe, ob der Code im richtigen Arbeitsblatt eingefügt wurde und dass die Makros in Excel aktiviert sind.

3. Kann ich diesen Code auf andere Zellen anwenden?
Ja, passe einfach die Zellreferenzen im Code an, um ihn für andere Zellen zu verwenden.

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