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

cellen wissen met VBA

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo,
Ik ga mijn progje voor de scores van onze bowlingliga een beetje aanpassen.
Het meeste werk is al gedaan, maar nu wou ik nog een button toevoegen om de scores van het voorbije seizoen te wissen.
Ik weet dat dit gaat met
Code:
With Sheets("Speeldagen")
Intersect(.Range("A:F, J:O"), .Range("[COLOR="#FF0000"]5:7, 15:17; 25:27, 35:37[/COLOR]")).clearcontents
End With
Dit is de code voor 1 speeldag en zo staan er 28 speeldagen in de sheet en gaan de rijen (hierboven in rood zo verder tot en met 1115:1117).
Om deze rijen allemaal in de code te zetten wordt, zoals jullie begrijpen, dit een heel lange rij getallen.
Is er een mogelijkheid om al deze rijen cellen in het kort in de code te zetten.

Grtjs.
Armand
 
Een mogelijke oplossing:

Code:
Sub SjonR()
With Sheets("Speeldagen")
For i = 5 To 1115 Step 10
    For j = 0 To 2
        For ii = 1 To 6
        Cells(i + j, ii).ClearContents
        Next
        For jj = 10 To 15
            Cells(i + j, jj).ClearContents
        Next
    Next
Next
End With
End Sub
 
Met een paar lussen minder
Code:
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]With Sheets("Speeldagen")
  For i = 5 To 1115 Step 10
    .Cells(i, 1).Resize(3, 6).ClearContents
    .Cells(i, 10).Resize(3, 6).ClearContents
  Next
End With
[/FONT]
 
Bedankt aan de helpers.
Heb de oplossing van Jack gebruikt en nog enkele persoonlijke aanpassingen gedaan.
Code:
Private Sub cmbVoorbereidenSeizoen_Click()
    If MsgBox("Alle scores wprden gewist! Wilt U doorgaan,", vbYesNo) = vbYes Then
        With Sheets("Speeldagen")
            For i = 5 To 1115 Step 10
            .Cells(i, 1).Resize(3, 6).ClearContents
            .Cells(i, 10).Resize(3, 6).ClearContents
            Next
        End With
    End If
        Sheets("LigaData").Select
            With Sheets("LigaData")
                MsgBox "Seizoen, Startdatum, Speeldatums en Gemiddelden spelers aanpassen", vbExclamation, "Opgelet !"
        End With
End Sub

Grtjs.
Armand
 
Hallo,
Ik had een foutje in mijn oorspronkelijke vraag gesteld en hierdoor werken de oplossingen van SjonR en Jack niet exact juist.
De bedoeling is eigenlijk het volgende.

In kolommen A t/m H en J t/m O de cellen van rijen 3 en 5:7 en zo t/m 1113 en 1115:1117 worden gewist.
Alle tussenliggende rijen niet wissen.
Heb geprobeerd om de codes aan te passen, maar ik kom er niet uit.

In een ander progje hetzelfde probleem maar dan
in dezelfde kolommen de cellen 3 en 5:8, 14 en 16:19, 25 en 27:30 zo t/m 2170, en 2172:2175
Ook alle tussenliggende rijen niet wissen.

Hopelijk is alles een beetje duidelijk en kan iemand mij verder helpen.

Grtjs.
Armand
 
Hallo,
Na een filmpje te zien over "resize" op Youtube en enkele testen in excel ben ik er toch zelf uitgekomen.
Eventueel voor liefhebbers hieronder dan de uiteindelijke codes die ik gebruik
Voor het eerste probleempje
Code:
Private Sub cmbVoorbereidenSeizoen_Click()
    If MsgBox("Alle scores wprden gewist! Wilt U doorgaan,", vbYesNo) = vbYes Then
        With Sheets("Speeldagen")

            For i = 3 To 1113 Step 10
            .Cells(i, 1).Resize(1, 6).ClearContents
            .Cells(i, 10).Resize(1, 6).ClearContents
            Next

            For i = 5 To 1115 Step 10
            .Cells(i, 1).Resize(3, 6).ClearContents
            .Cells(i, 10).Resize(3, 6).ClearContents
            Next

        End With
    End If
        Sheets("LigaData").Select
            With Sheets("LigaData")
                MsgBox "Seizoen, Startdatum, Speeldatums en Gemiddelden spelers aanpassen", vbExclamation, "Opgelet !"
            End With
End Sub

Voor het tweede probleempje
Code:
Private Sub cmbVoorbereidenSeizoen_Click()
    If MsgBox("Alle scores wprden gewist! Wilt U doorgaan,", vbYesNo) = vbYes Then
        With Sheets("Speeldagen")

            For k = 3 To 2170 Step 11
            .Cells(k, 1).Resize(1, 3).ClearContents
            .Cells(k, 10).Resize(1, 3).ClearContents
            Next

            For i = 5 To 2172 Step 11
            .Cells(i, 1).Resize(4, 6).ClearContents
            .Cells(i, 10).Resize(4, 6).ClearContents
            Next

        End With
     End If
        Sheets("LigaData").Select
            With Sheets("LigaData")
                MsgBox "Seizoen, Startdatum, Speeldatums en Gemiddelden spelers aanpassen", vbExclamation, "Opgelet !"
        End With
End Sub

Grtjs.
Armand
 
Laatst bewerkt:
1 Lus zou het zelfde kunnen doen
Code:
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]    For k = 3 To 2170 Step 11
      .Cells(k, 1).Resize(1, 3).ClearContents
      .Cells(k + 2, 1).Resize(4, 6).ClearContents
      .Cells(k, 10).Resize(1, 3).ClearContents
      .Cells(k + 2, 10).Resize(4, 6).ClearContents
    Next
[/FONT]
 
Laatst bewerkt:
Of:
Code:
 For k = 3 To 200 Step 11
   Union(Cells(k, 1).Resize(, 3), Cells(k + 2, 1).Resize(4, 6), Cells(k, 10).Resize(, 3), Cells(k + 2, 10).Resize(4, 6)).ClearContents
 Next
 
Hallo Jack en Harry,

Bedankt voor de extra tips.
Toch leuk om telkens mensen te hebben die je skills altijd een level hoger kunnen brengen.

Hrtjs.
Armand
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan