Hallo Ben,
wenn die Nullen in den Zellen als Wert stehen und nicht das Ergebnis bisher dort erfasster Formeln sind, dann so: Sub Nullen_durch_Formeln_ersetzten() 'Formel anpassen 'gilt hier für Spalte A Columns("A:A").Replace 0, "=$B$1+$B$2", xlWhole EndSub
Gruß,
Beate
Anzeige
AW: Replace
20.11.2006 13:17:38
kochanowski
Hallo Beate,
die Nullen sind das Ergebnis einer Formel.
Das ist die Formel:
=WENN(NICHT(ISTLEER(Banddaten_akt!$A$1));WENN(A1280=Rechnung!$B$29;Banddaten_akt!$B$8;Datenbank!B1280);Datenbank!B1235)
Es ist ein Zirkelbezug vorhanden, damit ein geändeter Wert "gespeichert" wird. Der "else-punkt" Datenbank!B1235 addiert sich um 1, bei jeder Zeile. Zeile 1 Datenbank!B1, Zeile 100 Datenbank!B100 usw.
Da sich die Zellbezüge irgendwann ändern, wollte ich ganz gerne ein Makro alle 30 minuten ausführen, das die Formeln wieder korrigiert. Das Ändern der Formel ist auf den Textimport zurückzuführen und leider nicht abzustellen. Der Timer ist fertig.
Hast Du ein Idee?
Anzeige
AW: Replace
20.11.2006 13:25:28
Beate
Hallo Ben,
vielleicht zu Codebeginn die Formeln der Spalte in Werte wandeln, dann die neuen Formeln in die 0-Zellen hineinschreiben?: Sub Nullen_durch_Formeln_ersetzten() 'Formel anpassen 'gilt hier für Spalte A Columns("A:A").Value = Columns("A:A").Value Columns("A:B").Replace 0, "=$B$1+$B$2", xlWhole EndSub
Ansonsten bin ich jetzt weg und habe auch keine weitere Idee.
Gruß,
Beate
Anzeige
AW: Replace
20.11.2006 13:32:12
kochanowski
Danke Beate,
hilft mit aber leider nicht wirklich weiter. Habe mich aber auch das Problem schlecht beschrieben. Am Besten wäre ein Schleife, welche alle 30 min durchläuft.
For each Zelle mit dem Wert 0 in Spalte A
ändern der Formel, wenn sie nicht gleich ist. und der Zirkelbezug müsste auch passen.
Fertig.
Das benötige ich.