Ga naar inhoud

Excel: Data autom kopiëren naar een ander bestand; speficiek


marcforier

Aanbevolen berichten

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

Link naar reactie
Delen op andere sites

@dotchiejack 

Dankje voor je reactie.

Ik begrijp je vraag eigenlijk niet goed; is het van belang over hoeveel kolommen het dan gaat? Die range kan ik zelf wel aanpassen. Dus met twee kolommen is prima: als in het calculatiebestand de te kopiëren waarde in cel A1 reeds bestaat in een rij in kolom A in het overzichtsbestand, moet A1 en B1 overschreven worden in het overzichtsbestand. Als die nog niet bestaat, moet A1 en B1 toegevoegd worden op de eerstvolgende lege rij van het overzichtsbestand.

Link naar reactie
Delen op andere sites

de naam van de macro: het is de macro die ik toevoegde; daarin zou dus code moeten komen van het geopende bronbestand. Er staat nu in deze macro Workbooks("Calculatieblanco.xlsm")

Dat zou dus hander zijn als hier de naam van het nu open zijnde bronbestand neemt. Die naam verandert steeds omdat er vertrokken wordt van een "calculatieblanco'"en dus bij opslaan naar "calculatieklantnaam"; dus code met iets van "current workbook" :-) 

 

Er wordt idd de hele rij gekopieerd en toegevoegd aan het overzichtsbestand (de hele rij blijft dus identiek), of zou de betreffende rij moeten overschrijven als er in een cel in kolom D van het overzichtsbestand reeds de waarde van cel D4 van het bronbestand voorkomt.

 

 

Link naar reactie
Delen op andere sites

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.