Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Oude gegevens (rijen) wegschrijven naar ander tabblad  (gelezen 1077 keer)

0 leden en 1 gast bekijken dit topic.

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Oude gegevens (rijen) wegschrijven naar ander tabblad
« Gepost op: 16 juni 2022, 16:30:56 »
Dag lieve (mede)mensen,

Ik heb een tabel in excel met inschrijvingen.
Ik zou de gegevens in tabblad "inschrijvingen" waarvan de einddatum voorbij is willen verplaatsen naar een ander tabblad "oude gegevens"
Maar stel dat ik een fout heb gemaakt in de einddatum zou ik deze ook weer terug in het eerste tabblad willen krijgen.
Het mag met een knop gaan.

Ik heb me al heel wat gezocht en gevonden maar ik blijf altijd vastlopen op fouten.

Ik zou jullie weer zo dankbaar zijn om mee te denken.

Jannacy  :)

Mvg, Janna

[Office 2019]

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #1 Gepost op: 17 juni 2022, 03:39:55 »
Om de oude gegevens naar het andere tabblad te schrrijven.
Sub export()
    With Blad4
        For j = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(j, 3) < Now() Then
                Blad3.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = .Cells(j, 1).Resize(, 9).Value
                .Cells(j, 1).EntireRow.Delete xlUp
            End If
        Next
    End With
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #2 Gepost op: 17 juni 2022, 08:04:23 »
Om een bepaald item terug te zetten selecteer je op tabblad Oude gegevens in kolom A het item dat je wil terugzetten

en kan je onderstaande code gebruiken.
Sub Re_Import()
    Blad4.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = ActiveCell.Resize(, 9).Value
    ActiveCell.EntireRow.Delete xlUp
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #3 Gepost op: 17 juni 2022, 12:45:14 »
Dankjewel warm bakkertje  :)

Er is toch nog een probleem...

De export werkt. De gegevens van vandaag schreef de code ook al weg maar dit is me gelukt met aanpassing van de code.
Sub export()
    With Blad4
        For j = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(j, 3) < Now() - 1 Then
                Blad3.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = .Cells(j, 1).Resize(, 9).Value
                .Cells(j, 1).EntireRow.Delete xlUp
            End If
        Next
    End With
End Sub
 

Maar de verhuis gebeurt niet zoals gehoopt.  In het tabblad oude gegevens komt slechts 1 rij te staan, m.n. de rij van Anna.
Daarom heb ik in het nieuwe bestand in deze bijlage een tabblad inschrijvingen origineel gezet zodat ik de inschrijvingen kan terugplaatsen na een mislukte test.

Kan je nog eens kijken?

Jannacy
Mvg, Janna

[Office 2019]

Offline Pagadder

  • Volledig lid
  • **
  • Berichten: 183
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #4 Gepost op: 17 juni 2022, 14:51:25 »
Citaat
In het tabblad oude gegevens komt slechts 1 rij te staan, m.n. de rij van Anna
De oorzaak is omdat er geen gegevens staan in kolom A
Vul eens wat gegevens in in kolom A en test opnieuw
.

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #5 Gepost op: 17 juni 2022, 15:44:12 »
In de veronderstelling dat de Naam kolom NOOIT leeg zal zijn.

Sub export()
    With Blad4
        For j = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(j, 3) < Now() - 1 Then
                Blad3.Range("D" & Rows.Count).End(xlUp).Offset(1, -3).Resize(, 9).Value = .Cells(j, 1).Resize(, 9).Value
                .Cells(j, 1).EntireRow.Delete xlUp
            End If
        Next
    End With
End Sub

Sub Re_Import()
    Blad4.Range("D" & Rows.Count).End(xlUp).Offset(1, -3).Resize(, 9).Value = ActiveCell.Resize(, 9).Value
    ActiveCell.EntireRow.Delete xlUp
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #6 Gepost op: 17 juni 2022, 20:06:09 »
Dankje dankjewel !!  _/-\o_
Ik ga ermee aan de slag.
Mvg, Janna

[Office 2019]

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #7 Gepost op: 17 juni 2022, 20:29:36 »
Hoi,

Nu zie ik dat het inderaad te maken had met het feit dat kolom A niet ingevuld stond  :-[

ivm de re-import.
Je moet inderdaad in kolom A op de juiste rij gaan staan om gegevens op een juiste manier terug te zetten.
Maar als je toch per ongeluk fout staat loopt het ook helemaal fout en geraak je gegevens kwijt.

Ik wilde kolom B tot en met I dan beveiligen dat je hier niets kan selecteren maar dan lukt het overzetten niet.
Is er een andere manier om zeker geen gegevens te verliezen.

Groetjes,
Jannacy
Mvg, Janna

[Office 2019]

Offline Pagadder

  • Volledig lid
  • **
  • Berichten: 183
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #8 Gepost op: 17 juni 2022, 21:13:43 »
Beveiligen kan.
De code van waarschijnlijk een oververhit bakkertje vandaag. ;)
maar met een beveiliging
Sub Re_Import()
Sheets("Oude gegevens").Unprotect Password:="ww"
    Blad4.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = ActiveCell.Resize(, 9).Value
    ActiveCell.EntireRow.Delete xlUp
 Sheets("Oude gegevens").Protect Password:="ww"
End Sub
ww staat voor je gebruikte wachtwoord,dus ww veranderen met je eigen wachtwoord.
Je blad beveiligen de eerste keer handmatig instellen.
je kan namelijk een blad niet onbeveiligen met een macro als die nog niet beveiligd is. Dit is eenmalig.
Ik weet echter niet of ik je vraag volledig heb begrepen.

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #9 Gepost op: 18 juni 2022, 07:57:29 »
Houd er dan ook rekening mee dat het beveiligen van het 2de blad ook gevolgen heeft voor de export macro.
Sub export()
    Application.ScreenUpdating = False
    With Blad4
        For j = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(j, 3) < Now() - 1 Then
                Blad3.Unprotect "ww"
                Blad3.Range("D" & Rows.Count).End(xlUp).Offset(1, -3).Resize(, 9).Value = .Cells(j, 1).Resize(, 9).Value
                .Cells(j, 1).EntireRow.Delete xlUp
                Blad3.Protect "ww"
            End If
        Next
    End With
    With Application
        .Goto Blad4.[a1]
        .ScreenUpdating = True
    End With
End Sub

Sub Re_Import()
If MsgBox("Heb je de juiste rij in kolom A geselecteerd?", vbExclamation + vbYesNo, "Waarsschuwing") = vbYes Then
    Sheets("Oude gegevens").Unprotect Password:="ww"
        Blad4.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 9).Value = ActiveCell.Resize(, 9).Value
        ActiveCell.EntireRow.Delete xlUp
    Sheets("Oude gegevens").Protect Password:="ww"
Else: Exit Sub
End If
End Sub
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #10 Gepost op: 18 juni 2022, 08:30:09 »
Hallo,

Als die beveiliging als enig doel heeft te vermijden dat gegevens verkeerd worden teruggezet en er daardoor minstens een deel verloren gaan, dan is die beveiliging echt overbodig.
Met een kleine aanpassing aan de code worden de gegevens altijd correct teruggezet om het even of in de terug te zetten rij één of meerdere cellen (eender welke), of zelfs de ganse rij is geselecteerd:
Sub Re_Import()
    Blad4.Range("D" & Rows.Count).End(xlUp).Offset(1, -3).Resize(, 9).Value = Cells(ActiveCell.Row, 1).Resize(, 9).Value
    ActiveCell.EntireRow.Delete xlUp
End Sub

Waarmee ik niet heb gezegd dat ik principieel tegen beveiliging ben, integendeel  ;)

Mvg,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #11 Gepost op: 24 juni 2022, 17:21:15 »
Dankjewel lieve mensen  :thumbsup: _/-\o_

het is allemaal gelukt.  Ook MollyVH. 
Jij hebt inderdaad gezien dat het enige doel was om geen gegevens verloren te laten gaan.

Dit is mijn uiteindelijke code geworden.
Sub export()
    With Blad4
        For j = .Range("C" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(j, 3) < Now() - 1 Then
                Blad3.Range("D" & Rows.Count).End(xlUp).Offset(1, -3).Resize(, 9).Value = .Cells(j, 1).Resize(, 9).Value
                .Cells(j, 1).EntireRow.Delete xlUp
            End If
        Next
    End With
End Sub

Sub Re_Import()
    Blad4.Range("D" & Rows.Count).End(xlUp).Offset(1, -3).Resize(, 9).Value = Cells(ActiveCell.Row, 1).Resize(, 9).Value
    ActiveCell.EntireRow.Delete xlUp
End Sub
 
Mvg, Janna

[Office 2019]

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Oude gegevens (rijen) wegschrijven naar ander tabblad
« Reactie #12 Gepost op: 24 juni 2022, 20:34:01 »
Beveiliging en code gaan prima samen. Maar gebruik dan het OnOpen event van het workbook om een sheet te beveiligen. Bijvoorbeeld met een algemene code voor alle sheets...
Private Sub Workbook_Open()

Dim Sh          As Worksheet

    For Each Sh In Worksheets
        Sh.Protect UserInterFaceOnly:=True
    Next
   
End Sub
De gebruiker mag alleen dat wat is toegestaan, de code mag alles!
______________________________

Groet, Leo

 


www.combell.com