• 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.

als cel ingevuld is word bestand openen

Status
Niet open voor verdere reacties.

bjornesto

Gebruiker
Lid geworden
16 apr 2012
Berichten
201
ik ben aan het zoeken op het internet maar niet echt iets gevonden om dit te verwezelijken.

Wij hebben in excel een rapport en als wij een incident moeten invullen dan zou ik graag hebben als volgende cel iets instaat dat hij automatisch het bestand hieronder opent als er niets staat moet hij dat niet activeren.

De cellen waarover het gaat zijn de volgende samengevoegde cellen.
In cel
(D219:E219)
(D220:E220)
(D221:E221)

hoe kan je dit doen?

Bekijk bijlage Incidentenformulier blanco.doc
 
Code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Target, Union(Range("D219"), Range("D220"), Range("D221"))) Is Nothing And Target <> "" Then
        With CreateObject("Word.Application")
            .Visible = True
            .Documents.Open ("g:\mijn documenten\Incidentenformulier blanco.doc")
        End With
        SetForegroundWindow (FindWindow(vbNullString, "Incidentenformulier blanco.doc - Microsoft Word"))
    End If
End Sub
Plak deze code in de bladmodule van het gebruikte werkblad.
Nog enkel het pad aanpassen bij Documents.Open
 
dit werkt perfect

dank u daarvoor

Als ik nu een excel bestand hierdoor wil laten openen kan ik dan ook dezelfde code gebruiken of ni?
 
als ik op delete druk krijg ik een foutmelding

Code:
[Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Worksheet_Change(ByVal Target As Range)
'1ste If Not automatisch openen van bestand als een incidentenrapport moet ingevuld worden
'2de If Not automatisch invullen van het uur als er in vorige cel iets ingevuld staat
   If Not Intersect(Target, Union(Range("D221"), Range("D222"), Range("D223"))) Is Nothing And Target <> "" Then
        With CreateObject("Word.Application")
            .Visible = True
            .Documents.Open ("P:\SHARE\Rapporten\Incidentenrapporten\Incidentenformulier blanco.doc")
        End With
        SetForegroundWindow (FindWindow(vbNullString, "Incidentenformulier blanco.doc - Microsoft Word"))
    End If
 If Not Intersect(Target, Range("A48:A69,E48:E69,A72:A111,A181:A185,E181:E185,A188:A192,E188:E192,A197:A203,A221:A223")) Is Nothing Then
  With Target.Offset(, 1)
   .Value = IIf(.Value = "", Time, .Value)
  End With
 End If
End Sub/CODE]
 
Code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
 (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
 
Private Sub Worksheet_Change(ByVal Target As Range)
 '1ste If Not automatisch openen van bestand als een incidentenrapport moet ingevuld worden
 '2de If Not automatisch invullen van het uur als er in vorige cel iets ingevuld staat
On Error Goto EarlyExit
 If Not Intersect(Target, Union(Range("D221"), Range("D222"), Range("D223"))) Is Nothing And Target <> "" Then
 With CreateObject("Word.Application")
 .Visible = True
 .Documents.Open ("P:\SHARE\Rapporten\Incidentenrapporten\Incidentenformulier blanco.doc")
 End With
 SetForegroundWindow (FindWindow(vbNullString, "Incidentenformulier blanco.doc - Microsoft Word"))
 End If
 If Not Intersect(Target, Range("A48:A69,E48:E69,A72:A111,A181:A185,E181:E185,A188:A192,E188:E192,A197:A203,A221:A223")) Is Nothing Then
 With Target.Offset(, 1)
 .Value = IIf(.Value = "", Time, .Value)
 End With
 End If
EarlyExit:
 End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan