VBA Pas uitvoeren naar controle

Status
Niet open voor verdere reacties.
Alles boven regel 73 kan geen dienst zijn,
dus krijgt een formule als cel E.. een waarde heeft.

Er kunnen meer dan 2 diensten voorkomen.
Er moet dan alleen gekeken naar de datums (+tijd)
 
Dus:
Als dienst1 dienst2 overlapt: geen formule.
Als dienst2 dienst3 overlapt: geen formule enz.
Oftewel: hoeft er uitsluitend naar twee opeenvolgende diensten gekeken te worden?

Bedenk- en post jij even iets voor de With Columns(5) enz..constructie?
 
Net andersom, als dienst 2 overlappend is van dienst 1 dan geen formule plaatsen achter de dienst 2, wel een formule achter dienst 1...
 
Oooooooooooooh, had dat dan meteen gezegd ;-)

Code:
Private Sub CommandButton1_Click()
   Application.ScreenUpdating = False               'dan flikkert de boel niet zo
   With Columns(5).SpecialCells(2, 2)
      .Offset(, 18).Formula = Replace("=$N6/Gebruikers!$G$2*IF($E6=#Alle Vestigingen incl. SBC#,Gebruikers!$G$2,IF($E6=#Alle Vestigingen excl. SBC#,Gebruikers!$I$2,IF($E6=#Alle SBC Vestigingen#,Gebruikers!$H$2,IF($E6=#Alle Vestigingen#,Gebruikers!$I$2,VLOOKUP($E6,Gebruikers!$A$2:$C$60,3,0)))))", "#", Chr(34))
      .Offset(, 19).Formula = Replace("=$N6/Gebruikers!$G$9*IF($E6=#Alle Vestigingen incl. SBC#,Gebruikers!$G$2,IF($E6=#Alle Vestigingen excl. SBC#,Gebruikers!$I$2,IF($E6=#Alle SBC Vestigingen#,Gebruikers!$H$2,IF($E6=#Alle Vestigingen#,Gebruikers!$I$2,VLOOKUP($E6,Gebruikers!$A$2:$C$60,3,0)))))", "#", Chr(34))
   End With
   For r = 1 To 100           ' Dit is de range waar de nullen kunnen staan
      Rows(r).EntireRow.Hidden = IIf(Cells(r, 1).Value = "", True, False)  'leuk ingekort nietwaar?
      If Cells(r, 6) = "Dienst" And Cells(r + 1, 6) = "Dienst" Then
         If FormatDateTime(Cells(r, 10).Text & " " & Cells(r, 11).Text & ":00") > FormatDateTime(Cells(r + 1, 8).Text & " " & Cells(r + 1, 9).Text & ":00") Then Cells(r + 1, 23) = "Groetjes": Cells(r + 1, 24) = "van Ed"
      End If
   Next r
   Application.ScreenUpdating = True
End Sub
Groetjes, Ed
 
Bedankt, dat werkt!
Leuk verzonnen dat hij nu in de cellen zet, Groetjes van Ed
 
Tip1: a = Replace("gpi?et7,"?";"k") is hetzelfde als a = "gpiket7".
In je formule kan dus Replace vervallen als je zelf # vervangt door ".

Tip2: vervang in kolom E overal het woord 'Vestiging' door: =ALS(1+1=2;"Vestiging"). Ben je nog meer overbodige onzin kwijt.

Succes, Ed
 
@Edwel
Tip 3 probeer eens een tekstreeks te maken met op diverse plaatsen aanhalingstekens (chr(34) )
 
Dat werkt niet snb, dat weet je toch wel?
Bij het derde " krijg je gedonder.

Groet, Ed
 
En daarom is het handig Replace(".#.....#....#..","#",chr(34)) te gebruiken (of begrijp ik jouw tip1 verkeerd ?)
 
Je had het goed begrepen snb.
Zo zie je maar weer dat je beter eerst je code kunt testen alvorens deze te posten.

Groet, Ed
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan