Hoe??

Status
Niet open voor verdere reacties.
heb de file aangepast en na lang zoeken en puzzelen en al de hoop opgegeven is het toch gelukt om de VBA werkend te krijgen.
heb ook gekeken naar de beveiliging van het blad, maar daar kom je ook niet zo gemakkelijk uit zoals bij excel, ik wil graag mijn file beveiligen maar ze moeten hem wel kunnen invullen. maar ik wil niet dat ze de file kunnen aanpassenBekijk bijlage wachtrapport Week 5.docm
 
... ik wil graag mijn file beveiligen maar ze moeten hem wel kunnen invullen. maar ik wil niet dat ze de file kunnen aanpassen
Even voor mijn begrip, want ik dacht dat Nederlands niet zo'n moeilijke taal was, maar nu snap ik 'm toch niet meer..... De gebruiker moet het document kunnen invullen. Dat snap ik. Invullen van een document = veranderen van de inhoud van het document = muteren van document = aanpassen van document. En wat zeg je nu? "maar ik wil niet dat ze de file kunnen aanpassen" ..... I'm out!

Je hebt het document niet ingedeeld in secties, dus als je het document nu beveiligt (wat overigens in mijn optiek makkelijker is dan in Excel) dan kun je alleen de gemaakte velden invullen. Kolommen als <Naam> en <Tijd> (Ziekmeldingen) bevatten geen velden, en die kan je dan dus nooit invullen. Overal waar input is gevraagd van een gebruiker, moet een invulveld van het een of andere soort staan. De tabel <Bijzonderheden> lijkt mij een vrije tabel, dus daar zou ik dan een sectie maken die je niet beveiligt.

De vraag over ochtend of middag is simpel op te lossen door de tijd te vertalen naar een dagdeel. Bijvoorbeeld zo:

Code:
Private Sub CommandButton1_Click()
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim sDD As String
     
    Select Case Int(TimeValue(Now) * 24)
        Case Is >= 23
            sDD = "Nachtdienst"
        Case Is >= 18
            sDD = "Avonddienst"
        Case Is >= 13
            sDD = "Middagdienst"
        Case Is >= 8
            sDD = "Ochtenddienst"
    End Select
    
    On Error Resume Next
     If Len(ActiveDocument.Path) = 0 Then ActiveDocument.Save         'so save it
    Set oOutlookApp = GetObject(, "Outlook.Application")
    If Err <> 0 Then 'Outlook isn't running
        Set oOutlookApp = CreateObject("Outlook.Application")
        bStarted = True
    End If
    Set oItem = oOutlookApp.CreateItem(olMailItem)
    With oItem 'and add the detail to it
        .To = "arie.teeuw@tateandlyle.com" 'send to this address
        .CC = ""
        .Subject = "Wachtrapport " & sDD & " " & Format(Now, "dd-mmm-yyyy    hh:mm Uur") 'This is the message subject
        .Body = Mailbody
        .Attachments.Add Source:=ActiveDocument.FullName, Type:=TypePDF
        .Display
    End With
    If bStarted Then 'If the macro started Outlook, stop it again.
        oOutlookApp.Quit
    End If
    
    Set oItem = Nothing
    Set oOutlookApp = Nothing
     
End Sub

Overigens zie ik niet zoveel verschil met mijn code..... OK, je hebt nogal wat tijd gestoken in extra lege regels, maar dat moet toch minder als een dag hebben gekost :).
 
Even voor mijn begrip, want ik dacht dat Nederlands niet zo'n moeilijke taal was, maar nu snap ik 'm toch niet meer..... De gebruiker moet het document kunnen invullen. Dat snap ik. Invullen van een document = veranderen van de inhoud van het document = muteren van document = aanpassen van document. En wat zeg je nu? "maar ik wil niet dat ze de file kunnen aanpassen" ..... I'm out!

Hier heb je gelijk in het staat nog al krom, het is de bedoeling dat het document alleen kan worden in gevuld op de daarvoor bestemde plaatsen.
Maar ik heb dat niet duidelijk neer gezet. mijn excuus daarvoor

Ook met de VBA code daar kan ik je alleen maar gelijk in geven, die verschild niet veel.
ik heb jou Vba code weer gebruikt maar ook daarmee krijg ik niet te zien of het gaat om de ochtend, middag, avond of nacht wanneer ik hem ga versturen
 
Je kunt gerust je eigen code blijven gebruiken, als die werkt :). Ik heb het mailen niet getest, maar wat doet hij dan niet? Wordt de variabele sDD niet gevuld? Of heb ik de bedoeling niet begrepen?
 
OctaFish
Idd de variabele sDD wordt ook met jou code niet gevuld? en ik krijg het ook niet voor elkaar
hij blijft gewoon de tijd neer zetten, dus hoop ik dat jij er nogmaals na wil kijken

mijn dank is groot
 
Ik kijk er nog wel even naar, maar de variabele wordt bij mij gewoon gevuld. Er is ook geen reden waarom die níet gevuld wordt, want hij begint er gelijk mee. Je kunt eens kijken wat er gebeurt als je op de eerste regel een stop inbouwt (<F9>) en dan met <F8> door de code loopt.
 
OctaFish je heb helemaal gelijk
ik heb nogmaals je code opgepakt en nu werkt hij wel
ben je zeer dankbaar
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan