Toon posts:

Automatisch csv-bestand kopiëren en verplaatsen dmv macro's

Pagina: 1
Acties:

Onderwerpen

Vraag


Verwijderd

Topicstarter
Hallo,

Op mijn werk hanteer ik voor een klant een uitgebreide prijstlijst in Excel. Dit is een groot rekenbestand waarin héél veel informatie in staat. Deze prijslijst moet geimporteerd worden naar ons ERP-systeem, zodat we vanuit daar een verkooporder kunnen aanmaken met de juiste prijzen. De prijslijst kan met deze huidige lay-out niet geimporteerd worden naar het ERP-pakket. Wat we nu dus gedaan hebben zijn de prijzen in een ander Excel-bestand zetten, met de juiste lay-out, deze opslaan als een csv-bestand en vervolgens in een file-watcher plaatsen. Die file-watcher zorgt er automatisch voor dat het bestand naar het ERP-systeem wordt geimporteerd. Dit verloopt bijna altijd goed. De meeste fouten zitten echter met name in de fouten in de lay-out, omdat deze handmatig ingevoerd worden. Bovendien is dit best tijdrovend en de juiste prijzen staan niet altijd goed in het ERP-systeem, omdat deze niet consequent worden bijgehouden.

Wat verder altijd handmatig blijft is het invullen van de prijzen in het uitgebreide prijslijst bestand.
Het zou mooi zijn als vanaf daar alles wordt geautomatiseerd, dus automatisch de nieuwe prijzen kopiëren en verplaatsen naar het aangepaste Excel-bestand, automatisch opslaan als csv-bestand en zich automatisch kopiëren en verplaatsen naar de file-watcher. Dit is dus meteen mijn vraag.

Relevante software en hardware die ik gebruik
Voor de prijslijsten: Excel
ERP-pakket: RIDDER iQ

Wat ik al gevonden of geprobeerd heb
Ik heb geprobeerd om een 'transfer' knop in Excel te bouwen, die ervoor zorgt dat het bestand zich automatisch kopieert en verplaatst naar een bepaalde map. Dit werkte echter niet, omdat het bestand nog steeds gevoelig blijft voor fouten in de lay-out.

Het zou fijn zijn als iemand me hier mee kan helpen. Dit is trouwens mijn eerste post op die forum, als er iets niet juist is, please say it.

Alle reacties


  • Jester-NL
  • Registratie: Januari 2003
  • Niet online

Jester-NL

... pakt een botte bijl

Verwijderd schreef op donderdag 12 september 2019 @ 09:25:
(...)De meeste fouten zitten echter met name in de fouten in de lay-out, omdat deze handmatig ingevoerd worden.
en
Bovendien is dit best tijdrovend en de juiste prijzen staan niet altijd goed in het ERP-systeem, omdat deze niet consequent worden bijgehouden.
Hier kun je niet tegenaan programmeren. Dit zijn problemen die door de gebruikers worden veroorzaakt. Je zult dus of vingertjes moeten breken, of moeten zorgen dat je die problemen eerst oplost. En de vingertjes-oplossing wordt over het algemeen niet zo geaccepteerd ;)

The sky above the port was the color of television, turned to a dead channel
me @ last.fm


Verwijderd

Topicstarter
[b]Jester-NL schreef op donderdag 12 september 2019 @ 09:32:
[...]
Hier kun je niet tegenaan programmeren. Dit zijn problemen die door de gebruikers worden veroorzaakt. Je zult dus of vingertjes moeten breken, of moeten zorgen dat je die problemen eerst oplost. En de vingertjes-oplossing wordt over het algemeen niet zo geaccepteerd ;)
Ja dit is precies wat ik dus ook dacht, echter hoor ik van verschillende collega's dat het 'vingertjeswerk' ook automatisch zou moeten kunnen. Dus dat de prijzen worden ingevoerd in het grote prijslijst-bestand en daarna (met welke optie dan ook) automatisch naar het aangepaste bestand gaan. Hierin zit met name de foutgevoeligheid.

  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Ik doe exact hetzelfde. Ik krijg excels binnen waarin er rijen en bepaalde kolommen niet voldoen.
Ze staan er wel altijd.

Dus een simpele macro om de verkeerde rijen/kolommen (meestal layout) te verwijderen, en dan resultaat opslaan in een bepaalde map. Kan ik ze vandaar importeren in ERP of online orders van bepaalde leveranciers.

Mijn code (van document met relatief simpele layout). 1 rijtje verwijderen en paar kolommen switchen/verwijderen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Create_CSV_Dyka()
    Sheets("Bewerken - Inkooporder - B.IOR").Activate
    Dim Filename As String
    Filename = Mid(Range("A1").Value, 25)
    Rows(1).Delete
    Columns("X").Cut
    Columns("A").Insert
    Columns("I").Cut
    Columns("B").Insert
    Columns("C:Y").Delete
    Range("A1").Value = "material_number"
    Range("B1").Value = "qty"
    ChDir Environ("USERPROFILE") & "\Desktop"
    ActiveWorkbook.SaveAs Filename:=Environ("USERPROFILE") & "\Desktop\" & Filename & ".csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    ActiveWorkbook.Close
    
End Sub

[ Voor 4% gewijzigd door SadisticPanda op 12-09-2019 09:57 ]

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Welkom! :)

Je zou misschien liever kunnen kijken naar het invoeren op een gestructureerde manier zodat er geen onverwachte situaties meer komen.

Eenvoudigste: beveilig het Excel-bestand zodanig dat de structuur niet kan worden aangepast en stel in dat per kolom alleen bepaalde waarden kunnen worden ingevoerd (gegevensvalidatie).

En omdat men er omheen gaat willen werken: weiger een bestand dat alsnog anders is. Of pas de standaard aan als er valide redenen zijn.

Complexer: maak een webformulier o.i.d.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
SadisticPanda schreef op donderdag 12 september 2019 @ 09:55:
Ik doe exact hetzelfde. Ik krijg excels binnen waarin er rijen en bepaalde kolommen niet voldoen.
Ze staan er wel altijd.

Dus een simpele macro om de verkeerde rijen/kolommen (meestal layout) te verwijderen, en dan resultaat opslaan in een bepaalde map. Kan ik ze vandaar importeren in ERP of online orders van bepaalde leveranciers.

Mijn code (van document met relatief simpele layout). 1 rijtje verwijderen en paar kolommen switchen/verwijderen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Create_CSV_Dyka()
    Sheets("Bewerken - Inkooporder - B.IOR").Activate
    Dim Filename As String
    Filename = Mid(Range("A1").Value, 25)
    Rows(1).Delete
    Columns("X").Cut
    Columns("A").Insert
    Columns("I").Cut
    Columns("B").Insert
    Columns("C:Y").Delete
    Range("A1").Value = "material_number"
    Range("B1").Value = "qty"
    ChDir Environ("USERPROFILE") & "\Desktop"
    ActiveWorkbook.SaveAs Filename:=Environ("USERPROFILE") & "\Desktop\" & Filename & ".csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    ActiveWorkbook.Close
    
End Sub
Kun je dit misschien preciezer uitschrijven, ik ben namelijk geen held in Excel. Dan ga ik is kijken of dit hier ook werkt.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Verwijderd schreef op donderdag 12 september 2019 @ 11:09:
[...]
Kun je dit misschien preciezer uitschrijven, ik ben namelijk geen held in Excel. Dan ga ik is kijken of dit hier ook werkt.
Niet vervelend bedoeld: als je deze basis VBA niet op waarde kunt schatten dan raad ik gebruik van VBA erg af. Dat gaat dan gegarandeerd fout, zeker met variabele invoerkwaliteit. Leer en oefen een paar tot paar dozijn uur met VBA voordat je zoiets in productie zou gebruiken.

De invoer zoals gezegd structureren lijkt me veruit te verkiezen.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Verwijderd schreef op donderdag 12 september 2019 @ 11:09:
[...]


Kun je dit misschien preciezer uitschrijven, ik ben namelijk geen held in Excel. Dan ga ik is kijken of dit hier ook werkt.
Ja, hallo? Code is redelijk eenvoudig. En redelijk duidelijk.

Rijen verwijderen, rijen wisselen, rijen verwijderen en alles opslaan. Alles zit er in. Als je hierop voortbouwt, kan je naar jouw wensen aanpassen. Met google kom je al heel eindje wat al deze functies doen.

Mijn werkgever gaat me niet betalen voor code voor jou te schrijven. :)

//mss ook niet voor op tweakers te zitten maar dat doet er niet toe :+

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


Verwijderd

Topicstarter
mmm... oke. Ik had de complexiteit van mijn vraagstuk een beetje onderschat, zeker met mijn huidige kennis van Excel. Zijn er programmeurs of Excel-specialisten op dit forum die wel in staat zijn dit vraagstuk op te lossen? Betaling is bespreekbaar uiteraard. De oplossing dient wel te geschieden in het automatiseren van de bestanden. Als we de oplossing gaan zoeken mbt het invoeren van gegevens om dat te structureren, blijft deze handeling handmatig. De bedoeling is dat het systeem voor ons gaat werken.

Ik hoor graag bij wie ik terecht kan en tevens bedankt voor jullie antwoorden.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Als (dat had ik eerder niet goed begrepen) de originele prijslijst een vaste structuur heeft dan moet de huidige code-opzet prima werken, maar dan natuurlijk aangepast naar de juiste rijen, kolommen, cellen, formats.

Dan nog blijf ik bij mijn advies het niet zelf te doen zonder eerst Excel-VBA beginselen te leren. Laten doen kan idd ook, niet via het forum maar via een lokale slimme student of bijv. een advertentie aanmaken op bijv. categorie: Software development
Waarbij je de concrete bron- en doel bestanden concreet en helder wilt duiden.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
F_J_K schreef op donderdag 12 september 2019 @ 14:17:
Als (dat had ik eerder niet goed begrepen) de originele prijslijst een vaste structuur heeft dan moet de huidige code-opzet prima werken, maar dan natuurlijk aangepast naar de juiste rijen, kolommen, cellen, formats.

Dan nog blijf ik bij mijn advies het niet zelf te doen zonder eerst Excel-VBA beginselen te leren. Laten doen kan idd ook, niet via het forum maar via een lokale slimme student of bijv. een advertentie aanmaken op bijv. categorie: Software development
Waarbij je de concrete bron- en doel bestanden concreet en helder wilt duiden.
Dat zou een optie kunnen zijn, echter mag ik namens de firma geen vraag aanbieden op het 'vraag & aanbod' platform van Tweakers. Ik ga het zodoende bij een excel-professional proberen. Nogmaals, bedankt voor je hulp. Voor mij kan dit topic gesloten worden.

Groeten
Pagina: 1