• 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.

code selectie wissen

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo,
Ik wil als het nieuwe seizoen begint de ingevulde scellen op de sheet "Speeldagen" allemaal wissen met de volgende code
Code:
Sub Macro1()
With Sheets("Speeldagen")

    'Dit is de selectie voor Speeldag 1

    Range("A3:E3,J3:N3,A5:F7,J5:O7,A13:E13,A15:F17,J13:N13,J15:O17,A23:E23,J23:N23,A25:F27,J25:O27,A33:E33,A35:F37,J33:N33,J35:O37").Select
    Selection.ClearContents
    
    'Dit is de selectie voor Speeldag 2

    Range("A43:E43,J43:N43,A45:F47,J45:O47,A53:E53,A55:F57,J53:N53,J55:O57,A63:E63,J63:N63,A65:F67,J65:O67,A73:E73,A75:F77,J73:N73,J75:O77").Select
    Selection.ClearContents
    
End With
End Sub
Vermits dit zo voor 35 speeldagen zou moeten gebeuren, vraag ik mij af of deze code eventueel korter kan geschreven worden.

Grtjs.
Armand
 
In ieder geval dat .Select niet gebruiken:
Code:
Sub Macro1()
With Sheets("Speeldagen")
    'Dit is de selectie voor Speeldag 1
    Range("A3:E3,J3:N3,A5:F7,J5:O7,A13:E13,A15:F17,J13:N13,J15:O17,A23:E23,J23:N23,A25:F27,J25:O27,A33:E33,A35:F37,J33:N33,J35:O37").ClearContents
    
    'Dit is de selectie voor Speeldag 2
    Range("A43:E43,J43:N43,A45:F47,J45:O47,A53:E53,A55:F57,J53:N53,J55:O57,A63:E63,J63:N63,A65:F67,J65:O67,A73:E73,A75:F77,J73:N73,J75:O77").ClearContents
End With
End Sub

Voor de rest zou je het in een loop kunnen doen waarbij de variabele begint bij 3 en iedere keer met 40 wordt verhoogt.
 
Laatst bewerkt:
zo?
Code:
Sub gijs()
Dim rng As Range
    With Sheets("Speeldagen")
        Set rng = .Range("A3:E3,J3:N3,A5:F7,J5:O7,A13:E13,A15:F17,J13:N13,J15:O17,A23:E23,J23:N23,A25:F27,J25:O27,A33:E33,A35:F37,J33:N33,J35:O37")
        rng.ClearContents                   'speeldag 1
        rng.Offset(40, 0).ClearContents     'speeldag 2
        rng.Offset(80, 0).ClearContents     'speeldag 3, enz
    End With
End Sub

Als de volgende speeldag weer 40 rijen lager staat dan zet je er steeds een regel met een offset van 40+ bij:
 
Bedankt Ed en Gijs voor jullie tips.

Ik heb de beide gecombineert als volgt.
Code:
Sub ScoresWissen()
Dim rng As Range
Dim x As Integer
x = 1
    With Sheets("Speeldagen")
        Set rng = .Range("A3:E3,J3:N3,A5:F7,J5:O7,A13:E13,A15:N17,J13:L13,J15:O17,A23:E23,J23:N23,A25:F27,J25:O27,A33:E33,A35:F37,J33:N33,J35:O37")
                      For x = 0 To 40
                             rng.Offset(x * 40, 0).ClearContents 'speeldag 1 tot 35
                     Next
    End With
End Sub

Grtjs.
Armand
 
Laatst bewerkt:
Nog een mogelijkheid
Code:
  With Sheets("Speeldagen")
    For i = 3 To 73 Step 10  'speeldag 1+2
      .Cells(i, 1).Resize(, 5).ClearContents
      .Cells(i, 1).Offset(, 9).Resize(, 5).ClearContents
      .Cells(i, 1).Offset(2).Resize(3, 6).ClearContents
      .Cells(i, 1).Offset(2, 9).Resize(3, 6).ClearContents
    Next
  End With
 
Bedankt Jack,

Allemaal tips die ik meeneem.
De laatste maand veel bijgeleerd, door te experimenteren met de codes. (bepaalde zaken te wijzigen en dan te zien wat er juist gebeurt.

Grtjs.
Armand
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan