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

Bericht bij verwijderen cel

Status
Niet open voor verdere reacties.

MauriceD

Gebruiker
Lid geworden
15 apr 2017
Berichten
48
Goedemiddag,

Graag zou ik een pop up bericht willen krijgen als iemand een cel verwijderd in een excel bestand.
Heb tot nu toe;

Private Sub Worksheet_Change(ByVal Target As Range)
' If target column is C, is below the header row AND it's new value is blank then...
If Target.Column = 3 And Target.Row > 1 And Target.Value = "" Then
' Clear contents of column N
ans = MsgBox("Are you sure you want to Delete......This cannot Be Undone !!!", vbYesNo)
If ans = vbNo Then
Application.Undo
Exit Sub
End If
Target.Offset(0, 3).ClearContents
End If
End Sub

Nu zou ik bij het verwijderen van een cel in Rij C, D, E, F, G een bericht willen krijgen. Hoe zet je meerdere kolommen in de code? welke cel je ook in de rij verwijderd dat de gehele rij (C, D, E, F, G) leeg maakt ipv column N.

Heb er mee gestoeid maar krijg allerlei foutmeldingen dan.

Alvast bedankt!
 
Zoiets:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Row > 1 And Target.Value = "" Then
        Select Case Target.Column
            Case 3 To 7
                If MsgBox("Are you sure you want to Delete......This cannot Be Undone !!!", vbYesNo) = vbNo Then
                    Application.Undo
                Else
                    Cells(Target.Row, 3).Resize(, 5).ClearContents
                End If
        End Select
    End If
    Application.EnableEvents = True
End Sub
 
Laatst bewerkt:
Code:
    If Not Intersect(Target, Range("C:G")) Is Nothing Then
ipv

Code:
If Target.Column = 3 And Target.Row > 1 And Target.Value = "" Then
 
Goedemorgen,

Heb jullie adviezen bij elkaar gekoppeld en werkt top!

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("C:G")) Is Nothing Then
Select Case Target.Column
Case 3 To 7
If MsgBox("Gegevens verwijderen?", vbYesNo) = vbNo Then
Application.Undo
Else
Cells(Target.Row, 3).Resize(, 5).ClearContents
End If
End Select
End If
Application.EnableEvents = True
End Sub

Nu word bij het verwijderen netjes C tot en met G verwijderd, is het mogelijk om deze dan automatisch een gele kleur te geven? (Cel inkleuren)

Bedankt!
Fijne Zondag!

Gr,
Maurice
 
Dacht dat het goed werkte..
Bij het verwijderen, top! maar als je nu iets toevoegt in de aangegeven kolommen dan komt alsnog de vraag ja of nee verwijderen.
 
zo beter?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 If Not Intersect(Target, Range("C:G")) Is Nothing And Len(Target) = 0 Then
    If MsgBox("Gegevens verwijderen?", vbYesNo) = vbNo Then
    Application.Undo
    Else
    Cells(Target.Row, 3).Resize(, 5).ClearContents
    End If
 End If
 Application.EnableEvents = True
 End Sub

Het combineren van de regel select case and If not intersect was dubbelop.
 
Dank je wel! werkt uitstekend!
Zo kan er niet "per ongeluk" een cel verwijderd worden..
Automatisch een kleur toepassen bij wat je verwijderd kan niet met Vba?

Zit al op verschillende sites (Engels, Nederlands) maar kan er niks over vinden.

Klein iets, maar handig als het kan.

In ieder geval bedankt!
 
Je weet welke cel je leegmaakt, dan weet je ook welke cel je een kleurtje kan geven.

Ik zou met deze code geen cellen/rijen/kolommen gaan verwijderen :cool:;)
 
Met welke code bedoel je E v R?
Bovengenoemde code door SjonR?

Zoja, wat kan daar mis mee gaan dan?

Gr,
 
Yep, verwijder maar eens een kolom (of rij)
 
Kleine aanpassing:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR="#FF0000"]If Target.Address = Target.EntireRow.Address Or Target.Address = Target.EntireColumn.Address Then Exit Sub[/COLOR]

 Application.EnableEvents = False
 If Not Intersect(Target, Range("C:G")) Is Nothing And Len(Target) = 0 Then
    If MsgBox("Gegevens verwijderen?", vbYesNo) = vbNo Then
    Application.Undo
    Else
    Cells(Target.Row, 3).Resize(, 5).ClearContents
[COLOR="#FF0000"]    Cells(Target.Row, 3).Resize(, 5).Interior.ColorIndex = 3[/COLOR]
    End If
 End If
 Application.EnableEvents = True
 End Sub

++ dan ben je er nog niet, ook nog leegmaken van meerdere cellen in 1 keer ondervangen.
 
Laatst bewerkt:
Bij het verwijderen van een kolom komt er idd een foutmelding;

Fout 13 tijdens uitvoering
Typen komen niet met elkaar overeen

Kolom word daarna wel verwijderd.

Je heb gelijk dat er iets dus niet goed gaat..!

Bedankt
 
Nog een tip:

Zorg ervoor dat bij/na een foutmelding die enableevents weer (automatisch) worden aangezet
 
Geen foutmelding meer na verwijderen kolom.
En een automatische kleur... Lekker bezig! bedankt!
Ik ben klaar met het excel bestand, het is af!

Kan op opgelost ;)

Thanks E v R en SjonR

Gr,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan