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

Nieuwe regels wegschrijven

Status
Niet open voor verdere reacties.

Danielle22

Gebruiker
Lid geworden
8 mei 2007
Berichten
378
Hallo,

Ik heb een macro die bepaalde resultaten wegschrijft naar de tabbladen waar de bepaalde testgroepen in vallen (zie bijlage)

Maar nu wil ik eigenlijk dat de gegevens maar 1 keer gekopieerd worden. Dus als er op de knop “Kopie” wordt geklikt dan moet de data weggeschreven worden (dat doet de macro al) en in het hoofdblad moet er een opmerking met datum komen dat deze regels al gekopieerd zijn.

Bij een volgende keer worden er weer nieuwe regels onder de oude regels geplakt en die moeten dan weer weggeschreven worden, etc. De al weggeschreven regels moeten dus niet opnieuw gekopieerd worden.

Weet iemand hoe ik dit kan oplossen?

Groetjes,

Danielle

Bekijk bijlage voorbeeldtest.xlsm
 
Test dit eens.
 

Bijlagen

  • voorbeeldtest.xlsm
    22,8 KB · Weergaven: 47
Super, heel erg bedankt!

Kan er ook een bericht komen als ze op kopie klikken maar dat ze geen nieuwe regels hebben toegevoegd?

Nu komt er een foutmelding. Ook wel logisch omdat er geen nieuwe regels zijn toegevoegd, maar het is duidelijker als er een melding voor de gebruiker komt.

Groetjes,

Danielle
 
Zo dan
Code:
Sub tsh()
    Dim Sh As Object, Hb As Object
    Dim Rng As Range
    
    Set Hb = Sheets("hoofdblad")
    If Application.CountBlank(Hb.Cells(1).CurrentRegion.Columns(5)) = 0 Then
        MsgBox "Geen regels gekopieerd", vbInformation, "Klaar"
        Exit Sub
    End If
    Set Rng = Hb.Cells(1).CurrentRegion.Columns(5).SpecialCells(xlCellTypeBlanks)
    Rng = "Nieuw"
    For Each Sh In Sheets
        If Sh.Name <> Hb.Name Then 'het uitsluiten van het hoofdblad
            Hb.Range("A1").CurrentRegion.AdvancedFilter 1, Sh.Columns(1).Resize(, 2).SpecialCells(2)
            Hb.Cells(1).CurrentRegion.Offset(1).Resize(, 4).Copy Sh.Range("C" & Rows.Count).End(xlUp).Offset(1)
        End If
    Next
    Hb.ShowAllData
    Rng = "Reeds gekopieerd op " & Date
End Sub
 
Een 'iets' andere aanpak.
Status is niet meer van belang.
Dit is de enige code die je nodig hebt.
De gebruiker hoeft op geen enkele knop te drukken.

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    With Sheets("hoofdblad")
         If Sh.Name <> .Name Then .Cells(1).CurrentRegion.AdvancedFilter 2, Sh.Columns(1).SpecialCells(2), Sh.Cells(1, 3)
    End With
End Sub
 

Bijlagen

  • __splitsing_db.xlsb
    20,2 KB · Weergaven: 43
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan