Discussion:
Alle Zellen löschen die keinen Wert und keine Formel haben
(zu alt für eine Antwort)
Daniel
2015-02-10 12:23:13 UTC
Permalink
Hallo liebe Leute,

ich habe folgendes Makro:

Sub löschen()
Dim zelle As Range
For Each zelle In Selection
If zelle.HasFormula = True Then
Else
zelle.ClearContents
End If
Next zelle

End Sub

Wie erweitere ich es so, dass nicht nur Zellen mit Formeln sondern auch
Zellen mit Werten nicht gelöscht werden. Hintergrund ist, dass ich eine
Quelldatei habe, aus der ich im weiteren Lauf über Index und Vergleich eine
andere Datei mit Werten fülle und festgestellt habe, dass beim Auslesen
optisch leerer Zellen aus der Quelldatei in der Zieldatei dann #Wert steht.
Nach vielem grübeln, habe ich herausgefunden, dass in der Quelldatei die
optisch leeren Zellen Leerzeichen beinhalten. Wenn ich diese einfach mit
"entfernen" lösche, habe ich in der Zieldatei aus das #Wert nicht mehr,
sondern einfach einen 0 - so wie ich es will. Mit dem Makro möchte ich genau
diese Zellen leer bekommen. Ich hoffe, ihr könnt mir helfen.

Viele Grüße
Daniel
Claus Busch
2015-02-10 12:38:09 UTC
Permalink
Hallo Daniel,
Post by Daniel
Wie erweitere ich es so, dass nicht nur Zellen mit Formeln sondern auch
Zellen mit Werten nicht gelöscht werden. Hintergrund ist, dass ich eine
Quelldatei habe, aus der ich im weiteren Lauf über Index und Vergleich eine
andere Datei mit Werten fülle und festgestellt habe, dass beim Auslesen
optisch leerer Zellen aus der Quelldatei in der Zieldatei dann #Wert steht.
Nach vielem grübeln, habe ich herausgefunden, dass in der Quelldatei die
optisch leeren Zellen Leerzeichen beinhalten. Wenn ich diese einfach mit
"entfernen" lösche, habe ich in der Zieldatei aus das #Wert nicht mehr,
sondern einfach einen 0 - so wie ich es will. Mit dem Makro möchte ich genau
diese Zellen leer bekommen. Ich hoffe, ihr könnt mir helfen.
dann suche nur nach Zellen mit Konstanten und wenn diese dann ein
Leerzeichen beinhalten, lasse sie löschen:

Sub Loeschen()
Dim rngC As Range

With ActiveSheet
For Each rngC In .UsedRange.SpecialCells(xlCellTypeConstants, 2)
If rngC = Chr(32) Then rngC.Clear
Next
End With
End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Daniel
2015-02-10 14:33:56 UTC
Permalink
Hallo Claus,

danke für die flotte Hilfe. Hat geholfen :)

VG Daniel

"Claus Busch" schrieb im Newsbeitrag news:mbcu2j$tj4$***@dont-email.me...

Hallo Daniel,
Post by Daniel
Wie erweitere ich es so, dass nicht nur Zellen mit Formeln sondern auch
Zellen mit Werten nicht gelöscht werden. Hintergrund ist, dass ich eine
Quelldatei habe, aus der ich im weiteren Lauf über Index und Vergleich eine
andere Datei mit Werten fülle und festgestellt habe, dass beim Auslesen
optisch leerer Zellen aus der Quelldatei in der Zieldatei dann #Wert steht.
Nach vielem grübeln, habe ich herausgefunden, dass in der Quelldatei die
optisch leeren Zellen Leerzeichen beinhalten. Wenn ich diese einfach mit
"entfernen" lösche, habe ich in der Zieldatei aus das #Wert nicht mehr,
sondern einfach einen 0 - so wie ich es will. Mit dem Makro möchte ich genau
diese Zellen leer bekommen. Ich hoffe, ihr könnt mir helfen.
dann suche nur nach Zellen mit Konstanten und wenn diese dann ein
Leerzeichen beinhalten, lasse sie löschen:

Sub Loeschen()
Dim rngC As Range

With ActiveSheet
For Each rngC In .UsedRange.SpecialCells(xlCellTypeConstants, 2)
If rngC = Chr(32) Then rngC.Clear
Next
End With
End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Lesen Sie weiter auf narkive:
Loading...