Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro VB löschen im Zahlenformat??

Makro VB löschen im Zahlenformat?
20.04.2006 11:23:54
Ralf
Hallo,
Ich habe in einem Makro eine Überprüfung in form einer Excel Formel (WENN())ob ein Feld leer ist. Wenn das Feld Leer ist, soll es das auch bleiben.
Das Problem ist, daß die Felder zwar leer bleiben, aber Formeln, die sich auf diese Felder beziehen nur noch #WERT anzeigen...
ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""","""",RC[-2]-R9C14)"
Bin VB nicht wirklich zuhause... :-/
Danke schonmal Gruß Ralf

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro VB löschen im Zahlenformat?
20.04.2006 13:23:46
Harald
Hallo Ralf,
Versuchs mal mit Wenn Leer, dann 0
Gruss Harald
AW: Makro VB löschen im Zahlenformat?
20.04.2006 13:39:11
Ralf
Hallo,
ich hab leider vergessen zu erwähnen, daß es sich um Differenzwerte handelt. Wenn also die leeren Felder zu 0 werden, heißt das, daß die Zellen gleich dem Referenzwert sind, was ja nicht stimmt...
Ich vermute, daß VB die leeren Felder in leere Textfelder umwandelt - weil wenn man die leeren Felder löscht (so blöd das auch klingt) funktionieren die bezogenen Formeln wieder. Ein generelles Umstellen auf das Zahlenformat hat allerdings nichts gebracht...
Gruß Ralf
AW: Makro VB löschen im Zahlenformat?
20.04.2006 13:53:37
Harald
Hi,
dann wirst Du wohl mit ner Formel nicht weit kommen (wobei ich mich auch gerne eines Besseren belehren lasse)
Überprüfe die Zelle mit einer simplen If - Abfrage
If Range("A5").value = 0 then
range("a5").clearcontents
else
..
end if
Mit Range("a5").offset(1, 0).value kannst Du auch andere Zellen überprüfen. In dem Fall Offset(1, 0) wäre das eine Zeile nach unten, 0 Spalten nach rechts.
Clearcontents löscht den Zelleninhalt.
Ich lass die Frage offen, da ich den Eindruck habe, dass ich dieses Problem nicht lösungsrelevant erfasst habe.
Gruss Harald
Anzeige
AW: Makro VB löschen im Zahlenformat?
20.04.2006 15:29:42
Ralf
Hallo,
sorry für den Doppelpost.
Also ich habs versucht in jeder erdenklicher Variation - es funktioniert nicht! Bin am verzweifeln....
Also, das Feld wird zwar gelöscht, aber die Formeln die darauf verwiesen sind ergenben keine Lösungen.
Weder durch die IF Abfrage, noch durch die Wenn() Verknüpfung in Excel. Es steht nichts, aber auch garnix drin - erst wenn man ein leeres Feld durch drücken von Entf. "löscht" ist es irgendwie wieder "freigegeben".
Bin für weitere Ideen offen
hoffende Grüsse Ralf
AW: Makro VB löschen im Zahlenformat?
21.04.2006 08:07:21
Harald
Moin Ralf,
das Drücken der Entf.-Taste ist "clearcontents".
Mit welcher Formel greifst Du auf diese Felder zu ?
Ich kenn ja die Datei nicht. Unter Optionen was anderes eingestellt, verbundene Zellen vielleicht ?
Manchmal hilft es auch die Mappe neu anzulegen und/oder die Datei umstricken
Gruss Harald
Anzeige
AW: Makro VB löschen im Zahlenformat?
21.04.2006 08:49:47
Ralf
Update...
Wenn ich ganz einfach in Excel eine Zelle (LZ) leer lasse und z.B. =30+LZ rechnen lasse kommt 30 raus. Toll!
Und wenn ich eine Zelle daneben (ZD) =LZ schreibe steht in dieser Zelle 0. Also weiß er doch, daß die leere Zelle (LZ) den Wert 0 besitzt - zeigt ihn aber in ZD "0" an.
Wenn ich ein WENN() einfüge in dem Stil =WENN(LZ=0;0) kommt auch 30 raus - zeigt die Null aber an (wie oben). Bei =WENN(LZ=0;"") kommt #WERT! raus.
Daraus schließe ich, das es nicht möglich ist eine Zelle leer mit dem Wert 0 auszugeben? Kann das jemand bestätigen oder dementieren? Und gibt es eine "einfache" lösung für dieses Problem?
Danke schonmal
Gruß Ralf
Anzeige
AW: Makro VB löschen im Zahlenformat?
21.04.2006 09:09:59
Harald
Hallo
Hier ein Auszug aus der Excel-Hilfe.
Korrigieren eines Fehlerwertes vom Typ #WERT!
Dieser Fehlerwert tritt auf, wenn für ein Argument oder einen Operanden der falsche Typ verwendet wird.
Klicken Sie auf die Zelle, die den Fehler anzeigt, klicken Sie auf die daraufhin angezeigte Schaltfläche , und klicken Sie dann gegebenenfalls auf Spur zum Fehler.
Überprüfen Sie die möglichen Ursachen und Lösungen.
Mögliche Ursachen und Lösungen
Text wurde an einer Stelle der Formel eingegeben, an der eine Zahl oder ein Wahrheitswert erforderlich ist, z. B. WAHR oder FALSCH
Microsoft Excel kann den Text nicht in den richtigen Datentyp übersetzen. Stellen Sie sicher, dass in der Formel oder Funktion der erforderliche Operand bzw. das erforderliche Argument verwendet wird und dass die Zellen, auf die sich die Formel bezieht, gültige Werte enthalten. Enthält z. B. die Zelle A5 eine Zahl und die Zelle A6 den Wert Nicht verfügbar, dann gibt die Formel =A5+A6 den Fehler #WERT! aus.
Bleibt wohl nur mit 0 statt mit "" zu arbeiten....oder die Geschichte umzustricken.
Gruss Harald
Anzeige
Aaaaah....
21.04.2006 11:45:37
Ralf
Hallo,
hab es tatsächlich geschafft!
Vielen Dank nochmal für die Hilfe.
Aber jetzt ist die Prozedur zu lang!!! Ich habe 24x8 Felder... Für jedes soll gelten:
If Range("O32").Value "" Then
Range("P9").Select
ActiveCell.FormulaR1C1 = "=R[23]C[-1]-R9C3"
Selection.Copy
Range("O32").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("P9").Select
Selection.ClearContents
Else: Range("O32").Select
Selection.ClearContents
End If
Mit der ".Offset" option hab ich es versucht, aber dann überprüft er ja ob IRGENDWO ein Feld leer ist und führt eine Operation aus. Er sollte sich ja nur auf die jeweils leeren beschränken...
Wie gesagt ich kenne mich mit VB nicht wirklich viel aus :-/
Danke für die Geduld :-)
Gruß Ralf
Anzeige
AW: Aaaaarrrgggh....
21.04.2006 12:06:41
Harald
;-))
wenn's zu lang wird
a) auf select verzichten
b) eine Schleife bauen, bevor Du einen 24 X 8 langen Code tippselst
a)
If Range("O32").Value "" Then
with Range("P9")
.FormulaR1C1 = "=R[23]C[-1]-R9C3" ' oder .value = range("O32")-range("C9")
.Copy
end with
Range("O32").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Range("P9").ClearContents
Else
Range("O32").ClearContents
End If
b)
for i = 1 to 24
Beispiele für Rangeangaben in einer Schleife
Range("O32")ff.
Range("O " & 31 + i)
cells(31 + i ,15)
cells(31, 15).offset(i, 0)
restlicher Code
next i
Viel Spaß ;-)
Gruss Harald
Anzeige
AW: Makro VB löschen im Zahlenformat?
20.04.2006 14:02:57
Ralf
Hallo,
ich hab leider vergessen zu erwähnen, daß es sich um Differenzwerte handelt. Wenn also die leeren Felder zu 0 werden, heißt das, daß die Zellen gleich dem Referenzwert sind, was ja nicht stimmt...
Ich vermute, daß VB die leeren Felder in leere Textfelder umwandelt - weil wenn man die leeren Felder löscht (so blöd das auch klingt) funktionieren die bezogenen Formeln wieder. Ein generelles Umstellen auf das Zahlenformat hat allerdings nichts gebracht...
Gruß Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige