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

messagebox annuleren vba code

Status
Niet open voor verdere reacties.

prinsr

Gebruiker
Lid geworden
30 mei 2015
Berichten
28
Beste mensen,

Dankzij jullie is mijn excel bestand goed de juiste kant op aan het gaan. Ik heb nog 1 vraag met betrekking tot een schoonheidszaakje.
Ik heb de volgende twee macro codes voor zowel het invoegen als het verwijderen van een rij. (Heb dus ook twee aparte knoppen).

Rij verwijderen
Code:
Sub Rij_verwijderen()
Dim answer As Integer
Dim RowNum As Long
    RowNum = InputBox("Nummer van de te wissen rij invullen.")
   
answer = MsgBox("Weet u zeker dat u de rij wilt wissen?", vbYesNo + vbExclamation, "Rijen  wissen?")
If answer = vbYes Then
Range(Cells(RowNum, 1), Cells(RowNum, 16384)).Delete
 
End If
End Sub

Code:
Sub Knop1_Klikken()
Dim Rng As Long
    Dim lngA As Long
    Dim lngB As Long
    
    Application.ScreenUpdating = False
    
    Rng = InputBox("Aantal in te voegen rijen?")
    
    If Rng = 0 Then Exit Sub
    
    Range(ActiveCell, ActiveCell.Offset(Val(Rng) - 1, 0)).EntireRow.Insert
    lngB = ActiveCell.Offset(-1, 0).Row
    lngA = Cells(lngB, Columns.Count).End(xlToLeft).Column
    Range(Cells(lngB, 1), Cells(lngB + Val(Rng), lngA)).FillDown
   
    
    
End Sub

In beide gevallen komt er een pop-up box. Als er 0 wordt ingevoerd en op ok wordt gedrukt dan sluit die gewoon goed zonder een foutmelding.
Echter indien men op annuleren of op het kruisje drukt komt in beide gevallen de volgende melding: fout 13: typen komen niet met elkaar overeen.

Is er een simpele manier om de het annuleren en sluiten correct te coderen? (wellicht een hele simpele toevoeging)

Zeer bedankt voor alle hulp. Het gebruik van vba maakt het bestand een stuk efficiënter. :)

groeten
 
Je kunt er dat van maken, vang je ook op als er tekst ingegeven wordt:
Code:
Sub Rij_verwijderen()
On Error GoTo oeps
Dim answer As Integer
Dim RowNum As Long
    RowNum = InputBox("Nummer van de te wissen rij invullen.")
   
answer = MsgBox("Weet u zeker dat u de rij wilt wissen?", vbYesNo + vbExclamation, "Rijen  wissen?")
If answer = vbYes Then
Range(Cells(RowNum, 1), Cells(RowNum, 16384)).Delete
 
End If
oeps:
End Sub
--------------------------------------------------------------

Sub Knop1_Klikken()
On Error GoTo oeps
Dim Rng As Long
    Dim lngA As Long
    Dim lngB As Long
    
    Application.ScreenUpdating = False
    
    Rng = InputBox("Aantal in te voegen rijen?")
    
    If Rng = 0 Then Exit Sub
    
    Range(ActiveCell, ActiveCell.Offset(Val(Rng) - 1, 0)).EntireRow.Insert
    lngB = ActiveCell.Offset(-1, 0).Row
    lngA = Cells(lngB, Columns.Count).End(xlToLeft).Column
    Range(Cells(lngB, 1), Cells(lngB + Val(Rng), lngA)).FillDown
oeps:
End Sub
 
Je kan die eerste macro vervangen voor deze, dan hoef je enkel in die rij(en) een cel te selecteren en de macro doet de rest.
1,2,3 of meer rijen tegelijk als het nodig is:
Sub Rij_verwijderen()
On Error GoTo oeps
Dim answer As Integer
Dim RowNum As Long
answer = MsgBox("Weet u zeker dat u deze rij wilt wissen?", vbYesNo + vbExclamation, "Rijen wissen?")
If answer = vbYes Then
Rows(ActiveCell.Row).Resize(Selection.Rows.Count).EntireRow.Delete
End If
oeps:
End Sub
 
Een andere mogelijkheid is

Code:
Sub Rij_verwijderen()
Dim RowNum
    RowNum = InputBox("Nummer van de te wissen rij invullen.")
    If Not IsNumeric(RowNum) Then Exit Sub
    If MsgBox("Weet u zeker dat u de rij wilt wissen?", vbYesNo + vbExclamation, "Rijen  wissen?") = vbYes Then Rows(RowNum).EntireRow.Delete
End Sub
 
verwijderen

Code:
Sub M_snb()
    On Error Resume Next
    Application.InputBox("Selecteer de te verwijderen rijen", "mag het iets simpeler ?", , , , , , 8).EntireRow.Delete
End Sub

invoegen
Code:
Sub M_snb()
    On Error Resume Next
    Application.InputBox("Selecteer in te voegen rijen", "mag het iets simpeler ?", , , , , , 8).EntireRow.insert
End Sub
 
Laatst bewerkt:
Bedankt! Het werkt. Voor het invoegen heb ik die van Cobbe gebruikt. Voor het verwijderen die van Vena.
Geweldig hoe snel je hier antwoord krijgt.
:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan