ich habe ein Angebots-/Rechnungs-/Tool mit Cals gemacht, welches automatisch die eingegebenen Formulardaten der Webseite übernimmt und dann ein Angebot und/oder eine Rechnung als PDF ausspuckt und die Umsätze dann entsprechend verbucht. In diversen Feldern kann ich jedoch auch händisch eingreifen und die Daten, welche über die Webseite kamen, "überschreiben" (wenn istleer), wenn z.B. Kunde anruft und es muss eine Änderung her, die Liefer- oder Rechnungsadresse muss geändert werden oder die Produktkonfiguration des Kunden ergibt keinen Sinn. Habe für viele Fälle solche Felder eingebaut.
Alles cool soweit und es funktioniert auch (fast) wunderbar. Aktuell leere ich zwar diese Zellen auch mit einem Makro, aber das ist nur eine Behelfslösung, denn dieses Makro nimmt jede Zelle einzeln und leert diese. Bis vor ein paar Tagen war das Formular jedoch noch nicht so umfangreich und es ging so recht flott. Jetzt (bei ca. 60 zu leerenden Zellen) dauert dieser Vorgang unglaublich lange und ich habe manchmal das Gefühl, dass dabei der Rechner abstürzt.
"Wer suchet, der findet", dachte ich mir gestern. Also habe ich nach kurzem Suchen diverse Makros gefunden, welche die nicht gesperrten Zellen leeren soll. Alle sind ungefähr ähnlich:
Code: Alles auswählen
Sub wegmit()
Dim Bereich As Range
Dim Zelle As Range
Set Bereich = Sheets("Tabelle1").Range("A1:E18")
For Each Zelle In Bereich
If Zelle.Locked = False Or Zelle.MergeArea.Locked = False Then Zelle.MergeArea.ClearContents
Next Zelle
End Sub
Das Ergebnis war immer das Gleiche:
Im Makro-Editor wird immer das Wort "Range" markiert und ich erhalte die Fehlermeldung "BASIC-Syntaxfehler. Unbekannter Datentyp Range.".
Dann habe ich ein komplett neues Calc-Dokument (ohne verbundene Zellen oder irgendwelchen Schnickschnack) erstellt, bei einem Bereich den Zellschutz aufgehoben und die Makros auch dort ausprobiert. => Gleicher Fehler. Es liegt also nicht an meiner Angebots-/Rechnungs-Datei, sondern es scheint ein generelles Problem mit den Makros zu sein. Da ich mich jedoch mit VBA nicht wirklich auskenne, finde ich jedoch den Fehler nicht.
Frage1: Was mache ich falsch? Was ist an dem Makro falsch?
Frage2: Sollte das mit dem Makro nicht funktionieren: Gibt es eine andere Möglichkeit nicht gesperrte Zellen zu leeren? Alles Markieren => "DELETE" resultiert in der Fehlermeldung "Gesperrte Zellen können nicht geändert werden". Eine andere Möglichkeit wüsste ich jetzt nicht....
Viele Grüße
Manu