Herbers Excel-Forum - das Archiv

Wert per VBA in mehrere andere Zellen übernehmen?

Bild

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


Bild

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
Bild

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.
Bild

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?
Bild

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
Bild

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?
Bild

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
Bild

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?
Bild

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
Bild

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?
Bild

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?
Bild

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
Bild

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


Bild

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
 Bild
Excel-Beispiele zum Thema " Wert per VBA in mehrere andere Zellen übernehmen?"
Suche über mehrere Tabellen Mehrere Schaltflächen für ein Makro
Suchbegriff über mehrere Tabellenblätter suchen. Benutzerdefinierte SVERWEIS-Funktion über mehrere Bereiche
Druck aus mehreren Tabellenblättern auf eine Druckseite AutoFilter über mehrere Arbeitsblätter setzen
Daten von mehreren Blättern auf ein Druckblatt Prozentuale Erhöhung über mehrere Arbeitsblätter hinweg
Werte in mehreren Spalten sortieren Textreihe auf mehrere Spalten mit fester Seitenlänge verteilen