Ga naar inhoud

Delete inhoud worksheetcellen in een bepaalde rij via een macro


alidus

Aanbevolen berichten

Heb een VBA macro gemaakt om in een bepaalde rij van een worksheet, een aantal cellen te “deleten” (Excel 2016)

 

De te kiezen rij wordt via een aangemaakte module in een andere worksheet aangesproken.

 

Heb nu een probleem, dat er wel cellen in de bepaalde worksheet worden “ge-delete” , maar de rij nummer is niet goed gekozen.

Ik heb de indruk dat de rijnummer gekozen wordt in de sheet waar de module wordt opgeroepen.

 

Ik heb geen enkele ervaring met VBA, maar heb hier en daar wat gezocht op het internet en ben tot de volgende macro gekomen. Hetgeen wel enigszins werkt maar het probleem blijft houden, zoals hierboven uitgelegd.

 

Graag een advies hoe ik e.e.a. zou kunnen aanpassen, zodat de bepaalde cellen wel op de juiste rij worden “ge-delete”

 

HD Alidus

 

 

 

 

Private Sub Annulering_Click()

 

‘ aangeven zoekactie in worksheet

 

Dim ws As Worksheet

Set ws = Worksheets("Inschrijving")

 

‘ rijnummer vinden om de actie uit te voeren

 

Dim TeZoekenWaarde

Dim c As Range

Dim TeZoekenWaarde

TeZoekenWaarde = Me.flightnummer.Value

Set c = Range("A1:A1000").Find(TeZoekenWaarde)

 

' Delete gegevens

 

ws.Cells(c.Row, 1).Value = ""

ws.Cells(c.Row, 2).Value = ""

ws.Cells(c.Row, 3).Value = ""

ws.Cells(c.Row, 4).Value = ""

ws.Cells(c.Row, 5).Value = ""

ws.Cells(c.Row, 6).Value = ""

ws.Cells(c.Row, 7).Value = ""

ws.Cells(c.Row, 8).Value = ""

 

MsgBox "Inschrijving geannuleerd!"

 

Me.flightnummer.Value = ""

 

Me.flightnummer.SetFocus

 

End Sub

 

 

Private Sub Sluiten_Click()

Unload Me

End Sub

Link naar reactie
Delen op andere sites

Hierbij het voorbeeld van de 2 gebruikte sheets

 

Via de sheet "Flightindeling" wordt via een knop "formulier inschrijven zichtbaar maken", de gegevens ingebracht naar sheet "Inschrijving".

 

Deze sheet zoekt in andere sheets weer de betreffende gegevens bij elkaar , om vervolgens deze weer op een bepaalde manier zichtbaar te maken in de sheet flightindeling" (De formules zijn hierbij weggelaten.)

 

Als je toch een inschrijving wilt annuleren, heb ik in dezelfde sheet "Flightindeling" een knop gemaakt "Annulering inschrijving" die de bewuste aangegeven macro aanstuurt, dusdanig dat de bewuste regel (in mijn voorbeeld  is dit in rij 5 (rood aangemerkt), de gele cellen weer moeten "deleten".

 

Hopelijk heb ik e.e.a. begrijpelijk weergegeven.

 

Advies/reactie wordt zeer op prijs gesteld.

 

HG Alidus

 

Voorbeeld.xlsx

Link naar reactie
Delen op andere sites

obv een nummer die wordt ingebracht door het volgend "plaatje", dat gekoppeld is aan "de knop Annulering inschrijving" uit de "Textbox" -

 

En dit plaatje heeft de macro zoals aangegeven:

 

Private Sub Annulering_Click()

Dim ws As Worksheet
Set ws = Worksheets("Inschrijving")

Dim c As Range
Dim TeZoekenWaarde

TeZoekenWaarde = Me.flightnummer.Value
Set c = Range("A1:A1000").Find(TeZoekenWaarde)

'Delete gegevens

ws.Cells(c.Row, 1).Value = ""
ws.Cells(c.Row, 2).Value = ""
ws.Cells(c.Row, 3).Value = ""
ws.Cells(c.Row, 4).Value = ""
ws.Cells(c.Row, 5).Value = ""
ws.Cells(c.Row, 6).Value = ""
ws.Cells(c.Row, 7).Value = ""
ws.Cells(c.Row, 8).Value = ""

MsgBox "Inschrijving geannuleerd!", vbOKOnly + vbInformation, "Inschrijving is geannuleerd!"

Me.flightnummer.Value = ""

Me.flightnummer.SetFocus

End Sub
Private Sub Sluiten_Click()
Unload Me
End Sub

Private Sub UserForm_Click()

End Sub
 

image.png

Link naar reactie
Delen op andere sites

Dit werkt met Uw command button en de toegevoegde lijncode  c.Range("a1:h1").ClearContents . Kennelijk moet ik een commandbox gebruiken ipv Tekstbox !!

 

Heeeeel Hartelijk dank voor de oplossing en de assistentie!

 

PS de opmerking over het plaatje is ook te harte genomen.

Groet Alidus 

Link naar reactie
Delen op andere sites

@emielDS

Zonder foutafhandeling genereer je een foutmelding als Find geen overeenkomstig nummer kan vinden.

Private Sub Annuleren_Click()
 
'aangeven zoekactie in worksheet
    Dim fRow
    
    With Sheets("Inschrijving")
        fRow = Application.Match(CLng(flightnummer), .Columns(1), 0)
        If Not IsError(fRow) Then
            .Cells(fRow, 1).Resize(, 8).ClearContents
        Else
            MsgBox "Geen nummer gevonden"
        End If
    End With
End Sub

 

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.