17. juli 2014 - 10:06Der er
5 kommentarer og 1 løsning
Overlappende datoer - VB?
Jeg har et regneark (Excel 2010), hvor jeg prøver at planlægge en række workshops. Hver workshop har et ID, en startdato og en slutdato. For hver mulig deltager vil jeg gerne have en markering (fx betinget formatering el.udråbstegnet som nedenfor) af, om deltagelse den pågældende dag overlapper deltagelse en anden dag.
Start Slut Hans Grete Knud Mogens WS1 2-9 2-9 x x x WS2 4-9 7-9 x x x WS3 6-9 6-9 x x! x! WS4 8-9 9-9 x x
Hvordan pokker laver man det?? Kan det overhovedet lade sig gøre?
Dim antalRæk As Integer, antalKol As Integer Dim ræk As Integer, kol As Integer Dim fraDato As Date, tildato As Date, antalP As Integer Dim datoer As String Public Sub datoKontrol() antalRæk = ActiveCell.SpecialCells(xlLastCell).Row antalKol = ActiveCell.SpecialCells(xlLastCell).Column
Application.ScreenUpdating = False
For kol = deltagerStartKol To antalKol datoer = "" For ræk = fraRæk To antalRæk If Range("A" & ræk) <> "" Then If LCase(Cells(ræk, kol)) = chk Then fraDato = Cells(ræk, fraDatoKol) tildato = Cells(ræk, tilDatoKol) antalP = antalP + 1
If erdatoOptaget(fraDato) = False Then datoer = datoer & fraDato & " " If fraDato <> tildato Then If erdatoOptaget(tildato) = False Then datoer = datoer & fraDato & " " Else Cells(ræk, kol).Interior.ColorIndex = 3 End If End If Else Cells(ræk, kol).Interior.ColorIndex = 3 End If End If End If Next ræk antalP = 0 datoer = "" Next kol End Sub Private Function erdatoOptaget(dato) If InStr(datoer, dato) > 0 Then erdatoOptaget = True Else erdatoOptaget = False End If End Function Private Sub Worksheet_Change(ByVal Target As Range) If Target.Interior.ColorIndex = 3 And Target = "" And Target.Column >= deltagerStartKol Then Target.Interior.ColorIndex = xlColorIndexNone End If End Sub
Wow! I'm impressed! Og så rystet ud ad ærmet - tak! :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.