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

Regel verwijderen

Status
Niet open voor verdere reacties.

Jack Nouws

Terugkerende gebruiker
Lid geworden
16 apr 2008
Berichten
1.396
Hallo

Ik heb een code ingebruik die uit eindelijk wel doet wat ik vraag maar tussendoor komt er een andere msg box in beeld wat ik niet wil hebben.Zou iemand zo kunnen zien wat hier aan deze code FOUT is? Ik heb hem al met F8 gevolgd maar ik weet niet wat hem er toe stuurt naar deze msg box?

Code:
Private Sub verwijder_Click()
Dim c As Range

Application.ScreenUpdating = False

naam1 = txtBedrijfsnaam.Text & " " & txtNaam.Text

If naam1 <> "" Then

    response = MsgBox("Weet u zeker dat u '" & naam1 & "' uit Klantenbestand wilt verwijderen?", vbYesNo, Title:="Gegevens wijzigen!")
        
        If response = vbNo Then
         MsgBox ("Gegevens van  '" & naam1 & " ' is NIET uit Klantenbestand verwijderd!")
            Unload Me
        Else
            For Each c In Worksheets("Klanten").Range("D4:D100")
                If c.Value = txtNaam.Text Then
                    c.EntireRow.Delete
                MsgBox ("Gegevens van  '" & naam1 & " ' is uit Klantenbestand verwijderd!")
            Unload Me
                End If
            Next
        End If
End If
        
Application.ScreenUpdating = True

End Sub

Met vr gr
Jack
 
Laatst bewerkt door een moderator:
Er staat in de code toch 3 keer een MsgBox? Die kan je dus ook (mogelijks) krijgen... ik snap de vraag niet echt om eerlijk te zijn.
 
Er staat in de code toch 3 keer een MsgBox? Die kan je dus ook (mogelijks) krijgen... ik snap de vraag niet echt om eerlijk te zijn.

Dat klopt maar deze code haalt nog een andere msgbox tevoorschijn uit 'Private Sub zoeknaam_Change()' en dat is niet echt de bedoeling! En mijn vraag is hoe kan dat? Dit gebeurt na "Next" in de code.

Met vr gr
Jack
 

Bijlagen

Laatst bewerkt:
Dat klopt maar deze code haalt nog een andere msgbox tevoorschijn uit 'Private Sub zoeknaam_Change()' en dat is niet echt de bedoeling! En mijn vraag is hoe kan dat?

Dat komt omdat de combobox een bepaald bereik heeft als RowSource. Gebeurt er iets in dat bereik, dan zullen de gegevens in de combobox aangepast worden. M.a.w. een Change event is opgetreden.

Kan je bij volgende posts van jou de tekst niet tussen quote tags zetten aub? Dit leest makkelijker en maakt veel beter het onderscheid tussen een quote en jouw tekst.

Wigi
 
Dat komt omdat de combobox een bepaald bereik heeft als RowSource. Gebeurt er iets in dat bereik, dan zullen de gegevens in de combobox aangepast worden. M.a.w. een Change event is opgetreden.

Kan je bij volgende posts van jou de tekst niet tussen quote tags zetten aub? Dit leest makkelijker en maakt veel beter het onderscheid tussen een quote en jouw tekst.

Wigi

Beste wigi

Wat wil dat zeggen en wat kan ik er aan doen en waar moet ik beginnen?

Met vr gr
Jack
 
Eerst de userform sluiten, en dan pas het verwijderen doen.

Nogmaals de vraag om nieuwe tekst hier op het forum niet als quote te tonen aub.

Dus zo:

"nieuwe post"

en niet zo:

"nieuwe post"

Wigi
 
Eerst de userform sluiten, en dan pas het verwijderen doen.

Nogmaals de vraag om nieuwe tekst hier op het forum niet als quote te tonen aub.

Dus zo:

"nieuwe post"

en niet zo:



Wigi

Beste Wigi

Ik begrijp best wat je bedoeld maar ik krijg dit simpel weg niet in VBA geschreven, zou je me hier aub in willen helpen? En als ik de code eenmaal zie denk ik vast zoiets van Oooohja:shocked:
 
Beste Wigi

Ik begrijp best wat je bedoeld maar ik krijg dit simpel weg niet in VBA geschreven, zou je me hier aub in willen helpen? En als ik de code eenmaal zie denk ik vast zoiets van Oooohja:shocked:

Wigi

Stel ik mijn vragen wel op het goede forum?

Met vr gr Jack
 
Beste Wigi

Ik begrijp best wat je bedoeld maar ik krijg dit simpel weg niet in VBA geschreven, zou je me hier aub in willen helpen? En als ik de code eenmaal zie denk ik vast zoiets van Oooohja:shocked:

Jack

Het staat er toch allemaal al?

Code:
                    c.EntireRow.Delete
                    MsgBox ("Gegevens van  '" & naam1 & " ' is uit Klantenbestand verwijderd!")
                    Unload Me

Dit heb je, en nu moet je EERST de userform wegdoen en DAN de regel verwijderen.
 
Beter dan het gebruik van messageboxes is het ergonomisch ontwerpen van een userform.

bijv.

Code:
Private sub knop_verwijder_click()
  select case knop_verwijder.caption
  case "zeker weten ?"
     application.enableEvents=false
     knop_verwijder.caption="verwijder"
     with Sheets("Klanten").Range("D4:D100")
        .replace  txtNaam.Text,""
        .specialcells(xlcelltypeblanks).entirerow.delete
     End with
     application.enableEvents=true
  case "verwijder" 
     knop_verwijder.caption="zeker weten ?"
  End Select
End Sub
 
Code:
                    c.EntireRow.Delete
                    MsgBox ("Gegevens van  '" & naam1 & " ' is uit Klantenbestand verwijderd!")
                    Unload Me

Dit heb je, en nu moet je EERST de userform wegdoen en DAN de regel verwijderen.

Wigi dit is een afkooksel van
Code:
Private Sub verwijder_Click()
Dim c As Range

'tegen flikkeren van het scherm
Application.ScreenUpdating = False


'gehele naam weergeven
naam1 = KolomE.Text & " " & KolomF.Text & " " & KolomG.Text
naam2 = KolomE.Text & " " & KolomG.Text

If KolomF <> "" Then

    response = MsgBox("Weet u zeker dat u '" & naam1 & "'uit de database wilt verwijderen?", vbYesNo, Title:="Gegevens wijzigen!")
        
        If response = vbNo Then
         MsgBox ("Itemgegevens van  '" & naam1 & " ' is/zijn NIET uit de database verwijderd!")
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
        Else
            For Each c In Worksheets("gegevens").Range("E3:E1000")
                If c.Value = KolomE.Text And c.Offset(0, 1).Value = KolomF And c.Offset(0, 2).Value = KolomG.Text Then
                 [COLOR="Red"]   c.EntireRow.Delete
                MsgBox ("Itemgegevens van  '" & naam1 & " ' is/zijn uit de database verwijderd!")[/COLOR]           
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
                End If
            Next
        End If
        
Else

    response = MsgBox("Weet u zeker dat u '" & naam2 & "'uit de database wilt verwijderen?", vbYesNo, Title:="Gegevens wijzigen!")
        
        If response = vbNo Then
            MsgBox ("Itemgegevens van  '" & naam2 & " ' is/xijn NIET uit de database verwijderd!")
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
        Else
            For Each c In Worksheets("gegevens").Range("E3:E1000")
                If c.Value = KolomE.Text And c.Offset(0, 1).Value = KolomF And c.Offset(0, 2).Value = KolomG.Text Then
                    c.EntireRow.Delete
                MsgBox ("Itemgegevens van '" & naam2 & " ' is/zijn uit de database verwijderd!")
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
                End If
            Next
        End If
End If

'Worksheets("menu").Activate

Application.ScreenUpdating = True

End Sub

Popipipo weet wel waar deze vandaan komt , heb ik nog niet zo lang geleden een link naar gekregen ;)
 
Jack

Het staat er toch allemaal al?

Code:
                    c.EntireRow.Delete
                    MsgBox ("Gegevens van  '" & naam1 & " ' is uit Klantenbestand verwijderd!")
                    Unload Me

Dit heb je, en nu moet je EERST de userform wegdoen en DAN de regel verwijderen.

Ok wigi het is gelukt:thumb:
bedankt hiervoor.
Nu het volgende, als ik niets selecteer word de code toch door lopen, en dat wil ik niet hebben. Nu heb ik het volgende bedacht: als zoeknaam = "" ; Unload Me Kan zoiets? en hoe pas ik het erin?

Met vr gr
Jack
 
Wigi dit is een afkooksel van
Code:
Private Sub verwijder_Click()
Dim c As Range

'tegen flikkeren van het scherm
Application.ScreenUpdating = False


'gehele naam weergeven
naam1 = KolomE.Text & " " & KolomF.Text & " " & KolomG.Text
naam2 = KolomE.Text & " " & KolomG.Text

If KolomF <> "" Then

    response = MsgBox("Weet u zeker dat u '" & naam1 & "'uit de database wilt verwijderen?", vbYesNo, Title:="Gegevens wijzigen!")
        
        If response = vbNo Then
         MsgBox ("Itemgegevens van  '" & naam1 & " ' is/zijn NIET uit de database verwijderd!")
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
        Else
            For Each c In Worksheets("gegevens").Range("E3:E1000")
                If c.Value = KolomE.Text And c.Offset(0, 1).Value = KolomF And c.Offset(0, 2).Value = KolomG.Text Then
                 [COLOR="Red"]   c.EntireRow.Delete
                MsgBox ("Itemgegevens van  '" & naam1 & " ' is/zijn uit de database verwijderd!")[/COLOR]           
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
                End If
            Next
        End If
        
Else

    response = MsgBox("Weet u zeker dat u '" & naam2 & "'uit de database wilt verwijderen?", vbYesNo, Title:="Gegevens wijzigen!")
        
        If response = vbNo Then
            MsgBox ("Itemgegevens van  '" & naam2 & " ' is/xijn NIET uit de database verwijderd!")
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
        Else
            For Each c In Worksheets("gegevens").Range("E3:E1000")
                If c.Value = KolomE.Text And c.Offset(0, 1).Value = KolomF And c.Offset(0, 2).Value = KolomG.Text Then
                    c.EntireRow.Delete
                MsgBox ("Itemgegevens van '" & naam2 & " ' is/zijn uit de database verwijderd!")
            Me.Hide
            Unload Me
            'Sheets("gegevens").Protect
            'Worksheets("menu").Activate
                End If
            Next
        End If
End If

'Worksheets("menu").Activate

Application.ScreenUpdating = True

End Sub

Popipipo weet wel waar deze vandaan komt , heb ik nog niet zo lang geleden een link naar gekregen ;)

Hoezo, mag dat niet dan??
 
Hoezo, mag dat niet dan??

Met deze code werkt het wel:)
Of zou ik er nog iets aan veranderen.

met vr gr
Jack
Code:
If zoeknaam = "" Then
    response = MsgBox("Je moet eerst iemand selecteren!", vbYesNo, Title:="Gegevens wijzigen!")
            If response = vbNo Then
                MsgBox ("Er is niets verwijderd!")
                Unload Me
             Else
                Unload Me
                verwijderklant.Show
End If
Exit Sub
 
Ok wigi het is gelukt:thumb:
bedankt hiervoor.
Nu het volgende, als ik niets selecteer word de code toch door lopen, en dat wil ik niet hebben. Nu heb ik het volgende bedacht: als zoeknaam = "" ; Unload Me Kan zoiets? en hoe pas ik het erin?

Met vr gr
Jack

Beperk het bereik voor de gegevens van de combobox tot wat echt nodig is, en zet er geen lijst van 500 rijen waarvan er heel veel toch niet nodig zijn.
 
Beperk het bereik voor de gegevens van de combobox tot wat echt nodig is, en zet er geen lijst van 500 rijen waarvan er heel veel toch niet nodig zijn.

Dit is misschien wel beter ja
heb je al naar quote 16 gekeken?
met vr gr Jack

Code:
Private Sub UserForm_Initialize()
    With zoeknaam
        .RowSource = "Klanten" & "!D4:" & Sheets("Klanten").Range("D65536").End(xlUp).Address
    End With

End Sub
 
Laatst bewerkt:
Jack Nouws,

Kijk eens in de file of het nu goed werkt?
Ik hoor het wel.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan