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

Vanuit een lijst naar leesbaar bestand

  • Onderwerp starter Onderwerp starter HWV
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

We maken een export uit ons ERP systeem naar een excel bestand.(tabblad export)
Nu is dit bestand niet goed leesbaar als onze accountmanager bij zijn klant zit.

Bekijk bijlage Voorbeeld.xlsx

Nu zou ik zoals ik in het voorbeeld heb aangegeven in tabblad "voorbeeld" het willen uitdraaien voor onze accountmanager.
Nu komt dit meerdere malen per week voor als het niet meerde malen per dag is.
Mijn gedacht was om het via een macro te doen omdat dit voor onze accountmanager het makkelijkste is als bv een draaitabel wat hij niet beheerst.

Eind resultaat zoals ik het graag zou willen zie is in tabba Is het mogelijk wat ik wil bereiken met VBA
- ik denk eerst sorteren, en dan op één of andere manier het bestand transponeren.

Graag hoop ik dat er iemand is die mij hier in wil ondersteunen, om dit voor elkaar te krijgen.
Zijn er andere ideeën dan sta ik daar natuurlijk voor open.

Groet HWV
 
Is het werken met een draaitabel misschien een idee?
 
in versie 2003 , op macro knop importeren drukken in tab importeren wanneer data wijzigen op tab export, op voorwaarde dat rij 1 blijft staan
 

Bijlagen

Aardig op weg

JeanPaul28 bedankt voor jou reactie.

we zitten op de juiste weg dit is zeker wat ik bedoel.

Ik loop tegen een paar punten aan:
Ik wil de lijst wel gesorteerd hebben dus daar kan ik onderstaande voor inzetten.

Code:
Sub Sorteren()

Sheets("Export").Select
 Columns("A:N").Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Sheets("Import").Select

End Sub

Enkel er zitten in het artikel nummer ook namen dus bv bol001 maar ook Bol001 nu ziet hij dit als twee aparte nummers.
Nu wilde ik om het makkelijker te maken alles in die kolom op hoofdletters zetten met onderstaande:

Code:
Sub HoofdLettersInEenKolom()
       Sheets("Export").Select
   Dim c As Range
   For Each c In Range("D2:D4000", Range("D2:D4000").End(xlDown))
    c = UCase(c)
   Next
   
End Sub
Helaas wordt het heel traag en duurt waanzinnig lang dus misschien is hier een andere oplossing voor.

Dan eigenlijk het moeilijkste punt, ik wil eigenlijk gefilterd hebben dit jaar en vorig jaar (nu dus 2013 en 2014)
Ik dacht al ik met onderstaande code de jaren 2010, 2011 en 2012 verwijderd dan heb ik mijn doel.
Maar daar wordt de code ook al niet sneller van:

Code:
Sub jaar_verwijderen()

Application.ScreenUpdating = False
    Sheets("Export").Select

For I = Sheets("Export").UsedRange.Rows.Count To 1 Step -1
If Range("K" & I) = "2010" Then
    Range("K" & I).EntireRow.Delete
End If
If Range("K" & I) = "2011" Then
    Range("K" & I).EntireRow.Delete
End If
If Range("K" & I) = "2012" Then
    Range("K" & I).EntireRow.Delete
End If
Next


Application.ScreenUpdating = True
End Sub

He zijn toch nog wel een paar punten waar ik tegen aanloop, en met mijn beperkte VBA kom ik niet verder ik hoop dat er een oplossing voor te vinden is.

Groet HWV
 
Ben je bekend met autofilter of uitgebreid filter ?
 
Autofilter

Beste SNB,

Auto filter is mij bekend, maar die er mee gaat werken niet.
Wat ik wil bereiken is dat het door iedereen gedaan kan worden.

Ik heb nu testen gedaan in combinatie met de autofilter, hij laat dan in het tabblad import artikelen zien die eigenlijk verborgen zijn door de filter.
Of is dat niet wat je bedoeld.

HWV
 
Nu is Bol001 en bol001 uniek en word BOL001, sorteren doen we in diezelfde macro dat gebeurde al.
alleen moeten de formules nog aangepast met Als.fout voor latere versie als 2003.
 

Bijlagen

We komen er wel, top

JeanPaul28 geweldig
Ik ga het morgen verder uitwerken!

Erg bedankt voor jou hulp, het probleem wat ik dacht dat er was met de andere jaren zie ik dat dit opgelost is met de formule die verwijst naar cel C2

Als ik vragen heb hoor je me wel weer, en anders zet ik de vraag op opgelost

HWV:thumb:
 
Beste JeanPaul28,

Het werkt als een trein, ik heb enkel nog een bij komende vraag waar ik nu tegenaan loopt en misschien dat daar een simpele verklaring voor is maar ik kom er niet uit.
In het tabblad Export heb je kolom E waar de omschrijving te vinden is van het artikel, enkel vanuit de export (uit ons ERP systeem) krijg ik niet de juiste omschrijving dus wil ik de juiste omschrijving erbij zoeken met verticaal zoeken VBA.
Enkel hij doet er erg lang over want hij plaatst met onderstaande code regel voor regel en heel langzaam, terwijl het zelfde script in een ander bestand wel snel verwerkt wordt.

Heeft dit dan te maken met de formule`s in het tablad Import.

Code:
Sub omschrijvingen()
Application.ScreenUpdating = False

On Error Resume Next
   ChDir "\\ZNPSV01\Data\Formulieren"
   Workbooks.Open Filename:="\\ZNPSV01\Data\automatisering\Batch\GST1- Eenheden1.xls"
  
    Windows("Import afnamekaart_test.xls").Activate
    Sheets("Export").Select
  
'Plaatsen omschrijving
On Error Resume Next
    For j = 2 To Sheets("Export").Cells(Rows.Count, 4).End(xlUp).Row
    With Workbooks("GST1- Eenheden1").Sheets("Artikelen").Columns(1).Find(Sheets("Export").Cells(j, 4).Value)
           .Offset(, 6).Copy
      Sheets("Export").Cells(j, 5).PasteSpecial xlPasteValues
    End With
  Next
 
   Sheets("Import").Select
 Workbooks("GST1- Eenheden1.xls").Close False
 Application.ScreenUpdating = True
End Sub

Is er een andere mogelijkhied om dit op te lossen.
Alweer vast bedankt voor de hulp

HWV
 
Code:
Sub omschrijvingen()
     sn=workbooks("Import afnamekaart_test.xls").Sheets("Export").columns(4).specialcells(2)

     with Workbooks.Open( "\\ZNPSV01\Data\automatisering\Batch\GST1- Eenheden1.xls")
         for j=2 to ubound(sn)
             sn(j,1)=.sheets("Artikelen").columns(1).find(sn(j,1)).value
         next
        .close 0
     end with
  
     workbooks("Import afnamekaart_test.xls").Sheets("Export").columns(4).specialcells(2)=sn
End Sub
 
Ik krijg het helaas niet werkend

Beste SNB,

Erg bedankt voor uw bijdrage in deze ticket.
Helaas krijg ik deze niet werkend, en heb verschillende pogingen gedaan om de code te gaan snappen.

Bekijk bijlage Import afnamekaart_test.xls

Ik heb bestand zover ik het nu klaar heb als bijlage toegevoegd, enkel het bestand waar het opgevraagd moet worden :

Code:
   ChDir "\\ZNPSV01\Data\Formulieren"
   Workbooks.Open Filename:="\\ZNPSV01\Data\automatisering\Batch\GST1- Eenheden1.xls"

Kan ik niet toevoegen met de locatie, ik heb een soort gelijk bestand toegevoegd

Bekijk bijlage GST1- Eenheden1.xls

Ik hoop dat u mij kunt helpen.

HWV
 
Aanvullende vraag

Beste JeanPaul28, en de rest van het form

Ik werk met het bijgevoegd bestand en werkt naar behoren dacht ik en heb er ook al die tijd al mee gewerkt.
Nu kwam ik er achter dat als er in kolom C van het tabblad Export een C staat dat dit retour is gekomen en een credit van gemaakt is.
Dit aantal en bedrag moet in plaats opgeteld worden er afgehaald worden, en nu tel hij deze mee op.

Ik heb al en beetje zitten kijken maar ik kom nier uit de formule`s om deze aan te passen.

Zou u of een ander form lid hier een oplossing voor weten

Bekijk bijlage Voorbeeld-1(jp2).xls

Alvast bedankt voor je hulp

HWV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan