Herschikken van een Xlsx in fct van lege cellen

Status
Niet open voor verdere reacties.

Jvankerkhove

Nieuwe gebruiker
Lid geworden
22 jul 2016
Berichten
3
Wie kan me helpen om een XLSX bestand voor te bereiden om als CSV in een wegformulier op te laden?
Het XLSX bestand is een export van werkorders die uitgevoerd zijn. Sommige werkorders bestaan uit verschillende activiteiten waardoor er verschillende lijnen (kolom zijn per werkorder.
Het aantal lijnen kan variëren. Voor elk nieuw werkorder staat een datum van uitvoering, voor de bijkomende lijnen staat geen datum.
Uit te voeren aanpassingen:
vb in bijlage
Cel F2 is in orde: werkorder bestaat slechts uit een lijn
Cel F3 is aan te passen: F3= inhoud F3 + F4 +F5
De lege lijnen 4 en 5 verwijderen om de creatie van lege tickets te vermijden.

Cel F7 zal samengesteld worden uit de cellen F7 tot F17
Nadien de lege cellen verwijderen.

Dank voor de hulp.Bekijk bijlage test werkorders.xlsx
 
Hoi,
Enige zaken zijn mij onduidelijk, je spreekt over XLSX maar je plaatst je vraag onder de VBA sectie,verder spreek je over een wegformulier,geen idee van wat je daarmee bedoelt.
Maar mischien kan je hier mee verder?
Om e.e.a. te verduidelijken heb ik kleuren gebruikt (kleuren zijn verder voor niets nodig).
Bij klanten waar maar één werk wordt uitgevoerd hoef je niets te doen(blauwe vakken in F)
Voor klanten waar meer dan een werk moet gebeuren laat je de éérste cel in F leeg (geel vak, dit is de cel waar de uitgevoerde werken worden samengevoegd).
Hoe ga je te werk? Klik in de gele cel van de klant en druk nadien op de knop 'Cellen samenvoegen'. Selecteer nu de werken die bij die klant horen (groene vlakken) en druk op OK.
 

Bijlagen

  • test werkorders-2.xlsb
    28,3 KB · Weergaven: 29
Nooit meer op een vrijdag :)

Beste gast0660,

Bij het nalezen begrijp ik je verwarring. Ik ben blijkbaar een cruciaal element vergeten te vermelden.
Vrijdag, laatste loodjes, enz....
Ik ben op zoek naar een macro die deze excel voor me kan aanpassen.
Ik krijg dagelijks zo een 100 tal lijnen aangeleverd via een export uit een boekhoudprogramma en te verwerken. Manueel is dat puur tijdverlies.

De macro die je ingebouwd hebt, werkt prima.
Het is natuurlijk behoorlijk tijdvretend om elke rij vooraf aan te passen om nadien te kunnen samenvoegen.

Is er een mogelijkheid om de macro het document te laten doorlopen en de samenvoeging van een rij te laten uitvoeren onder volgende voorwaarde:
VB
rij 3 ; data in kolom F en data in kolom A => geen uitvoering macro
rij 4 ; data in kolom F en geen data in kolom A=> F4 samenvoegen met F3
De lege rijen moeten nadien verwijderd worden.
Misschien is dit ook wel mogelijk via de macro, al moeten we voorzichtig zijn dat de macro niet eeuwig loopt om lege lijnen te verwijderen, want die zijn er altijd in een excel document.



Alvast bedankt voor de tips die je meegegeven hebt

Jo
 
Laatst bewerkt:
Probeer het zo eens.

Code:
Sub VenA()
With Sheets("1 HERCONTACTEREN KLANT ").Cells(1).CurrentRegion
    ar = .Value
    ReDim ar1(Application.CountA(.Columns(1)), 1 To UBound(ar, 2))
    For j = 1 To UBound(ar)
        If ar(j, 1) <> "" Then
            For jj = 1 To UBound(ar, 2)
                ar1(t, jj) = ar(j, jj)
            Next jj
            t = t + 1
        Else
            ar1(t - 1, 6) = ar1(t - 1, 6) & "+" & ar(j, 6)
        End If
    Next j
    .Cells.ClearContents
    .Cells(1).Resize(UBound(ar1) + 1, UBound(ar1, 2)) = ar1
End With
End Sub
 
of

Code:
Sub M_snb()
   For Each ar In Sheets("1 HERCONTACTEREN KLANT ").Cells(1).CurrentRegion.Columns(1).SpecialCells(4).Areas
      ar.Cells(1).Offset(-1, 5) = ar.Cells(1).Offset(-1, 5) & vbLf & Join(Application.Transpose(ar.Offset(, 5)), vbLf)
   Next
   Sheets("1 HERCONTACTEREN KLANT ").Cells(1).CurrentRegion.Columns(1).SpecialCells(4).EntireRow.Delete
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan