• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Celinhoud automatisch wissen bij openen

Status
Niet open voor verdere reacties.

kathydesmet

Nieuwe gebruiker
Lid geworden
16 feb 2013
Berichten
3
Hallo,

Ik heb een excel file gemaakt waarbij in de sheet "Werkbon" telkens bij het openen (of sluiten mag ook) van de file alle lichtblauwe cellen (= in te vullen door gebruiker) leeggemaakt moeten worden. Het is dus een soort template waarvan telkens vertrokken wordt, en waarbij de ingevulde sheet vervolgens automatisch opgeslaan wordt onder een andere naam ook via een macro.
De cellen die leeggemaakt moeten worden, zijn dikwijls samengevoegde cellen, dus als ik het goed voorheb kan je ClearContents dan niet gebruiken in de vba code.
Misschien nog even opmerken dat 1 specifieke cel niet mag leeggemaakt worden, omdat daaraan een macro gekoppeld is waarbij automatisch een nieuw volgnummer wordt gecreëerd bij het klikken op een knop. Het vorige nummer dient telkens ingevuld blijven te staan, want macro vertrekt van laatst gecreëerde nummer. Dus van het document een template documents maken is volgens mij geen optie.

Ik heb bijgevolg volgende code geschreven in ThisWorkbook:

Private Sub Workbook_Open()
Dim c1 As Range
For Each c1 In Range("B10,B13,F10,F12,F14,I11,I12,I15,A18,A19,A20 ,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,B35,B 36,B37,B38,B39,B40,B41,D35,D36,D37,D38,D39,D40,D41 ,E35,E36,E37,E38,E39,E40,E41,G35,G36,G37,G38,G39,G 40,G41,H35,H36,H37,H38,H39,H40,H41,I35,I36,I37,I38 ,I39,I40,I41,C45,C46,C47,G45,G46,G47")
c1 = ""
Next
End Sub

Maar dit werkt dus niet. Ik krijg volgende foutmelding:
Fout 1004: Methode Range van object_Global is mislukt

Kan iemand mij zeggen hoe ik dit kan oplossen?

Alvast bedankt!

Groeten,

KDS
 
De waarschijnlijke oorzaak: De code weet niet welk werkblad je bedoeld. geef bij je range eens specifiek het juiste werkblad op
 
Ik ben niet zo heel erg vertrouwd met vba, dus ben niet zeker of ik de sheet op de juiste manier heb toegevoegd in onderstaande code. Het werkt alleszins nog steeds niet, ik krijg dezelfde foutmelding als voorheen.

Private Sub Workbook_Open()
Dim c1 As Range
For Each c1 In Sheets("Werkbon").Range("B10,B13,F10,F12,F14,I11,I12,I15,A18,A19,A20,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,B35,B36,B37,B38,B39,B40,B41,D35,D36,D37,D38,D39,D40,D41,E35,E36,E37,E38,E39,E40,E41,G35,G36,G37,G38,G39,G40,G41,H35,H36,H37,H38,H39,H40,H41,I35,I36,I37,I38,I39,I40,I41,C45,C46,C47,G45,G46,G47")
c1 = ""
Next

End Sub
 
Ik heb het probleem gevonden. Er staat blijkbaar een beperking op het aantal cellen die je kan toevoegen tussen de haakjes bij Range. Als ik er een aantal verwijder lukt het wel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan