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

Advokatenbeheer

Status
Niet open voor verdere reacties.

Marky76

Gebruiker
Lid geworden
26 okt 2002
Berichten
424
Beste,

Ik heb al eens dit bestandje doorgestuurd en werd geholpen met de nodige VBA programmatuur.
Dus als in in het bestandje in het tabblad lijst achter een lijn een bepaalde status zet,
word dit gekopieerd naar het desbetreffende tabblad.
Maar om gemakkelijk te kunnen werken zou die lijn ook moeten verdwijnen uit het tabblad
'lijst' zodat enkel de openstaande zaken blijven staan.
Graag had ik ook de mogelijkheid om undo te kunnen doen, want zoals jullie weten kan men nadat de macro is uitgevoerd niet meer CTRL+Z doen of UNDO en dit is soms vervelend, zou het mogelijk zijn om dit ook in VBA te voorzien zodat wanneer ik een lijn een status heb gegeven, maar me vergist heb en dit dan kan terugzetten in het tabblad lijst?

Greetz,
 

Bijlagen

Graag had ik ook de mogelijkheid om undo te kunnen doen, want zoals jullie weten kan men nadat de macro is uitgevoerd niet meer CTRL+Z doen of UNDO en dit is soms vervelend, zou het mogelijk zijn om dit ook in VBA te voorzien zodat wanneer ik een lijn een status heb gegeven, maar me vergist heb en dit dan kan terugzetten in het tabblad lijst?

Dat is mogelijk maar wel lastig. Ik probeer iets in mekaar te steken, maar kan een tijd duren. Je kan best zelf al wat googlen naar een stukje (algemene) code die je dan aanpast voor jouw bestand.

Wigi
 
Laatst bewerkt:
Mark

Test dit eens uit. Er wordt telkens een kopie genomen van het blad Lijst zodat nadien daaruit terug de gedelete rij gehaald kan worden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Application.ScreenUpdating = False

If Target.Column = 8 And Target.Row > 1 Then
    
    'make backup
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets("Lijst (2)").Delete
    Application.DisplayAlerts = True
    Sheets("Lijst").Copy After:=Worksheets(Worksheets.Count)
    Worksheets("Lijst (2)").Range("I1") = Target.Row
    
    'do copying and deleting of row
    Select Case Target.Value
        Case "Gerecupereerd"
            Set ws = Worksheets("Recup")
        Case "Verlies"
            Set ws = Worksheets("Verlies")
        Case "Gedeeltelijk"
            Set ws = Worksheets("Gedeeltelijk")
    End Select
    Range("A" & Target.Row, "G" & Target.Row).Copy ws.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    Range("A" & Target.Row).EntireRow.Delete
    Worksheets("Lijst").Select
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End If
End Sub

Sub terugzettenrij()
Dim oldsheetname As String
With Worksheets("Lijst (2)")
    .Select
    Application.EnableEvents = False
    oldsheetname = .Range("H" & .Range("I1"))
    Worksheets(oldsheetname).Range("A" & Rows.Count).End(xlUp).Resize(1, 7).ClearContents
    .Range("A" & .Range("I1"), "H" & .Range("I1")).Cut _
        Worksheets("Lijst").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    Application.EnableEvents = True
    Worksheets("Lijst").Select
    MsgBox "De rij is onderaan opnieuw bijgezet."
End With
End Sub

Wigi
 
Laatst bewerkt:
Wigi,

Ik heb het geprobeerd en de lijn gaat dan effectief weg en alles word gecopieerd naar
"Lijst 2", maar als ik het dan wil terugzetten wil dit niet lukken.
Dan doe ik via het menu de macro open en dan kies ik de macro "terugzetten blad2",
maar dan krijg ik een foutmelding dat "opmerkingen na End Sub, End Fucntion........
moeten komen.
En als ik nu een klant gezet heb bij verlies en daarna zie ik dat het gerecupereerd moest zijn, gaat hij de lijn die dan in verlies stond wegdoen, want anders gaat dat geen overzichtelijk lijst meer zijn indien men zich eens vergist, en vergissen doe je altijd eens.

Groeten, Mark.
 

Bijlagen

Mark

1. Verander de bestandsnaam Recup in Gerecupereerd. Anders loopt hij vast op dat blad.

2.

Ik heb het geprobeerd en de lijn gaat dan effectief weg en alles word gecopieerd naar "Lijst 2", maar als ik het dan wil terugzetten wil dit niet lukken.
Dan doe ik via het menu de macro open en dan kies ik de macro "terugzetten blad2",
maar dan krijg ik een foutmelding dat "opmerkingen na End Sub, End Fucntion........
moeten komen.

Je moet idd "terugzetten blad2" uitvoeren. Maak er indien gewenst een knop voor.

Die foutmelding krijg ik niet. Het werkt goed bij mij.

3.

En als ik nu een klant gezet heb bij verlies en daarna zie ik dat het gerecupereerd moest zijn, gaat hij de lijn die dan in verlies stond wegdoen, want anders gaat dat geen overzichtelijk lijst meer zijn indien men zich eens vergist, en vergissen doe je altijd eens.

Die lijn wordt idd verwijderd waar je ze oorspronkelijk - foutief - had gezet.

Wigi
 
Wigi,

Wat bedoel je met bestandsnaam recup veranderen in gerecupereerd.
In eigenschappen gaan in de VBA gaan?
Als alle lijnen weg zijn in het tabblad lijst. En ik doe dan macro Terugzetten blad2 werkt het niet.
Anders kan jij het bestandje aanpassen, want lukt me niet.

Groeten,
 
Laatst bewerkt:
Wat bedoel je met bestandsnaam recup veranderen in gerecupereerd.
In eigenschappen gaan in de VBA gaan?

Sorry, typfout. Je moet de tabbladnaam Recup onderaan veranderen in Gerecupereerd. Dit doe je ook in de code (een maal) ongeveer in het midden van de code. In deze zin:

Code:
Set ws = Worksheets("Recup")

Als alle lijnen weg zijn in het tabblad lijst. En ik doe dan macro Terugzetten blad2 werkt het niet.
Anders kan jij het bestandje aanpassen, want lukt me niet.

Je kan enkel de laatste lijn die je wegzette, terughalen. Anders wordt veel moeilijker om te programmeren als je veel meer flexibiliteit en mogelijkheden wilt hebben.

Wigi
 
Wigi,

Alles werkt goed, behalve als ik een lijn wil terugzetten, dan geeft hij nog steeds die foutmelding van daarstraks.
Je naam staat toch achter de END SUB in de code, dus dat kan het toch niet zijn.
En stel dat ik een lijst op gerecupereerd zet, dan gaat die verdwijenen uit lijst en komt
goed terecht in het tabblad "Gerecupereerd", dat ik heb aangepast alsook in de code zoals jij hebt aangegeven.
Maar als ik wil terugzetten, dan op ik vanuit het tabblad lijst de macro terugzetten, maar dan krijg ik terug die ene foutmelding.

Mvg,
 
Je moet natuurlijk enkel de code kopiëren, niet "Wigi" :rolleyes: En je begreep maar niet hoe die fourmelding er kwam... :)
 
Laatst bewerkt:
Wigi,

Bedankt het werkt.
De foutmelding die erop kwam gaf de indruk dat je na End Sub iets mocht zetten en ik heb het eens weggelaten uit de code maar niet gesaved denk ik en daarmee dat het misschien niet werkte.
In ieder geval nu werkt het behoorlijk.
Nu kan er een lijn weggezet worden naar de het gewenste tabblad en bij vergissing ook
teruggezet worden, want dat zie je vaak, macro's die goed werken, maar men vergeet
dat men UNDO niet kan doen en daarvoor ook code moet schrijven.

Thanks, Mark.
 
De foutmelding zegt dat er niets mag staan na End Sub.

Nu kan er een lijn weggezet worden naar de het gewenste tabblad en bij vergissing ook teruggezet worden, want dat zie je vaak, macro's die goed werken, maar men vergeet dat men UNDO niet kan doen en daarvoor ook code moet schrijven.

Dat is niet voor niks dat dat vaak niet gedaan wordt. Dat is namelijk heel moeilijk, je moet met enorm veel dingen rekening houden, er code voor schrijven, ... Dit hier was nog simpel maar ik kan mij wel inbeelden dat er veel moeilijkere situaties zijn. Het is bijv. niet voor niets dat de ASAP utilities weinig UNDO functies hebben.

Anyway, blij dat het opgelost is.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan