Ik heb een VBA code die specifieke data (1 rij in een specifiek tabblad) in het geopende calculatiebestand wegschrijft naar een ander, vast overzichtsbestand.
Maw, uit verschillende calculatiebestanden (1 per klant) wordt met een klik op een button deze data in het overzichtsbestand toegevoegd, zodat je in dit overzichtsbestand opvolging kan doen van alle calculatiebestanden (=klanten).
Momenteel worden deze data altijd 'toegevoegd', ook al bestaat de specifieke data (=rij) al in het overzichtsbestand, waardoor er dubbele, identieke rijen ontstaan.
Volgende dingetjes wil ik graag voorzien:
1. Ik wil nu graag in de VBA inbouwen dat, als een bepaalde waarde in een bepaalde cel van het betreffende tabblad van het calculatiebestand al bestaat in de desbetreffende cel in het overzichtsbestand, de betreffende rij overschreven wordt, ipv toegevoegd. Indien de waarde nog niet bestaat, dan dienen de gegevens toegevoegd worden in de eerstvolgende lege rij, zoals reeds gebeurt in de bestaande VBA.
2. Het zou nog mooier zijn, als bovenstaande werkt in een macro die automatisch uitgevoerd wordt bij het sluiten van het calculatiebestand.
3. Een tweede bijkomende wens is dat de macro de naam van het betreffende bronbestand automatisch neemt, in plaats van deze te beschrijven in de macro (er wordt een calculatiebestand 'calculatie blanco' geopend; na invullen klantgegevens wordt deze opgeslagen met een macro waarbij deze het bestand opslaat onder de naam in een specifieke cel; de macro dient dus te herkennen dat het om dit nieuwe bestand 'calculatie klantnaam' gaat, en niet langer over 'calculatie blanco'
Mijn bestaande macro ziet er als volgt uit :
Sub Dossiernaplaatsing()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Overzicht verkopen.xlsm"
Set doel = Workbooks("Overzicht verkopen.xlsm").Worksheets("Blad1")
LRDoel = doel.Cells(doel.Rows.Count, "A").End(xlUp).Offset(1).Row
Workbooks("Calculatieblanco.xlsm").Worksheets("Overzicht Offerte").Range("A4:AH4").Copy
Workbooks("Overzicht verkopen.xlsm").Worksheets("Blad1").Range("A" & LRDoel).PasteSpecial xlPasteValues
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Alvast dank !
Marc