Anzeige
Archiv - Navigation
1304to1308
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Namensbereich formeln durch werte ersetzen

Namensbereich formeln durch werte ersetzen
20.03.2013 15:04:24
Manhartm
Hallo Zusammen
Habe eine Tabelle mit Bezügen zu einem Fremdsystem und Formeln für Summen.
Jetzt sollte ich diese Datei jeweils an die Benutzer senden, dabei muss der Formelbereich der Subsystemdaten (Bereichsnamen = Werte) als Werte ersetzt werden.
Es ist zu erwähnen, der Namebsbereich "Werte" besteht aus mehreren nicht zusammenhängenden Bereichen. Das Auswählen des Bereichs funktioniert mit Makrorekorder so: Application.Goto Reference:="Werte". Wie muss ich das jetzt ins VBA verwenden:
Habe es ohne Erfolg versucht mit

Sub Namensbereich_als_Werte()
With Range("Werte")
.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With
End Sub

Oder mit
Sub Namensbereich_als_Werte_1()
Worksheets("Namensbereich_als_Werte").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End Sub

Danke für Eure Tips
Freundliche Grüsse
Martin

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
.Value=.Value (kwT)
20.03.2013 15:11:25
Matthias

AW: Namensbereich formeln durch werte ersetzen
20.03.2013 15:14:17
Rudi
Hallo,
Sub Namensbereich_als_Werte()
With Range("Werte")
.value=.value
End With
End Sub

Gruß
Rudi

AW: Namensbereich formeln durch werte ersetzen
20.03.2013 15:25:37
Manhartm
Hallo Rudi
Das geht nur im ersten des Bereichsblöcke in allen anderen werden falsche werte eingefügt.
Aber Danke es ist der richtige Weg. Vieleicht muss ich die Bereiche ausplitten in einzelne Bereiche und dieses Makro für alle 251 Bereiche laufen lassen, oder es gibt eine neue Blitzidee.
Gruss
martin

mach ne Schleife ...
20.03.2013 15:32:13
Matthias
Hallo
Sub ForEach()
Dim Bereich As Range, Zelle As Range
Set Bereich = Range("Werte")
For Each Zelle In Bereich
Zelle.Value = Zelle.Value
Next
Set Bereich = Nothing
End Sub
Gruß Matthias

Anzeige
AW: Namensbereich formeln durch werte ersetzen
20.03.2013 16:15:43
Daniel
Hi
sollte der Namensbereich "Werte" aus mehren, nicht zusammenhängenden Zellblöcken bestehen, dann gehst du am besten über die Areas des Zellbereichs
(eine Area ist ein Teil einer Range, welcher einen reckeckigen, lückenlos zusammenhängenden Zellblock bildet):
Sub Namensbereich_als_Werte()
dim rng as Range
for each rng in Range("Werte").Areas
rng.value = rng.value
next
End Sub
Gruß Daniel

AW: Namensbereich formeln durch werte ersetzen
20.03.2013 16:27:07
Manhartm
Hallo Zusammen
Hatte noch ein Problem mit der Anbindung an die externen Daten, musste das zurückschreiben der Werte verhindern.
Hier die Lösung:
Sub ForEach()
Dim Bereich As Range, Zelle As Range
Dim Memory As Integer
Set Bereich = Range("Werte")
For Each Zelle In Bereich
Memory = Zelle.Value
Zelle.ClearContents
Zelle.Value = Memory
Next
Set Bereich = Nothing
End Sub
Danke allen für die Hilfe
Eventuell ist die .rng Lösung ebenfalls an die neuen Umstände anpassbar. Es muss jeweil der Wert ausgelesen, die Zellinhalte gelöscht und anschliessend wieder eingelesen werden. Sonst will das Programm die neuen Werte in das externe System zurückschreiben.

Anzeige
nee stop hab grad einen Fehler in meiner Datei
20.03.2013 15:14:49
Matthias
... owT

AW: Namensbereich formeln durch werte ersetzen
20.03.2013 16:17:57
firmus
Hallo Martin,
spricht etwas dagegen das gesamte Blatt (benutzter Bereich)zu markieren und mit Deiner ursprünglichen Formel zu arbeiten?
Damit wären IMMER ALLE Formeln eines Blattes durch die entsprechenden Werte in der entsprechenden Zelle ersetzt.
Gruss,
Firmus

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige