Waarden afhankelijk van datum

Status
Niet open voor verdere reacties.

ThomasGHI

Gebruiker
Lid geworden
1 feb 2019
Berichten
37
hoe kan ik de waarde's van een kolom weergeven die bepaald worden tussen een startdatum en einddatum?

Ik heb momenteel 3 comboboxen waar een waarde geselecteerd word, combobox1 is de hoofdwaarde, combobox2 heeft de waarden weer afhankelijk van combobox1 en combobox3 heeft dan de waarden afhankelijk van 1 en 2.
Nu wenst ik er 4de parameter aan toe te voegen en deze is dat het afhankelijk is van de periode tussen de startdatum en einddatum.

Momenteel is het dat mijn laatste combobox hier nummer 3 wel de waarde die hij uit de cel neemt waarvan deze in de vorm bestat als "testwagen formule 1" deze als volgt zal weergeven in de combobxlist:

testwagen
formule
1

Dit zou echter moeten blijven als testwagen formule 1.

Code:
Private Sub UserForm_Initialize()

   cmdSave.Enabled = False
    cmdDelete.Enabled = True
    Frame2.Enabled = False

Dim sv, i As Long
cmdSave.Enabled = False
    Frame2.Enabled = False

sv = Sheets(6).Cells(1).CurrentRegion
   Set Dic = CreateObject("scripting.dictionary")
    For i = 1 To UBound(sv)
      If Not Dic.exists(sv(i, 1)) Then Dic.Item(sv(i, 1)) = Array(sv(i, 1), CreateObject("scripting.dictionary"), CreateObject("scripting.dictionary"))
        Dic(sv(i, 1))(1).Item(sv(i, 6)) = Dic(sv(i, 1))(1).Item(sv(i, 6)) & " " & sv(i, 4)
        Dic(sv(i, 1))(2).Item(sv(i, 6) & sv(i, 4)) = Array(sv(i, 4), Application.Index(sv, i, Array(1, 4, 6, 7, 10, 11, 12, 5, 2)), i)
    Next i
 ComboBox2.List = Dic.keys

Dim wb As Workbook: Set wb = ThisWorkbook
Dim WS As Worksheet
Dim LastRow As Long
Dim aCell As Range

Set WS = wb.Sheets("Type data")
With WS
    LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
    For Each aCell In .Range("C1:C" & LastRow)
        If aCell.Value <> "" Then
            Me.TextBox2.AddItem aCell.Value
        End If
    Next
End With

Set WS = wb.Sheets("Type data")
With WS
    LastRow = .Cells(.Rows.Count, "O").End(xlUp).Row
        For Each aCell In .Range("O1:O" & LastRow)
        If aCell.Value <> "" Then
            Me.TextBox5.AddItem aCell.Value
        End If
    Next
End With
End Sub

Private Sub ComboBox2_Change()
 hsv
 ComboBox4.List = Dic(ComboBox2.Value)(1).keys
 ComboBox4.ListIndex = -1
End Sub

Private Sub ComboBox4_Change()
hsv
'MsgBox Dic(ComboBox2.Value)(1)(ComboBox4.Value)
  ComboBox3.List = Split(Trim(Dic(ComboBox2.Value)(1)(ComboBox4.Value)))
End Sub

Private Sub ComboBox3_Change()
If ComboBox3.ListIndex > -1 Then
  For i = 1 To 9
      Controls("Textbox" & i).Value = Dic(ComboBox2.Value)(2)(ComboBox4.Value & ComboBox3.Value)(1)(i)
  Next i
 End If
End Sub

Private Sub hsv()
ComboBox3.ListIndex = -1
For i = 1 To 9
    Me("textbox" & i) = ""
 Next i
End Sub
 
Laatst bewerkt:
Code is leuk, maar met een bestandje is het uiteraard voor ons nog veel leuker :). En, geinige bonus, we hoeven zelf niks in te kloppen :D.
 
In de Initialize code kun je beginnen de doublures te verwijderen.
 
@snb

Welke bedoel je, ik ben wat bang als ik verkeerde dingen wegdoet dat niets meer werkt.
 
Laatst bewerkt door een moderator:
Als je een beter toelichting kunt geven wil ik er wel eens naar kijken.
Ik zie nergens iets over een start- en einddatum.
 
ik heb dit nog aangemaakt die extra functie voor startdatum en einddatum te selecteren en deze in een 4de voorwaarde combox toe te voegen.
Ik weet niet goed hoe ik dit nu doet.

Op dit moment kan ik op basis van die comboxen de juiste gegevens opvragen maar als ik deze wijzig en wenst te bewaren zonder dat er een nieuwe rij kan bijkomen of m.a.w. de huidige rij overschrijft geraak ik niet verder dan deze code.

Code:
Private Sub prSave()
     ''''' Save the Data
     
 Dim num As Long
 Sheets("data").Select
 num = Active.Row
       
        Trim (Worksheets("data").Cells(num, 1).Value)
        
       Worksheets("data").Cells(num, 0) = TextBox1.text
       Worksheets("data").Cells(num, 3) = TextBox2.text
       Worksheets("data").Cells(num, 5) = TextBox3.text
       Worksheets("data").Cells(num, 6) = TextBox4.text
       Worksheets("data").Cells(num, 9) = TextBox5.text
       Worksheets("data").Cells(num, 10) = TextBox6.text
       Worksheets("data").Cells(num, 11) = TextBox7.text
       Worksheets("data").Cells(num, 4) = TextBox8.text
       Worksheets("data").Cells(num, 1) = TextBox9.text
       
                  
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan