Schonen van ranges geeft foutmelding

  • Onderwerp starter Onderwerp starter ML71
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ML71

Gebruiker
Lid geworden
10 mrt 2006
Berichten
70
Ik heb een bestand gemaakt met diverse formulieren. Door middel van de OK knop op één van de formulieren wordt een factuur ingevuld, waarna het bestand weer geschoond moet worden. Het vullen van de diverse velden verloopt zonder problemen, maar het schonen lukt niet. Het uitvoeren van de onderstaande code loopt echter vast en geeft de melding Method 'Range' Of Object '_Worksheet' Failed.

Code:
Private Sub cmdOKFeest_Click()

Dim ws3 As Worksheet

Set ws3 = Worksheets("Factuur")

ws3.Range(Cells(12, 1), Cells(15, 9)).ClearContents
ws3.Range(Cells(17, 3), Cells(17, 9)).ClearContents
ws3.Range(Cells(20, 3), Cells(20, 5)).ClearContents
ws3.Range(Cells(25, 1), Cells(25, 9)).ClearContents

End Sub

De aangegeven ranges bestaan uit samengevoegde cellen per regel, die geen van allen zijn geblokkeerd.

Waarom loopt deze code vast vanuit de code horende bij het formulier, terwijl deze code los opgevoerd in een module (zie hieronder) wel gewoon werkt?

Code:
Sub test()
Dim ws3 As Worksheet
 Set ws3 = Sheets("Factuur")

   ws3.Range(Cells(12, 1), Cells(15, 9)).ClearContents
   ws3.Range(Cells(17, 3), Cells(17, 9)).ClearContents
   ws3.Range(Cells(20, 3), Cells(20, 5)).ClearContents
   ws3.Range(Cells(25, 1), Cells(25, 9)).ClearContents

End Sub
 
Het hangt af van welk tabblad actief is.
Is dat blad Factuur, dan heb je chance en werkt het.

Gebruik:

Code:
Private Sub cmdOKFeest_Click()

Dim ws3 As Worksheet

Set ws3 = Worksheets("Factuur")

Range(ws3.Cells(12, 1), ws3.Cells(15, 9)).ClearContents
Range(ws3.Cells(17, 3), ws3.Cells(17, 9)).ClearContents
Range(ws3.Cells(20, 3), ws3.Cells(20, 5)).ClearContents
Range(ws3.Cells(25, 1), ws3.Cells(25, 9)).ClearContents

End Sub

Maar beter nog:

Code:
Private Sub cmdOKFeest_Click()

With Worksheets("Factuur")

   .Cells(12, 1).Resize(4, 9).ClearContents
   .Cells(17, 3).Resize(, 7).ClearContents
   .Cells(20, 3).Resize(, 3).ClearContents
   .Cells(25, 1).Resize(, 9).ClearContents

End With

End Sub
 
Thanks Wigi, de with optie werkt fantastisch!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan