Microsoft Excel

Herbers Excel/VBA-Archiv

Werte kopiren

Betrifft: Werte kopiren von: Luna
Geschrieben am: 13.09.2014 03:48:15

Hallo an alle, habe mal eine Frage. Folgendes Problem:
Habe einen Bereich von A2 - D2500. Jetzt möchte ich wenn in Spalte B eine Leerzelle ist das der Wert aus A nach D kopiert wird. Sollte also folgendermaßen aussehen.
Wenn z.B. Zelle B15 leer ist soll der Wert aus A15 nach D15 kopiert werden usw.
B222 leer dann A222 nach D222. Wer kann mir helfen. Ich weiß z.B. das ich so etwas mit einer Formel [=WENN(B59="";A59;D59)] lösen kann aber das ist mir zu umständlich da ich die Formel in die leeren Zellen kopieren müßte. Und da die belegten Zellen mit Formeln voll sind wäre das eine Menge Arbeit. Danke für eure Hilfe
Luna

  

Betrifft: AW: Werte kopiren von: Bernd
Geschrieben am: 13.09.2014 05:15:00

Hi,

also in Zelle D15: ~=WENN(B15="";A15;"")~


lg Bernd


  

Betrifft: hier eine VBA-Variante von: Matthias L
Geschrieben am: 13.09.2014 08:49:23

Hallo Luna

Achtung!
Evtl. vorhandene Inhalte in Spalte("D") werden überschrieben!

Option Explicit
Sub Luna()
Dim RnG As Range
For Each RnG In Range("B2:B2500").SpecialCells(xlCellTypeBlanks)
 RnG.Offset(, 2).Value = RnG.Offset(, -1).Value
Next
End Sub
Gruß Matthias


  

Betrifft: AW: hier eine VBA-Variante von: Gerd L
Geschrieben am: 13.09.2014 09:03:23

Hi Matthias!

For ..... .Areas

Einzelne zusammenhängende Bereiche kan man am Stück übertragen.


Gruß Gerd


  

Betrifft: Ok ;-) von: Matthias L
Geschrieben am: 13.09.2014 17:35:18

Hallo Gerd

Ja da hast Du völlig Recht :-)
Durch die neuen Anforderungen von Luna ist das so nun aber nicht mehr möglich.

Gruß Matthias


  

Betrifft: AW: Werte kopiren von: Luna
Geschrieben am: 13.09.2014 14:55:17

Danke euch allen für eure Mühe aber das richtige ist noch nicht dabei. Vieleicht muss ich es besser erklären.
Habe einen Bereich in meinem kleinen Programm von A2 - D2500. Jetzt möchte ich wenn in Spalte B eine Leerzelle ist das der Wert aus A nach D kopiert wird. Sollte also folgendermaßen aussehen.
Wenn z.B. Zelle B15 leer ist soll der Wert aus A15 nach D15 kopiert werden usw.
B222 leer dann A222 nach D222. Das Problem ist das es Zellen gibt die belegt sind und nicht überschrieben werden dürfen. Wenn also in z.B. B2 ein Wert steht ist die Zelle D2 auch belegt und darf nicht überschrieben werden. Ich weiß z.B. das ich so etwas mit einer Formel [=WENN(B59="";A59;D59)] lösen kann aber das ist mir zu umständlich da ich die Formel in die leeren Zellen kopieren müßte. Und da die belegten Zellen mit Formeln voll sind wäre das eine Menge Arbeit. Und von diesen Tabellen habe ich einige. Danke für eure Mühe.
Luna


  

Betrifft: Werte kopieren nur wenn Spalte(D) leer von: Matthias L
Geschrieben am: 13.09.2014 17:24:00

Hallo Luna

Option Explicit
Sub Luna2()
Dim RnG As Range
For Each RnG In Range("B2:B25").SpecialCells(xlCellTypeBlanks)
 If RnG.Offset(,2).Value="" Then RnG.Offset(, 2).Value=RnG.Offset(,-1).Value
Next
End Sub
Gruß Matthias


  

Betrifft: AW: Werte kopieren nur wenn Spalte(D) leer von: Luna
Geschrieben am: 14.09.2014 04:18:13

Danke dir Matthias. Alles klappt super.