• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Melding bij bepaalde datum

Status
Niet open voor verdere reacties.
Hoi,

Het bestand van Warme Bakkertje ziet er erg goed uit. :thumb:

Ben ook eens aan de slag gegaan met het bestandje van cow18 en heb dat proberen te vertalen naar mijn leerlingenbestand. Met mijn Excelverstand van een pinda heb ik gewoon gekopieerd en geplakt en waar het me opviel de kolom aangepast.

Het is alleen niet helemaal goed gegaan, want er komt een foutmelding. Zie bijlage.

Is het daarnaast ook mogelijk om een listbox te laten verschijnen voor kolom I en R? Kolom I als verjaardagen één dag ervoor en kolom R zeven dagen voor de examens?

Groetjes, Chiara
 

Bijlagen

  • studenti.rar
    30,9 KB · Weergaven: 23
er stond geen listbox in je userform1, dus liep hij daarop plat.
 

Bijlagen

  • studenti.rar
    34,1 KB · Weergaven: 24
Wat betreft je 1ste vraag kan ik je al onmiddelijk een antwoord geven. Je hebt een TextBox ipv een ListBox op je formulier geplaatst.

PS: Gepakt in snelheid :)
 
Wow, dat ziet er goed uit. :thumb:

Als ik regels toevoeg of verwijder, geldt dan de listbox ook? Met andere woorden geldt het voor de hele kolommen?

Groetjes, Chiara
 
Doordat cow18 zei dat ik geen listbox had ingevoegd, ben ik gaan zoeken waar ik dat kon zien. Dat heb ik inmiddels ontdekt. Maar, hoe voeg ik een listbox toe, want als ik doe: invoegen > userform is het geen listbox. :confused:

Ik weet helemaal niets van visual basic af en doe maar copy paste. :eek:

Chiara
 
Invoegen >> Userform
Beeld >> Werkset nu krijg je de verschillende objecten.
Klik een object aan teken dan de gewenste vorm op je userform
 
Welk object moet ik dan aanklikken, want er staat geen listbox tussen. Als ik tekstvak kies, komt er natuurlijk weer een textbox. :confused:

Chiara
 
Ik ben er al uit. 'Keuzelijst' is het juiste antwoord :D

Volgens mij werkt het bestand naar behoren. Mocht ik tegen problemen aanlopen, dan zal ik me zeker weer melden.

Dan toch nog een klein vraagje. Stel, dat een examen onvoldoende is gemaakt. In kolom R staat dan de examendatum, maar hij krijgt over 14 dagen een herkansing. Kan er dan ook onder dezelfde kolom R (examen) een melding komen? Ik heb in de code al geprobeerd om het cijfer 7 te vervangen door -14, maar dat werkte natuurlijk niet. Had mooi geweest :d

Groetjes, Chiara
 
welke kolom zegt dat het examen onvoldoende was ?
 
Ehm, eigenlijk geen kolom. De examencijfers worden elders bijgehouden.

Misschien moet ik dan maar denken aan een kolom S, waarin de datum van kolom R met 14 dagen wordt opgeteld.

Ik ga maar eens op zoek naar een formule daarvoor.

Chiara
 
Ik denk dat de volgende formule in kolom S daar goed voor is:

=DATUM(JAAR(R1);MAAND(R1);DAG(R1)+14)

Chiara
 
zie bijlage
 

Bijlagen

  • studenti.rar
    37,4 KB · Weergaven: 21
Geweldig! :thumb:

Mag ik jullie toppertjes, Warme Bakkertje en Cow18, heel erg bedanken voor de geweldige oplossingen. :thumb:

Ik heb er ook meteen veel van geleerd en dat is mooi meegenomen. :d

Liefs, Chiara :love:
 
Hoi, daar is dat lastige meisje weer :eek:

In de bijlage het bestandje waarvoor jullie zulke geweldige oplossingen hebben bedacht. :thumb:

In de kolom met de geboortedatums werkt de listbox alleen als het geboortejaar 2011 is. Kan het ook zo worden gemaakt dat de geboortedatums in het verleden worden meegenomen, zodat de verjaardagen van de leerlingen in de listbox verschijnen?

Kan de gewijzigde code daarvoor worden gemarkeerd, zodat ik leer waarnaar ik had moeten kijken, want ik zie het zelf niet in de codes? :eek:

Bedankt, Chiara
 

Bijlagen

  • studenti.rar
    34,4 KB · Weergaven: 74
Laatst bewerkt:
Code:
For Each c In Sheets("Gegevens").Columns(Kol).SpecialCells(xlConstants)  'loop alle niet-lege D-cellen af
   If IsDate(c) Then 'is het een datum
     [COLOR="red"]If tel <> 2 Then 'is het niet de geboortedatumkolom[/COLOR]           
      If Date <= c.Value And c.Value <= Date + dagen Then  'valt binnen meldingsperiode
          Bericht = Format(CLng(c.Value), "00000") & "|" & c.Offset(, 1 - c.Column).Value & ", " & c.Offset(, 2 - c.Column).Value'nieuwe bericht
          Berichten.Add Item:=Bericht, Key:=CStr(Bericht)  'toevoegen aan collection
      End If
  [COLOR="red"]Else ' is het wel de geboortedatumkolom
      If Year(Date) = Year(c.Value) And c.Value <= Date + dagen Then  'valt binnen meldingsperiode
          Bericht = Format(CLng(c.Value), "00000") & "|" & c.Offset(, 1 - c.Column).Value & ", " & c.Offset(, 2 - c.Column).Value'nieuwe bericht
          Berichten.Add Item:=Bericht, Key:=CStr(Bericht)  'toevoegen aan collection
      End If[/COLOR]        
   End If
  End If
 Next
 
Laatst bewerkt:
ik denk dat je er niet komt met die oplossing, andere suggestie
Code:
Sub Meldingen()
  Dim Berichten As Collection
  Dim Bericht As Variant, c As Range, i As Integer, j As Integer, n As Integer, temp As Variant, Bericht1 As Variant, Bericht2 As Variant
  Dim tel As Integer, Kol As String, dagen As Integer[COLOR="red"], datum As Date[/COLOR]  
  Set BerichtenD = New Collection
  Set BerichtenI = New Collection
  Set BerichtenR = New Collection

  For tel = 1 To 3
    Select Case tel
      Case 1: Kol = "D": dagen = 30
      Case 2: Kol = "I": dagen = 1
      Case 3: Kol = "R": dagen = 7
    End Select

    Set Berichten = New Collection
    For Each c In Sheets("Gegevens").Columns(Kol).SpecialCells(xlConstants)  'loop alle niet-lege D-cellen af
      If IsDate(c) Then                                    'is het een datum
        [COLOR="red"]If tel <> 2 Then                                   'geen verjaardag
          datum = c.Value                                  'neem gewoon die datum over
        Else                                               'wel een verjaardag
          datum = DateSerial(Year(Now) - (Month(c.Value) = 1 And Month(Now) = 12), Month(c.Value), Day(c.Value))  'verander geboortejaar naar dit (of volgend jaar in december) jaar
        End If[/COLOR]
        If Date <= [COLOR="red"]datum[/COLOR] And [COLOR="red"]datum[/COLOR] <= Date + dagen Then    'valt binnen meldingsperiode
          Bericht = Format(CLng(c.Value), "00000") & "|" & c.Offset(, 1 - c.Column).Value & ", " & c.Offset(, 2 - c.Column).Value  'nieuwe bericht
          Berichten.Add Item:=Bericht, Key:=CStr(Bericht)  'toevoegen aan collection
        End If
      End If
    Next
etc
 
Hoi mannen,

Bij de code van Warme Bakkertje wordt enkel de datum in het lopende jaar (2011) weergegeven. Ook als die al voorbij is is (22-02-2011 in het voorbeeldbestandje).

De code van cow18 geeft wel de geboortedatums juist aan. Als deze voorbij is, verschijnt deze niet in de listbox.

Super weer van mijn twee helden! :thumb:

Liefs Chiara :love:
 
Hoi mannen,

Ik krijg opeens een foutmelding bij de volgende rode regel:

Code:
Sub Meldingen()
  Dim Berichten As Collection
  Dim Bericht As Variant, c As Range, i As Integer, j As Integer, n As Integer, temp As Variant, Bericht1 As Variant, Bericht2 As Variant
  Dim tel As Integer, Kol As String, dagen As Integer, datum As Date
  Set BerichtenD = New Collection
  Set BerichtenI = New Collection
  Set BerichtenR = New Collection

  For tel = 1 To 3
    Select Case tel
      Case 1: Kol = "D": dagen = 30
      Case 2: Kol = "I": dagen = 1
      Case 3: Kol = "R": dagen = 7
    End Select

    Set Berichten = New Collection
    For Each c In Sheets("Gegevens").Columns(Kol).SpecialCells(xlConstants)  'loop alle niet-lege D-cellen af
      If IsDate(c) Then                                    'is het een datum
        If tel <> 2 Then                                   'geen verjaardag
          datum = c.Value                                  'neem gewoon die datum over
        Else                                               'wel een verjaardag
          datum = DateSerial(Year(Now) - (Month(c.Value) = 1 And Month(Now) = 12), Month(c.Value), Day(c.Value))  'verander geboortejaar naar dit (of volgend jaar in december) jaar
        End If
        If Date <= datum And datum <= Date + dagen Then    'valt binnen meldingsperiode
          Bericht = Format(CLng(c.Value), "00000") & "|" & c.Offset(, 1 - c.Column).Value & ", " & c.Offset(, 2 - c.Column).Value  'nieuwe bericht
          [COLOR="red"]Berichten.Add Item:=Bericht, Key:=CStr(Bericht)  'toevoegen aan collection[/COLOR]
        End If
      End If
    Next

Weet iemand wat hier aan de hand kan zijn? :confused:

Chiara
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan