Toevoegen datum

Status
Niet open voor verdere reacties.

gelens

Terugkerende gebruiker
Lid geworden
4 dec 2009
Berichten
1.116
Forumleden,

Ik heb een macro gemaakt om data weg te schrijven. De gebruiker vult een "input" sheet in en schrijft deze weg naar het sheet "nieuw". Voordat dat uitgevoerd wordt haal ik de overeenkomstige data uit sheet "nieuw" en schrijf deze weg naar sheet "oud". Dit om evt nog terug te kunnen gaan naar een oudere versie. Sheet "Nieuw" is dus het actuele data bestand. Ik heb nu een paar problemen. Bij het wegschrijven van "Nieuw"naar "Oud"zou ik graag de systeemdatum toevoegen. Hoe krijg ik die er bij ?

Is het mogelijk om in de macro naar een gedefinieerde naam te verwijzen ? In de macro staat nu "106901" maar dat wijzigt regelmatig. Deze code staat in een cel die ik gedefinieerd heb.

Als de macro korter kan dan hoor ik dat ook graag. ;)

Code:
Sub Wegschrijven()
Dim cl As Range
Dim myDate
myDate = Date
' Verwijderen data uit sheet "nieuw" en opslaan in sheet "oud"
  For Each cl In Sheets("nieuw").Range("d1: d10000 ")
    If cl = "106901" Then cl.Offset(, -3).Resize(, 7).Cut Sheets("oud").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Next
    Sorteren
    For Each cl In Sheets("input").Range("d1: d10000 ")
  'Data uit sheet "Input" wegschrijven naar sheet "Nieuw"
    If cl = "106901" Then cl.Offset(, -3).Resize(, 6).Cut Sheets("nieuw").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    
    Next
  Sorteren
    
End Sub
 
Laatst bewerkt:
De datum in cel A1 zetten doe je via:

Range("A1") = Date

Een benoemd bereik gebruiken kan met:

Code:
If cl = Range("MijnBenoemdBereik") Then

Merk de analogie op met iets als: Range("A1")
 
Wigi

Bedankt voor deze snelle reactie.
Met de vraag over de datum ben ik waarschijnlijk niet duidelijk genoeg geweest. Het is de bedoeling dat achter elke regel die naar sheet"oud" verplaatst wordt de datum komt te staan. Via een omweg lukt dat wel maar dat maakt de macro minder overzichtelijk.

Omdat ik niet weet op welke regel deze komt te staan verwacht ik dat er in het onderstaande stukje code de datum toegevoegd zou moeten worden.

Maar hoe doe ik dat ?



Code:
 If cl = "106901" Then cl.Offset(, -3).Resize(, 7).Cut Sheets("oud").Cells(Rows.Count, 1).End(xlUp).Offset(1)
 
Voordat dat uitgevoerd wordt haal ik de overeenkomstige data uit sheet "nieuw" en schrijf deze weg naar sheet "oud". Dit om evt nog terug te kunnen gaan naar een oudere versie. Sheet "Nieuw" is dus het actuele data bestand. Ik heb nu een paar problemen. Bij het wegschrijven van "Nieuw"naar "Oud"zou ik graag de systeemdatum toevoegen.
Denk eens anders:

Code:
Sub anders()
  sheets("nieuw").copy sheets(sheets.count)
  with sheets(sheets.count).usedrange
    .parent.name="oud"
    .columns(.columns.count).offset(,1)=date
  end with
End Sub
 
SNB

Op dit forum leer je wel anders denken en dat is het mooie van dit forum.

Maar de data die ik van sheet "Nieuw" naar sheet "Oud"over wil brengen is niet alle data maar slechts een selectie daaruit, vandaar
Code:
if cl="106901"then
En deze data wordt toegevoegd aan de reeds bestaande data op sheet "Oud".

Ik begrijp jouw voorstel nog niet helemaal maar ik denk dat deze de hele sheet "nieuw"naar sheet "Oud" verplaatst.
Of zie ik dit verkeerd?

Ik zie ondertussen dat het bijgevoegde bestandje verdwenen is. Dat had de vraag waarschijnijk een stuk duidelijker gemaakt.
 
Aangezien je steeds een blok van 7 cellen kopieërt
Code:
If cl = "106901" Then cl.Offset(, -3).Resize(, 7).Cut Sheets("oud").Cells(Rows.Count, 1).End(xlUp).Offset(1)
Sheets("Oud").Cells(Rows.Count, 1).End(xlUp).Offset(, 7) = Date
 
Laatst bewerkt:
Warm Bakkertje,

Bedankt voor de reactie. Ziet er logisch uit maar voor een beginnend VBA-er ( ik dus ) was het een onvindbare oplossing.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan