• 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: Data wegschrijven

Status
Niet open voor verdere reacties.

EdeBruyn

Gebruiker
Lid geworden
28 nov 2016
Berichten
22
Hallo allemaal,

Ik ben (nog steeds) bezig met het maken van een database waarin ik al onze leveranciersdata in ga verwerken. Het is 1 bestand met 3 verschillende tabbladen:


- Gespreksdata: Hierin staat alle data per leverancier opgeslagen

- Data opvraag: Hierin kun je een leverancier selecteren en de meest relevante / laatste informatie wordt getoond

- Invoer data: Hierin kan nieuwe data worden ingevoerd per leverancier. Er moet een leverancier worden geselecteerd en na het invoeren van de data kan met een knop (macro) de data worden wegschreven naar het tabblad 'Gespreksdata'.


Dit laatste werkt helaas nog niet helemaal goed. Het wegschrijven gaat prima, maar wordt deze steeds op dezelfde plek weggeschreven i.p.v. bij de juiste leverancier. Ik mis nu de verticaal zoeken functie. Ik heb even snel een bestandje gemaakt met de opzet van formulier. Normaal gesproken kan je in het bestand dus filteren op leveranciersnaam, het bijbehorende leveranciersnummer veranderd automatisch mee. Gezien hier gevoelige info in staat heb ik deze moeten verwijderen uit het bestand.

Mijn vraag: Hoe krijg ik m.b.v. een macro data weggeschreven uit tabblad 'Invoer data' naar het tabblad 'Gespreksdata' waarbij de data terecht komt bij de juiste leverancier?

Hoor graag of jullie hiervoor een oplossing weten!

Mvg,

Emile


Bekijk bijlage Leveranciersdata_macro.xlsm
 
Kan het wellicht kloppen dat dit met de 'relatieve verwijzing' knop bij MACRO instellingen te maken is? Hopelijk hebben jullie nog ideeën!
 
EdeBruyn,

inderdaad, in je macro wijs je U5 aan als de plaats waar naartoe gekopieerd moet worden.

Is het de bedoeling dat je voor elk van de mogelijke voorstellen een eigen knop maakt ('Schrijf voorstel 1' t/m Schrijf voorstel 5'?)
 
Dank voor je reactie! Dat geldt dat dan voor leverancier 1. In totaal zijn er ongeveer 300 leveranciers waar data voor ingevuld moet worden. Elke leverancier doet meerdere voorstellen, vandaar de meerdere knoppen.

Mijn idee was dus om in het tabblad 'Invoer data' eerst de betreffende leverancier te selecteren, en dat de data automatisch wordt weggeschreven bij de juiste leverancier in 'Gespreksdata'.

Als ik alleen U5 selecteer, ook al heb ik 'relatieve verwijzingen gebruiken' geselecteerd, dan weet Excel volgens mij niet bij welke leverancier het moet worden ingevuld toch? En zal de data altijd worden weggeschreven bij leverancier? Of kan dit wel?

Dank!
 
Emile,

kijk eens of je hier verder mee komt
 

Bijlagen

Dank voor de moeite! Ik kom er alleen helaas niet uit. Volgens mij gaat er nog iets niet goed bij het 'selecteren' van de leverancier. De data wordt nu weggeschreven op de kolomnamen.
 
Oeps,

de macroknop 'Schrijf doel CAM' moet verwijzen naar de macro Doel_CAM ipv Doel_CAM_wegschrijven(cel)
 
Er waren nog enkele verwijziging niet helemaal goed. Volgens mij doet deze bijlage wat je gevraagd hebt
 

Bijlagen

Ah echt super dat je een manier hebt gevonden! Als ik de knoppen inclusief (door jou gemaakte) macro's kopieer naar mijn eigen blad krijg ik alleen een foutmelding.

Zou je wellicht in stappen kunnen uitleggen hoe je dit gedaan hebt? En is dit puur met behulp van de macro of heb je daarnaast ook nog in VBA moeten sleutelen?

Nogmaals super, hoor het heel graag!
 
Emile,

Op tabblad "Gespreksdata" heb ik twee bereiken gedefinieerd:
1) Leveranciers (=VERSCHUIVING(Gespreksdata!$C$4;;;AANTALARG(Gespreksdata!$C$4:$C$404);1))
2) Leveranciersnrs (=VERSCHUIVING(Gespreksdata!$A$4;;;AANTALARG(Gespreksdata!$C$4:$C$404);1)

Op tabblad "Invoer data" heb ik één bereik gedefinieerd:
1) regelnummer (='Invoer data'!$B$2)

In cel B2 op tabblad "Invoer data" staat een formule
Code:
=VERGELIJKEN(A3;Gespreksdata!C1:C404;0)
die bepaalt op welke regel de geselecteerde leverancier staat.
Op hetzelfde tabblad is gegevens validatie in de cel A3: verwijzend naar bereik Leveranciers
In A5 staat de formule
Code:
=INDIRECT(ADRES(regelnummer;1;;;"Gespreksdata"))
die het leveranciersnummer opzoek dat hoort bij de geselecteerde Leverancier.

Als je dit ook in je eigen bestand doet denk ik dat het wel gaat werken. Succes!
 
Haije,

Dank voor de toelichting, ik ben er bijna helemaal uit! Super dat het kan. Ik zag alleen dat niet alle data (4 stuks) wordt gekopieerd uit het 'invoer' tabblad. Namelijk 'aantal dagen', 'samenwerkingsbonus', training & E-learning' en 'marge' wordt niet meegenomen met het wegschrijven. Wellicht dat ik dit in de code nog kan aanpassen.

Ik heb de opzet van het bestand iets moeten uitbreiden, maar heb de door jouw beschreven bovenstaande stappen allemaal (volgens mij) goed toegevoegd aan het bestand.

Ik zou nu alles goed staat graag de macro opnieuw opnieuw willen opnemen om deze toe te voegen voor de andere knoppen. Heb je de macro in zijn geheel kunnen opnemen of moet er nog gesleuteld worden in visual basics?

Hoor het heel graag van je, hij is bijna klaar!
 
Emile,

ik heb voor elke knop een macro gemaakt die de locatie waar naartoe gekopieerd moet worden bepaalt en doorspeelt naar een algemene macro die de kopieeractie uitvoert; zie in de VBA Editor (Alt + F11)
 
Dat zag ik ja, die verwijst weer met een simpele code steeds naar de algemene wegschrijf-macro. Echter, de algemene wegschrijf-macro klopt niet helemaal door 2 redenen:

- Er worden cellen gekopieerd (en dus weggeschreven) die niet gekopieerd moeten worden (enkele standaard lege kolommen). Dit komt omdat de de hele rij range is geselecteerd, i.p.v. de losse cellen die gekopieerd moeten worden.

- De data wordt juist weggeschreven per leverancier en op de juiste plek, echter haalt de macro steeds de data op uit de kolom 'Doel CAM'. Bijvoorbeeld, bij het tabblad 'invoer' wordt data ingevuld in de kolom 'Leverancier voorstel'. Ik druk op 'Schrijf leverancier voorstel 1'. De macro haalt de data opnieuw uit de kolom 'Doel CAM'.

Vandaar ook mijn vraag hoe de macro is uitgevoerd. Is deze geheel opgenomen of moet er ook gesleuteld worden in vba?

Thanks.
 
Foutje:o

In deze versie worden de voorstellen uit kolom C gehaald en het eindresultaat uit kolom D.

Kun je je eerste opmerking nader toelichten?
 

Bijlagen

Super! Ik heb de formule aan kunnen passen voor mijn bestand en hij schrijft nu alles op de juiste plaats weg met de juiste knoppen. Bedankt!

Wat ik bedoelde met mijn eerste opmerking is, dat niet alle velden uit 'invoer' juist worden weggeschreven. Als ik alle data invul die ingevuld moeten worden (in totaal 17 velden) dan worden niet alle 17 velden weggeschreven namelijk:

- 'Dagen' wordt niet ingevuld --> de bijbehorende data wordt weggeschreven in de volgende cel (betalingskorting) --> de rest v/d data schuift ook op.
- 'Training & E-learning' wordt niet ingevuld --> zelfde verhaal als bovenstaand
- 'Indien ja: prijsaanpassing' wordt niet ingevuld --> zelfde verhaal als bovenstaand

Ik heb dit geprobeerd aan te passen in de code bij 'range' maar krijg het helaas niet helemaal lekker. Daarnaast nog 3 kleine schoonheidsvragen:

Is het mogelijk om:
- Na het wegschrijven op het tabblad invoer de weggeschreven cellen leeg te maken, maar wel met behoud van de celinstellingen (standaard, financieel, getal, etc)?
- De opmaak (opvulkleur) van de weggeschreven cellen blanco te maken?
- Na het wegschrijven op het tabblad 'invoer' bovenaan de pagina te eindigen i.p.v. iets daar beneden?

Ik ga zelf even zoeken naar de codes voor bovenstaande schoonheidsdingen, dit is het laatste en dan is alles klaar :) Nogmaals bedankt voor alle / snelle hulp!
 
Inmiddels 2 v/d 3 'schoonheidsvragen' opgelost. Dan rest alleen nog:

- Alle cellen juist gekopieerd
- Na het wegschrijven op het tabblad invoer de weggeschreven cellen leeg te maken, maar wel met behoud van de celinstellingen (standaard, financieel, getal, etc)?
 
Het laatste is ook toegevoegd, dus alleen moet nog gezorgd worden dat alle cellen juist gekopieerd worden. Hoor het heel graag!
 
Bedankt voor alle hulp allen (met name Haije).. ik ben er inmiddels helemaal uit. In de code moesten een paar extra regels worden verwijderd. Nogmaals erg bedankt!
 
Emile, fijn dat het gelukt is en bedankt voor de terugkoppeling!

Nu alleen nog even de status wijzigen in "opgelost".
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan