• 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 neemt formule niet mee.

Status
Niet open voor verdere reacties.

Dave0701

Gebruiker
Lid geworden
28 apr 2018
Berichten
6
Ik heb een scv bestand van onze website waarvan ik de voorraden wil updaten.
Ik heb een tweede scv bestand van mijn leverancier ook met voorraad.
Ik heb een formule gemaakt in bestand 1 die verticaal zoekt in bestand 2 en dan de waard overneemt.

Dit werkt allemaal prima.

Bij het maken van een marco waarbij ik ook wat kolommen weg haal die ik niet nodig heb en her noem wat dingen dan lijkt alles goed te gaan totdat ik hem echt laat uitvoeren.
Als ik in " bewerk" macro kijk staat alles er netjes wat die moet uitvoeren echter dan heb ik geen data in het bestand waar de formules zouden moeten staan. Geen waardes en ook geen formule. :confused:

Doe ik iets verkeerd of werkt het niet met csv bestanden? maar waarom dan wel handmatig?

alvast bedankt.
 
Welkom bij Help mij :)
Zonder je Excel document met de macro weten wij dat ook niet.
 
Laatst bewerkt:
Thanks,

macro die ik gemaakt heb is:

Sub update_voorraad_met_vanooy()
'
' update_voorraad_met_vanooy Macro
'
' Sneltoets: Ctrl+i
'
Range("C2").Select
ActiveSheet.Range("$A$1:$AC$5109").AutoFilter Field:=3, Criteria1:= _
"Van Ooy"
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("C:E").Select
Selection.Delete Shift:=xlToLeft
Columns("D:L").Select
Selection.Delete Shift:=xlToLeft
Columns("E:p").Select
Selection.Delete Shift:=xlToLeft
Range("D1").Select
ActiveCell.FormulaR1C1 = "Stock_Level_old"
Range("E1").Select
ActiveCell.FormulaR1C1 = "Stock_level"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],'products-20012.csv'!R1:R1048576,6,)"
Range("E2").Select
Selection.FillDown
End Sub

Wil je ook de csv's hebben?
 
Dat is alleen de code en niet het Excel document.
Zo'n csv er bij is altijd handig.

Daarnaast dien je code in codetags te plaatsen.
 
Code:
=VLOOKUP(RC[-2],'products-20012.csv'!R1:R1048576,6,)
kan nooit werken. Je zoekt in een bereik van 1 kolom in de 6de kolom. Daarnaast heb je benaderen aan staan wat mij ook niet handig lijkt.
 
Vandaar het verzoek om een voorbeeld document ;)
 
verticaal zoeken zoekt in de eerste kolom. de 6 is dat die daarna de waarde overneemt in de zelfde rij maar dan uit kolom 6
benaderen was een foutje en eruitgehaald.
heb hem nu zo. maar nog in de macro komt er geen data uit.
=VERT.ZOEKEN(G2;'products-20012.csv'!$1:$1048576;6;ONWAAR)

Hierbij de twee bestanden.

https://static.webshopapp.com/shops/133908/files/192070409/inventory-export-2018-04-28-10-48-12.csv
https://static.webshopapp.com/shops/133908/files/192070310/products-20012.csv
laatste bestand is 1 van mijn leveranciers en geeft alleen aan op voorraad=1 of niet op voorraad=0
ik zet deze met zoeken en vervangen op een hogere waarde. (in een macro doet die dit prima)

uiteindelijke doel is dat ik twee recente bestanden download en open. dan een macro eroverheen laat gaan waarbij ik alles laat aanpassen wat ik wil en dan
uiteindelijk het bestand wat ik nodig heb laat opslaan onder een bepaalde naam.

Alles lukt behalfe die formule laten uitvoeren.
 
Laatst bewerkt:
Even in 1 bestandje gezet. Draai de macro vanuit de tab 'inventory-export-2018-04-28-10-'.

Code:
Sub VenA()
  ar = Cells(1).CurrentRegion
  Cells.Clear
  For j = 1 To UBound(ar)
    If ar(j, 3) = "Van Ooy" Then c00 = c00 & " " & j
  Next j
  ar1 = Application.Transpose(Split(Mid(c00, 2)))
  Cells(1).Resize(, 5) = Array("Internal_Variant_ID", "Supplier", "Article_Code", "Stock_Level_old", "Stock_Level")
  Cells(2, 1).Resize(UBound(ar1), 4) = Application.Index(ar, ar1, Array(1, 3, 7, 17))
  Cells(2, 5) = "=VLOOKUP(C2,'products-20012'!$A$1:$F$5000,6,0)"
  Cells(2, 5).AutoFill Cells(2, 5).Resize(UBound(ar1))
End Sub
 

Bijlagen

  • inventory-export-2018-04-28-10-48-12.xlsb
    292,5 KB · Weergaven: 325
Thanks,

Ben er even mee aan het stoeien.

Nu zit de macro in het werkblad zelf en zitten de twee bestanden in 1 bestand geplakt als excel bestand.
Aangezien de bestanden steeds anders zijn(komen producten bij en gaan af)
Ik moet deze bestanden steeds downloaden(zijn dan CSV)

Wat ik eigenlijk wil als ik ze beide open heb staan dat ik een snel toets heb dat die in het bestand "van ooy" het getal 1 van de voorraad vervangt voor een hoger getal b.v. 300

Dan moet die voorraad over gezet worden naar het andere bestand. daarna opslaat als CSV(csv neemt geen tabbladen mee)

Ik heb jouw macro geprobeerd in het personal.xsls te zetten(met verwijzing naar het andere bestand ipv tabblad) zodat ik het in elk bestand zou kunnen toepassen.
eigenlijk gaat alles goed tot weer de formule verticaal zoeken.

Het van ooy bestand heet altijd hetzelfde. Mijn export van de site niet maar kan ik wel opslaan natuurlijk onder een vast naam.
Als ik het 1 keer werkend heb moet ik het nog 5 x voor andere leveranciers maken.
 
Dan zou ik maar eens onderzoek doen naar de functie VERT.ZOEKEN() VLOOKUP(). Je spreekt alleen maar in algemene termen en daar is geen code voor te maken.
Waar mogen we vandaan halen dat het getal 1 bv 300 moet worden? In #3 wil je iets zoeken in kolom R en dan 5 kolommen ernaast wat niet kan. In #7 wil je iets zoeken in een compleet werkblad, wat de snelheid nogal bevordert, op de waarde die in G2 stond. G2 bestaat niet meer na het verwijderen van kolommen en is dus C2 geworden.
Waarom moet je het voor nog eens 5 leveranciers maken? In welk bestand moeten de resultaten terechtkomen? Plaats het Exceldocument eens met de bijna werkende code.
 
Ik heb het nu zo voor elkaar dat ik de bestanden in 1 excel bestand krijg en dan alles laat uitvoeren wat ik wil. En slaat hem als laatst meteen voor me op onder een opgeven naam en in csv.

En dit werkt met onder andere jouw macro. Thanks.

Betreft de 1 naar 300. Ik had aangeven dat mijn toeleverancier alleen maar een 1 of een 0 aangeeft. Ik kan dit niet als boorraad in de site zetten want dan zou er 1 artikel ervan op voorraad zijn. Men kan dus niet 5 x het zelfde bestellen. Daarom moet de 1 verhoogd worden naar een hogere waarde zoals eerder aangeven. Ik heb gekozen voor 300 maar mag ook wat anders zijn.


Waarom 5 leveranciers.?

Ik heb 5 leveranciers die csv voorraad bestanden ter beschikking steld. Nadeel is dat de opbouw van deze bestanden allemaal anders zijn per leverancier.

Deze moet ik dus ook weer vergelijken met de inventory export.
 
Het automatiseren van processen begint met het duidelijk omschrijven van deze processen. Het blijft allemaal vaag wat je beschrijft. Ik heb iets, ik wil iets, maar bij alles is het anders en dat wat je hebt wil je niet laten zien? Iemand inhuren die het voor je oplost lijkt mij dan een beter idee.
 
Ik vroeg ook niet om een kant en klaar macro voor mijn hele doel. Dit vraag ik ook nergens.

Ik probeerde een macro te maken waarbij de vlookup gewoon niet wilde werken tussen de twee losse scv bestanden die open staan. Wat ik daaromheen nog meer wilde was het probleem niet zoals ik al schreef in het eerste bericht.

Blijkbaar werkt het niet goed als ik twee lossen scv bestanden heb en de macro in personel opsla

Uiteindelijk besloten om het in 1 bestand te verwerken en met jouw macro erbij heb ik het nu werkend wat ik wil. De macro sla ik in het werkblad op. De vlookup werkt dan wel in de macro. .

Ik heb nu ook besloten de andere dealers ook in het zelfde bestand te gaan verwerken.

In iedergeval bedankt voor jullie hulp.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan