Tijd uit tabel met 2 regels voor een persoon samenvoegen

Status
Niet open voor verdere reacties.

icecube87

Gebruiker
Lid geworden
5 okt 2011
Berichten
46
Hallo,

ik zit met een uitdaging.
In de bijlage zie je een tabel met initialen (links) en daarachter plantijden. (als in een rooster, van maandag tot en met zondag)
Nu zie je bij sommige initialen 2 regels, ik heb ze geel gemaakt.
De 2e regel, die niet start met een initiaal, hoor bij de regel er boven.

Nu wil ik de eindtijd bij regel 2, vervangen met de eindtijd op de regel er boven.
Maar ik heb geen idee hoe ik dit kan controleren / voor elkaar kan krijgen. Ik heb wel wat VBA kennis, zoals het kopiëren en plakken van een regel, maar ik zou niet weten hoe ik controleer of er een 2e regel bij iemand aanwezig is, om die vervolgens samen te voegen.

Iemand die mij op weg kan helpen?
 

Bijlagen

  • Voorbeeld tabel.xlsx
    10,2 KB · Weergaven: 27
Hoe krijg je deze chaos zo in een spreadsheet? Waarom is kolom E leeg?
 
Hoe krijg je deze chaos zo in een spreadsheet? Waarom is kolom E leeg?

Omdat het gekopieerd wordt vanuit een programma om planningen te maken. Die exporteert het naar Excel en dit is het resultaat.
Vanuit daar wil ik een en ander automatiseren, maar daarvoor moet ik de originele layout gebruiken, anders zal het proces nooit automatisch zijn.

Edit: die lege regel met af en toe een tijd er onder ontstaat omdat iemand dan op 2 afdelingen gepland staat.
 
Laatst bewerkt:
Maar weer weggehaald. Op ander draadjes reageer je blijkbaar ook nooit meer.
 
Laatst bewerkt:
Maar weer weggehaald. Op ander draadjes reageer je blijkbaar ook nooit meer.

Ik reageer altijd op mijn topics en plaats altijd het antwoord.. Zie inderdaad dat ik het toevallig in het vorige topic eens vergeten ben, maar dat is niet iets wat frequent gebeurd.
 


https://www.helpmij.nl/forum/showthr...aan-doelopmaak >> heb ik het antwoord zelf teruggekoppeld
https://www.helpmij.nl/forum/showthr...ele-rijnummers >> heb ik het antwoord zelf teruggekoppeld (had ik wel nog een vraag over de uitvoering op een andere methode die ik tegenkwam op internet, puur uit interesse, want had mijn voorbeeld al werkend, maar geen antwoord meer op gehad)
https://www.helpmij.nl/forum/showthr...-ook-de-opmaak >> deze heb ik inderdaad gemist, mijn fout.
 
Tja. Huur een programmeur in die zorgt voor een fatsoenlijke export. Het zelf knutselen zonder kennis van zaken is gedoemd te mislukken. De code bestaat uit slechts een paar regels en als je dat zelf niet kan verzinnen dan is het toch kansloos om het te onderhouden?

Code:
Sub VenA()
  For j = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
    If Cells(j, 3) = "" Then
      For jj = 1 To 14
        If Cells(j, jj) <> "" Then Cells(j - 1, jj) = Cells(j, jj)
      Next jj
      Rows(j).Delete
    End If
  Next j
End Sub
 
Tja. Huur een programmeur in die zorgt voor een fatsoenlijke export. Het zelf knutselen zonder kennis van zaken is gedoemd te mislukken. De code bestaat uit slechts een paar regels en als je dat zelf niet kan verzinnen dan is het toch kansloos om het te onderhouden?

Code:
Sub VenA()
  For j = Cells(Rows.Count, 3).End(xlUp).Row To 2 Step -1
    If Cells(j, 3) = "" Then
      For jj = 1 To 14
        If Cells(j, jj) <> "" Then Cells(j - 1, jj) = Cells(j, jj)
      Next jj
      Rows(j).Delete
    End If
  Next j
End Sub

Dat is waar, maar helaas is de organisatie te groot en heb ik daar geen invloed op.

Het is ook niet zo dat ik het moet onderhouden, maar ben bezig om meer te leren in Excel i.c.m. vba, dus ben wat zaken aan het proberen.
Daarom maak ik voor mijzelf kleine projecten die de zaken m.b.t. het werk wat versimpelen. Ik kan het helaas niet allemaal zelf bedenken, maar meestal weet ik met behulp van wat zoektermen wel tot een opzet te komen waar ik verder aan kan werken.
Voor dit probleem kon ik echter niets vinden, omdat de zoektermen wat lastiger zijn. Maar bedankt voor jouw hulp, ik ga kijken of het mij daarmee lukt.
 
Zolang al lid en dan nog steeds onnodig quoten? Juist binnen grote organisaties is er veel meer mogelijk dan jij denkt. Er ziet niemand te wachten op iemand die structureel werk moet verbeteren via een forum. Maar goed het is jouw feestje.
 
Meer vaart in de code kan nooit kwaad.

Code:
Sub hsv()
Dim sv, a, i As Long, j As Long, n As Long
With Cells(1, 3)
sv = .CurrentRegion.Offset(1).Resize(Blad1.UsedRange.Rows.Count - 1, 15).Value
 a = sv
 n = 1
 For i = 1 To UBound(sv)
  If sv(i, 1) = "" Then n = n - 1
   For j = 1 To UBound(sv, 2)
      If sv(i, 1) = "" Then
         If sv(i, j) > 0 Then a(n, j) = Format(sv(i, j), "h:mm")
        Else
         a(n, j) = Format(sv(i, j), "h:mm")
      End If
     Next j
      n = n + 1
    Next i
 .Offset(1).Resize(UBound(sv), 15).Clear
 .Offset(1).Resize(n - 1, 15) = a
End With
End Sub
 
Laatst bewerkt:
Ik weet wat er mogelijk is binnen de organisatie, dus er is niet meer mogelijk dan ik denk, anders had ik het via andere wegen geregeld.
Daarbij is het niet altijd zo dat iets wat ik handig vind, ook organisatiebreed noodzakelijk is. Daarbij wil ik gewoon wat oefenen in Excel en daar lijkt mij niks mis mee.

@HSV,

bedankt voor jouw toevoeging, ik ga kijken welke van de twee het best aansluit op mijn doel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan