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

D.m.v. Inputbox rijen verwijderen.

Status
Niet open voor verdere reacties.

McMacro

Gebruiker
Lid geworden
11 dec 2009
Berichten
80
Beste Excellers,

Ik heb een werkblad waarop dossiers staan in de vorm van rijen.
Op het moment dat een dossier afgehandeld is, mag deze verwijderd worden.

Dit verwijderen kan door middel van een InputBox.
Dit alles lukt mij door mideel van onderstaande Macro:

Code:
Private Sub Verwijderen_Click()

Application.ScreenUpdating = False
Sheets("Sheet1").Unprotect password:="Password"
     
    Dim MySelection As Range
    Dim msg As String, Title As String
    Dim Config As Integer, Ans As Integer
    
        msg = "De opgegeven rij(en) zullen permanent verwijderd worden ! Doorgaan ?"
    On Error Resume Next
        Title = "Weet u zeker dat u door wilt gaan ?"
        Config = vbYesNo + vbExclamation
    
    Set MySelection = Application.InputBox _
            (Prompt:="Geef de rijnummers op die u wilt verwijderen.                              " _
                   & "bv. rij 10 moet verwijderd worden.                                         " _
                   & "Voer in: 10:10                                                             ", _
            Title:="Rij(en) verwijderen", Type:=8)

[COLOR="Purple"][B]Nu Had ik gedacht dat hier een code tussen komt te staan waar 
ik aangeef dat als een rij tussen 1 en 7 opgegeven wordt om te verwijderen dat de 
procedure dan afgebroken wordt omdat daar de titels en nog andere buttons staan. 
Mijn usedrange = A1:AO300
Waarvan A1:AO8 NIET gewijzigd mag worden.[/B][/COLOR]     

        MyErr = Err
        MySelection.Select
        
    On Error GoTo 0
    
    If MyErr <> 0 Then
        MsgBox "De procedure wordt nu afgebroken."
        Range("A7").Select
    Exit Sub
    
    End If
    
    Ans = MsgBox(msg, Config, Title)
    
    If Ans = vbYes Then
        MySelection.EntireRow.Delete
        MsgBox ("De selectie is met succes verwijderd!"), vbInformation
    Else
        Range("A7").Select
    End If
    
    Range("A7").Select

    Sheets("Sheet1").Protect password:="Password"
    Application.ScreenUpdating = True

End Sub

Zie Paarse tekst in de code. Kan iemand hiermee helpen?

Mijn dank is groot.

Groetjes...
 
Laatst bewerkt:
Code:
Private Sub Verwijderen_Click()
  Application.ScreenUpdating = False
  Sheets("Sheet1").Unprotect password:="Password"
    
  c4=InputBox ("Geef de rijnummers op die u wilt verwijderen." & vbcr & "bv. rij 10: 10 ; rij 20 tot 28: 20:27", "Rij(en) verwijderen", 8)

  if Val(c4) < 9 then c4=iif(instr(c4,":")>0; "9:" & split(c4,":")(1),9)
  rows(c4).delete

  Sheets("Sheet1").Protect password:="Password"
  Application.ScreenUpdating = True
End Sub
 
Beste Snb,

Bedankt voor de snelle reactie !!!

Ik heb de code toegepast. Maar helaas... Als ik 7 invoer, dan verwijdert hij ook rij 7.
Mijn Titels staan nu in A1:AO7. Deze mogen niet aangetast worden.

Btw, ik gebruik Excel 2000.

Code:
Private Sub Verwijderen_Click()
  Application.ScreenUpdating = False
  Sheets("Sheet1").Unprotect password:="Password"
    
  c4=InputBox ("Geef de rijnummers op die u wilt verwijderen." & vbcr & "bv. rij 10: 10 ; rij 20 tot 28: 20:27", "Rij(en) verwijderen", 8)

  if Val(c4) < 9 then c4=iif(instr(c4,":")>0[COLOR="Red"]; De dubbelepunt mag hier niet van Excel 2000 ik heb deze vervangen voor een komma[/COLOR] "9:" & split(c4,":")(1),9)
  rows(c4).delete

  Sheets("Sheet1").Protect password:="Password"
  Application.ScreenUpdating = True
End Sub

Maar ondanks de komma werkt de code niet zoals ik het graag had.
Enige tips?

Met vriendelijke groet,

McMacro

P.s. Wat doet dit: Applicication.SheetsInNewWorkbook = 1 ? En waar moet ik deze plaatsen?
 
Laatst bewerkt:
loopt als een zonnetje:
Code:
Private Sub Verwijderen_Click()
  c4 = InputBox("Geef de rijnummers op die u wilt verwijderen." & vbCr & "bv. rij 10: 10 ; rij 20 tot 28: 20:27", "Rij(en) verwijderen", 8)
  If Val(c4) > 8 Then Rows(c4).Delete
End Sub

Code:
sub simpel()
  Application.SheetsInNewWorkbook = 1
End Sub
 
Code:
Private Sub Verwijderen_Click()
  c4 = InputBox("Geef de rijnummers op die u wilt verwijderen." & vbCr & "bv. rij 10: 10 ; rij 20 tot 28: 20:27", "Rij(en) verwijderen", 8)
  If Val(c4) > 8 Then Rows(c4).Delete
End Sub

Vanuit gebruikers oogpunt zou ik het omdraaien en dus niet groter dan 8 dan Delete
maar kleiner dan 8 = msgbox "U kunt de rijen 1 t/m 7 niet verwijderen"
 
Vanuit gebruikersoogpunt wil ik gebruikers nooit lastigvallen met mededelingen.
Code:
Private Sub Verwijderen_Click()
  c4 = InputBox("Te verwijderen rijnummers vanaf rij 8." & vbCr & "bv. rij 10: 10 ; rij 20 tot 28: 20:27", "Rij(en) verwijderen", 8)
  If Val(c4) > 8 Then Rows(c4).Delete
End Sub
 
Vanuit gebruikersoogpunt wil ik gebruikers nooit lastigvallen met mededelingen.
Code:
Private Sub Verwijderen_Click()
  c4 = InputBox("Te verwijderen rijnummers vanaf rij 8." & vbCr & "bv. rij 10: 10 ; rij 20 tot 28: 20:27", "Rij(en) verwijderen", 8)
  If Val(c4) > 8 Then Rows(c4).Delete
End Sub

Ben het mee eens als het niet omzeilbare msgboxen zijn, maar zoals hierboven is het educatief. Een wat meer ervaren gebruiker van die sheet zal de msgbox al snel niet meer zien.
 
Het gaat niet om zien maar moeten klikken.

Code:
Private Sub Verwijderen_Click()
  c2=replace("Te verwijderen rijnummers vanaf rij 8.#bv. rij 10: 10#rij 20 tot 28: 20:27",vbcr)
  do until
    c4 = InputBox( c2 ,vbcr), "Rij(en) verwijderen", 8)
    c2="rij 1 t/m 8 kunnen niet verwijderd worden"
   loop until c4>8 or c4=""
  If Val(c4) > 8 Then Rows(c4).Delete
End Sub
 
We hebben het toch wel over een MsgBox ?
 
Code:
Private Sub Verwijderen_Click()
  c2 = Replace("Te verwijderen rijnummers vanaf rij 8.#bv. rij 10: 10#rij 20 tot 28: 20:27"[COLOR="Red"], "#"[/COLOR], vbCr)
  Do
    c4 = InputBox(c2, "Rij(en) verwijderen", 8)
    c2 = "rij 1 t/m 8 kunnen niet verwijderd worden"
   Loop Until c4 > 8 Or c4 = ""
  If Val(c4) > 8 Then Rows(c4).Delete
End Sub
 
@Rudi

Deze valt in ieder geval niet in de categorie domme antwoorden.
 
Geweldig Mannen...!!!

Ik moest kiezen uit de oplossingen die geboden zijn geworden. En het is deze geworden:

Code:
Private Sub Verwijderen_Click()

Application.ScreenUpdating = False
 Sheets("Sheet1").UnProtect password:="Password"

    c2 = Replace("Welke rij dient verwijderd te worden?#Bv. rij 10: 10#Rij 20 tot 28: 20:27", "#", vbCr)
    
    Do
    c4 = InputBox(c2, "Rij(en) verwijderen", 8)
    c2 = "Rij 1 t/m 7 kunnen niet verwijderd worden!!!"
    
    Loop Until c4 > 7 Or c4 = ""
    If Val(c4) > 7 Then Rows(c4).Delete
    
    Sheets("Sheet1").Protect password:="Password"
    Application.ScreenUpdating = True

End Sub

Mijn vraag is wel nog deze. Nu word(en) de rij(en) abrupt verwijderd nadat ik een rij vanaf rij 7 heb ingegeven. Kan er nog een tussenstap ingevoerd worden? Zodat ik ik nog een kans krijg om de verwijdering te annuleren?
Bijvoorbeeld (heel globaal)... "Weet u zeker dat deze rijen verwijderd moeten worden?"

If vbYes Then rows.delete
Else Exit Sub

Met vriendelijk groet en met veel dank aan jullie voor jullie expertise !!!

McMacro
 
Ik heb de oplossing.
En voor iedereen die er voordeel van heeft, hier volgt de code:


Code:
Private Sub Verwijderen_Click()

Application.ScreenUpdating = False
Sheets("Sheet1").Unprotect password:="Password"

    c2 = Replace("Welke rij dient verwijderd te worden?#Bv. rij 10: 10#Rij 20 tot 28: 20:27", "#", vbCr)
    
    Do
    c4 = InputBox(c2, "Rij(en) verwijderen", 8)
    c2 = "Rij 1 t/m 7 kunnen niet verwijderd worden!!!"
    
    Loop Until c4 > 7 Or c4 = ""
    If Val(c4) > 7 Then
        Dim Msg, Style, Title, Response
         Msg = "De gegevens worden permanent verwijderd! Doorgaan?"
         Style = vbYesNo + vbCritical + vbDefaultButton2
         Title = "Rij(en) verwijderen"
         Response = MsgBox(Msg, Style, Title)
         If Response = vbYes Then
            Rows(c4).Delete
            Range("A7").Select
         Else
            Range("A7").Select
         End If
    End If
    
    Sheets("Sheet1").Protect password:="Password"
    Application.ScreenUpdating = True

End Sub

Bedankt voor jullie hulp!

McMacro
 
Beetje korter
Code:
Private Sub Verwijderen_Click()
Application.ScreenUpdating = False
Sheets("Sheet1").Unprotect Password:="Password"
    c2 = Replace("Welke rij dient verwijderd te worden?#Bv. rij 10: 10#Rij 20 tot 28: 20:27", "#", vbCr)
    Do
    c4 = InputBox(c2, "Rij(en) verwijderen", 8)
    c2 = "Rij 1 t/m 7 kunnen niet verwijderd worden!!!"
    Loop Until c4 > 7 Or c4 = ""
    If Val(c4) > 7 Then
        If MsgBox("De gegevens worden permanent verwijderd! Doorgaan?", vbYesNo + vbCritical + vbDefaultButton2, _
                "Rij(en) verwijderen") = vbYes Then
            Rows(c4).Delete
            [A7].Select
        Else
            [A7].Select
        End If
    End If
    Sheets("Sheet1").Protect Password:="Password"
    Application.ScreenUpdating = True
End Sub
 
of
Code:
Private Sub Verwijderen_Click()
  Application.ScreenUpdating = False
  Sheets("Sheet1").Unprotect "Password"

  c2 = Replace("Welke rij dient verwijderd te worden?#Bv. rij 10: 10#Rij 20 tot 28: 20:27", "#", vbCr)
  
  Do
     c4 = InputBox(c2, "Rij(en) verwijderen", 8)
     If Val(c4) > 7 Then
       If MsgBox("De gegevens worden permanent verwijderd! Doorgaan?", vbYesNo + vbCritical + vbDefaultButton2,  "Rij(en) verwijderen") = vbYes Then
          Rows(c4).Delete
          c4=""
       End If
     End if
     c2 = "Rij 1 t/m 7 kunnen niet verwijderd worden!!!"
  Loop Until  c4 = ""

  Sheets("Sheet1").Protect "Password"
  Application.ScreenUpdating = True
End Sub
 
heren

is deze code ook zo aan te passen als ik in colom A een nummer heb staat bv van A2 tot A1000 (verschillende nummers)dat via userform dit nummer via cbo selecteer en dat dan hele rij verwijderd word wat met het geselecteerde nummer te maken heeft (userform word in blad1 opgeroepen) (gegevens die verwijderd moet staan in rij x op blad14)zijn niet beveiligd

gr arie
 
Twee dingen, het is een oud topic en je breekt in in iemand zijn vraag. Beide zijn niet toegestaan op Helpmij. Deze gaat dicht.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan