Ga naar inhoud

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


marcforier
 Delen

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


Het aantal kolommen speelt idd geen rol.

Volgens je code kopieer je nu de vierde rij van je calculatiebestand (één klant,meneer blanco,34 kolommen) naar je bestand overzicht op de eerste lege rij van je overzichtsbestand.

Je vragen zijn niet zo moeilijk op te lossen, dit is niets nieuws onder de zon

Maar er zijn een paar vragen ,waar is de naam te vinden van

Quote

de macro de naam van het betreffende bronbestand automatisch neemt

 

Staat die naam ergens in een bepaalde cel of.....

De andere vraag is

Quote

als een bepaalde waarde in een bepaalde cel van het betreffende tabblad van het calculatiebestand al bestaat

 Waar,welke cel,welke waarde, ik neem aan een bepaalde cel in rij 4), is dit een unieke waarde (klantnummer,artikelnummer....)

Maar zonder gelijkende voorbeeldbestandjes, ik ga niet gokken.

 

 

 

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

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

 Delen

×
×
  • Nieuwe aanmaken...