Herbers Excel-Forum - das Archiv
Wert per VBA in mehrere andere Zellen übernehmen?

|
Betrifft: Wert per VBA in mehrere andere Zellen übernehmen?
von: dfluess
Geschrieben am: 06.10.2003 12:24:08
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
Betrifft: AW: Wert per VBA in mehrere andere Zellen übernehmen?
von: Nike
Geschrieben am: 06.10.2003 12:27:55
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
Betrifft: AW: Wert per VBA in mehrere andere Zellen übernehmen?
von: Dfluess
Geschrieben am: 06.10.2003 12:36:54
So einfach!
:-) Danke es funktioniert.
Betrifft: AW: Wert per VBA in mehrere andere Zellen übernehmen?
von: DFluess
Geschrieben am: 06.10.2003 12:49:24
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?
Betrifft: AW: Wert per VBA in mehrere andere Zellen übernehmen?
von: Nike
Geschrieben am: 06.10.2003 13:25:13
Hi,
klar, kopieren kannst du soviel du willst...
Ich weiß nur nicht, welche Bedingung du jetzt meinst.
Bye
Nike
Betrifft: AW: Wert per VBA in mehrere andere Zellen übernehmen?
von: DFluess
Geschrieben am: 06.10.2003 13:37:38
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?
Betrifft: AW: Na klar ;-)
von: Nike
Geschrieben am: 06.10.2003 13:52:31
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
Betrifft: AW: Na klar ;-)
von: DFluess
Geschrieben am: 06.10.2003 14:09:08
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?
Betrifft: AW: wie jetzt?
von: Nike
Geschrieben am: 06.10.2003 14:29:11
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
Betrifft: AW: wie jetzt?
von: DFluess
Geschrieben am: 06.10.2003 14:49:05
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?
Betrifft: AW: wie jetzt?
von: DFLuess
Geschrieben am: 06.10.2003 15:06:10
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?
Betrifft: AW: wo jetzt?
von: Nike
Geschrieben am: 06.10.2003 15:17:22
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
Betrifft: AW: wo jetzt?
von: DFLuess
Geschrieben am: 06.10.2003 15:28:43
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
Betrifft: AW: wo jetzt?
von: Nike
Geschrieben am: 06.10.2003 16:25:17
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