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

Macro "copy to overview"

Status
Niet open voor verdere reacties.

Phyxsius

Gebruiker
Lid geworden
28 jul 2006
Berichten
26
Hoi,

Ik heb een template gemaakt voor offertes, en een apart excelbestand met het totaaloverzicht van alle offertes.

Graag zou ik een macro voorzien in de offerte template die het volgende doet:
1/ Automatisch genereren van een offerte nummer, op basis van de laatste nummer in het totaaloverzicht. Deze nummer wordt weergegeven in een bepaalde cel in de offerte template.
2/ Automatisch kopiëren van de inhoud van bepaalde cellen uit de offerte template naar het totaaloverzicht. De inhoud moet op 1 (nieuwe) lijn komen te staan. De eerste cel bevat dan de offerte nummer uit 1/
3/ Het totaaloverzicht moet tenslotte automatisch saven en terug afsluiten.

Mooie theorie, maar ik heb geen flauw idee of dit mogelijk is, laat staan hoe dit te implementeren...
Iemand suggesties ?

Alvast bedankt !
 
Wel, alle punten zijn te maken maar het zou handig zijn als je een voorbeeldbestand (zonder gevoelige informatie) kunt plaatsen.

Met vriendelijke groet,


Roncancio
 
Wel, alle punten zijn te maken maar het zou handig zijn als je een voorbeeldbestand (zonder gevoelige informatie) kunt plaatsen.

Met vriendelijke groet,


Roncancio

In bijlage beide bestanden. In het bestand "Offerte.xls" heb ik meer uitleg geschreven.
Alvast bedank !


@ Hoornvan:
Dat klopt !
Reden van verschillende naam is dat deze reeds bezet was destijds. Op meerdere paarden tegelijk wedden is toch geen probleem neem ik aan ? Of zijn beide fora gelinkt aan elkaar ofzo ?

Groeten en prettige feesten nog !
 

Bijlagen

Dit wordt crossposting genoemd en dat wordt door de helpers op de fora meestal niet gewaardeerd. Het is mogelijk dat op het ene forum iemand aan jouw oplossing werkt terwijl op het andere forum de oplossing reeds gegeven is. De verloren tijd kan dan beter gebruikt worden om iemand anders te helpen. Uit respect voor de helpers van beide fora is het dus aangewezen om een link naar dat andere forum te plaatsen zodat er eventueel gekeken kan worden in hoeverre de vraag reeds opgelost/niet opgelost is.
 
Zie bijlage. Je moet in de macro nog enkel het pad aanpassen van Overview Offertes
 

Bijlagen

Bedankt.
Nog 3 dingetjes:
1/ Vermits elke offerte een andere bestandsnaam kan en zal hebben, zou het handig zijn dat de naam van het "bronbestand" automatisch gelijk is aan de bestandsnaam, ipv de vaste naam "offerte.xls". Kan dit via ActiveSheet ofzo ingesteld worden ?

2/ Om te verhinderen dat men 2 keer een offerte nummer kan creëren voor dezelfde offerte, zou de macro allereerst moeten controleren of er in offerte.xls (of dus de echte bestandsnaam) in cel A2 reeds een nummer ingevuld is.
=> Indien nee: creëer nieuw nummer en kopieer de gegevens naar het overview.
=> Indien ja: Behoud reeds ingevuld referentienummer, maar kopieer opnieuw alle velden naar het overview onder deze referentienummer. Op deze manier kan een lijn altijd ge-update worden, indien iets aan de offerte wijzigt.

3/ Ik heb de macro ook aangepast zodat hij meerdere verschillende cellen uit "Offerte.xls" kopieert naar bepaalde cellen in "Overview.xls" op dezelfde lijn.
Bv.
.[BD21].Copy
wsTo.Cells(Rows.Count, 2).End(xlUp).Offset(1).PasteSpecial xlPasteValues
.[AZ18].Copy
wsTo.Cells(Rows.Count, 5).End(xlUp).Offset(2).PasteSpecial xlPasteValues

Echter een belangrijk probleem: hij kijkt telkens in die desbetreffende kolom naar de laatst ingevulde waarde, om dan via "Offset(1)" de nieuwe waarde in te vullen. Dit zorgt er voor dat als er op een vorige lijn toevallig in deze kolom géén waarde ingevuld is, dat hij die nieuwe waarde dan in die VORIGE lijn zet ipv op de nieuwe.
Volgens mij moet dus de "End(xlUp)" aangepast worden, naar "End(Rows.count, 2)" ofzo iets. Waarbij de nieuwe lijn steeds de "laatste waarde in kolom 2 + 1" is. Mijn VBA syntax kennis is echter te beperkt... Enig idee ?

Alvast bedankt.

PS: ik zal in het andere forum de links leggen. Ik kan best begrijpen dat dit frustrerend kan zijn :thumb:
 
Laatst bewerkt:
Probeer de bijlage eens uit
 

Bijlagen

Ik heb jouw bestand uitgeprobeerd, en dat werkte perfect.
Vervolgens heb ik dit gekopieerd naar mijn echt bestand, en de nodige referenties aangepast.

Het eerste deel van de IF functie werkt vlekkeloos, enkel nu krijg ik steeds de foutmelding "Object variable or With block variable not set" bij de ELSE functie.
Ik geraak er niet wijs uit en zie echt niet wat ik fout heb overgezet.

Daarom even in bijlage de werkelijke bestanden (heb enkel de desbetreffende cellen laten staan).
Zou je aub eens kunnen controleren waar ik hier nu nog in de fout ga ?

Alvast bedankt weeral !
 

Bijlagen

Het probleem zat hem in de opmaak v/d offertenummercellen
 

Bijlagen

Ik dacht al dat het énige verschil de opmaak was.
In ieder geval heel erg bedankt ! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan