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

Formeln bis zu einer bestimmten Spalte löschen

Formeln bis zu einer bestimmten Spalte löschen
05.10.2012 10:50:45
Lutz
Hallo zusammen,
gibt es eine Möglichkeit die Formeln in Zellen bis zu einer bestimmten Spalte zu löschen, den Wert aber bei zubehalten?
Also normalerweise (jedenfalls ist das die Lösung die ich kenne) kann man mit:
With Cells
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
Alle Formeln in einem Tabellenblatt löschen.
Jetzt möchte ich gerne alle Formeln löschen bis zu der Spalte, in der in Zeile 2 die Zahlen "2012-2016" stehen. Also angenommen "2012-2016" steht in Spalte FR dann soll vor dieser Spalte alle Formeln gelöscht werden und alle Formeln ab der Spalte FR beibehalten werden. Problematisch ist dabei, dass sich die Zahlen 2012-2016 pro Jahr verändern, d.h. im Jahr 2013 steht dann da: "2013-2017". Ich würde da in die Richtung Find (What:="Year (Date)"&"-"&"Year(Date)+4" gehen?!
Ich weiß aber nciht ob das so richtig ist.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Ich freue mich über jegliche Anregung.
Gruß Lutz

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

Betreff
Datum
Anwender
Anzeige
Nachtrag
05.10.2012 10:55:47
Lutz
Sorry hab noch was vergessen:
Die Spalte in der "2012-2016" steht ist nicht immer die gleiche, sodass man wirklich nach den Zahlen suchen muss und nicht einfach eine feste Spalte deklarieren kann.
Danke
Gruß Lutz

With .UsedRange.Cells -> .Value = .Value
05.10.2012 11:57:21
Matthias
Hallo Lutz
Also die Zellen erst kopieren ist nicht immer nötig.
Beispiel:
With ActiveSheet.UsedRange.Cells
.Value = .Value
End With
hier ein konkretes Beispiel:
https://www.herber.de/bbs/user/81994.xls
Hilft das weiter ?
Gruß Matthias

Anzeige
AW: With .UsedRange.Cells -> .Value = .Value
05.10.2012 12:15:37
Lutz
Hallo Matthias,
vielen Dank! Nur steht bei mir der Inhalt "2012-2016" in Zeile 2 (also als Spaltenüberschrift) und die Werte beginnen ab Zeile 4. Kann man das Ganze so abändern, dass bis zu der besagten Spalten, die Formeln aus den Spalten davor gelöscht werden?
Nochmals Danke!
Gruß Lutz

Sorry, keine Zeit mehr ... kwT
05.10.2012 12:27:14
Matthias

AW: Sorry, keine Zeit mehr ... kwT
05.10.2012 14:22:43
Lutz
Hallo zusammen,
kann mir denn einer sagen warum ich den Code von Matthias nicht in einer anderen Mappe (rüberkopiert) anwenden kann? Hat er vielleicht vorher irgendetwas in dem Modul oder sonstigem deklariert oder so etwas in der Art?
Danke
Gruß Lutz

Anzeige
Rückfragen und noch ein Code
05.10.2012 17:18:24
Erich
Hi Lutz,
nein, Matthias hat nichts vorher deklariert oder dergleichen.
Was genau meinst die mit "den Code von Matthias nicht in einer anderen Mappe anwenden kann"?
Was genau hast du versucht? Was ist dabei passiert? Läuft der Code (mit falschem Ergebnis?)?
Gibt es Fehlermeldungen?
Wo steht der Code? In einem Modul? In welchem?
Hast du auch die beiden ersten Zeilen des Moduls übertragen? Ich meine
Option Explicit
Public MyStrg$
Probier mal - am besten in einem anderen Modul:

Option Explicit
Sub FormelZuWertenBis()
Dim varS ' as Variant
With ActiveSheet
varS = Application.Match(Year(Date) & "-" & Year(Date) + 4, .Rows(2), 0)
If IsNumeric(varS) Then
If varS > 1 Then
With .UsedRange.Columns(1).Resize(, varS - .UsedRange.Column)
.Formula = .Value
End With
End If
End If
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
ist eigentlich erledigt ...
05.10.2012 23:22:59
Matthias
Hallo Lutz
Auszug aus Zitat:
... warum ich den Code von Matthias nicht in einer anderen Mappe (rüberkopiert) anwenden kann?
Vielleicht liegts am Zeilenumbruch
schreib das ...
MyCol = Cells.Find(What:=MyStrg, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Address

... mal alles in eine Codezeile (ohne die Unterstriche)
also so:
MyCol = Cells.Find(What:=MyStrg, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Address
Aber Du mußt nicht ewig weiter probieren, der Code von Erich macht genau das was Du brauchst !
Gruß Matthias

Anzeige
AW: ist eigentlich erledigt ...
07.10.2012 12:41:39
Lutz
Hallo Erich, hallo Matthias,
entschuldigt bitte meine späte Antwort. Ich möchte euch beiden nur kurz danken!!! Die Version von Erich hat einwandfrei funktioniert und ist genau das was ich gesucht habe.
Vielen Dank und ein schönes Restwochenende
Gruß
Lutz

327 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige