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

Forumthread: Nur Zellen mit Formeln als Werte kopieren

Nur Zellen mit Formeln als Werte kopieren
19.02.2008 16:10:02
Klaus
Hallo Forum,
ich habe 2 gleich große Felder mit Namen "Blau" und "Gelb",
die in einer geschützen Tabelle nebeneinander liegen und mit Werten gefüllt sind.
Ich möchte nun alle Zellwerte von Range(Blau) an die gleiche Stelle von Range(Gelb) kopieren,
allerdings nur die Zellen, die Formelwerte beinhalten – normale Texte sollen unberücksichtigt bleiben.
Ich habe schon mit SpecialCells und Locked.Cells experimentiert, aber entweder wird
alles kopiert oder nur die Zelle oben links. Bisher habe ich

Sub UnlockedCellsKopieren()
Worksheets("Archiv").Unprotect
Dim WorkRange As Range
Dim FoundCells As Range
Dim Cell As Range
Set WorkRange = Worksheets("Archiv").Range("Blau")
For Each Cell In WorkRange
If Cell.Locked = False Then
If FoundCells Is Nothing Then
Set FoundCells = Cell
Else
Set FoundCells = Union(FoundCells, Cell)
End If
End If
Next Cell
FoundCells.Select
For Each Cell In Selection.Areas
FoundCells.Offset(0, -4).Value = FoundCells.Value
Next Cell
Worksheets("Archiv").Protect
End Sub


Funktioniert aber nicht. Hat jemand von Euch eine zündende Idee?
Zum besseren Verständnis Beispielarbeitsmappe anbei
https://www.herber.de/bbs/user/50023.xls
Für Antworten Dank im voraus
Klaus

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Zellen mit Formeln als Werte kopieren
19.02.2008 16:20:41
Rudi
Hallo,

Sub UnlockedCellsKopieren()
Worksheets("Archiv").Unprotect
Dim WorkRange As Range
Dim FoundCells As Range
Dim Cell As Range
Set WorkRange = Worksheets("Archiv").Range("Blau")
For Each Cell In WorkRange
If Cell.Locked = False Then
If FoundCells Is Nothing Then
Set FoundCells = Cell
Else
Set FoundCells = Union(FoundCells, Cell)
End If
End If
Next Cell
For Each Cell In FoundCells.Cells
Cell.Offset(0, -4).Value = Cell.Value
Next Cell
Worksheets("Archiv").Protect
Worksheets("Archiv").Range("A1").Select
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Dankeschön
19.02.2008 16:26:56
Klaus
Hallo Rudi,
so dicht dran und doch so weit weg ...
Vielen Dank dafür – klappt bestens.
Gruß
Klaus

Alternative
19.02.2008 16:33:01
Original
Hi,
oder:

Sub til()
Dim c As Range
For Each c In [blau].SpecialCells(xlCellTypeFormulas, 23)
If Not c.Locked Then
c.Offset(0, -4) = c
c.Offset(0, -4) = c.Offset(0, -4).Value
End If
Next
End Sub


mfg Kurt

Anzeige
Auch gut
19.02.2008 16:49:03
Klaus
Hallo Kurt,
das ist in der Tat auch eine sehr elegante Lösung –
und sehr leicht anpassbar.
Vielen Dank auch dafür!
Gruß
Klaus

AW: Auch gut
19.02.2008 16:53:24
Daniel
Hi
der Coder ist gut, aber immer noch verbesserbar.
die zweite Zeile beim kopieren ist überflüssig, so müsste es auch funktionieren:

Sub til()
Dim c As Range
For Each c In [blau].SpecialCells(xlCellTypeFormulas, 23)
If Not c.Locked Then
c.Offset(0, -4).formula = c.value
End If
Next
End Sub


Gruß, Daniel

Anzeige
AW: Auch gut
19.02.2008 17:00:36
Original
Hi,
wenn schon sparen, dann richtig:

Sub til()
Dim c As Range
For Each c In [blau].SpecialCells(xlCellTypeFormulas, 23)
If Not c.Locked Then
c.Offset(0, -4) = c.value
End If
Next
End Sub


mfg Kurt

AW: Auch gut
19.02.2008 18:16:00
Daniel
Hi
das 2. Value könnte man dann konsequenterweise auch weglassen, oder?
Gruß, Daniel
ps. allerdings glaube ich mich daran erinnen zu können, daß die Variante mit .Formula = .Value am zuverlässigsten arbeitet, wenn man diese Methode auf grössere Zellbereiche anwendet.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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