Userform verdwijnt na invoegen foto

Status
Niet open voor verdere reacties.

evero

Gebruiker
Lid geworden
25 jul 2011
Berichten
31
Hallo,

Enige tijd geleden heb ik een vraag gesteld met het invoegen van een foto in een Word formulier.
Dit heb ik met advies (op dit forum verkregen) kunnen oplossen.
Nu heb ik echter een ander probleem.
Nadat ik een foto heb ingevoegd verdwijnt de Userform.
Iemand enig idee.
Zie bijlage.
Bekijk bijlage Voorbeeld.docm

evero
 
ik weet niet waarom de userform verdwijnt, maar zoals ik het zie doet je userform toch niks.

waarom een aparte userform trouwens?

als ik het bestand sluit moet ik office opnieuw opstarten, heb jij dat zelf niet?
 
Laatst bewerkt:
Hallo SjonR,

Het is een "uitgekleed bestandje" wat duidelijk moet maken wat het probleem is
De Userform bevat in werkelijkheid diverse knoppen (o.a. print opdracht, mail opdracht met vaste geadresseerden, opslaan als...).
Voor mij dus van belang dat de Userform dus niet verdwijnt.

evero
 
Dag evero,

Bij het openen van het bestand gebeurt er ogenschijnlijk niets. Er wordt geen Userform getoond, alleen een schermflikkering. Bij nader toezien staat er in je code van Thisdocument:

Code:
Private Sub Document_Open()
  UserForm1.Show
  UserForm1.Left = 1000
  UserForm1.Top = 400
End Sub

Door de regel "UserForm1.Left = 1000" wordt de linkerzijde van de Userform gepositioneerd op 1000 punten, wat groter is dan de breedte van het document. Als je bijvoorbeeld die regel aanpast naar "UserForm1.Left = 100", dan verschijnt de userform wel.

Verder gebeuren er bij mij een heleboel onheilspellende verschijnselen. Niet alleen de Userform verdwijnt, maar ook de Command Button (?)

Wat ik zie is dat je de Application.Dialogs(wdDialogInsertPicture) gebruikt. Als de gebruiker een afbeelding kiest, dan wordt die toch door die Application.Dialogs(wdDialogInsertPicture) ingevoegd? En daarna voeg je hem nog eens toe via de InlineShapes.AddPicture-methode. Heb je daarom eerst een Undo ingelast?

Als je de Application.Dialogs(wdDialogInsertPicture) vervangt door een File Picker dan blijkt het wel te werken.

Code:
Private Sub CommandButton1_Click()
ActiveDocument.Unprotect "1234"
Dim StrPic As String, iShp As InlineShape, Rng As Range
On Error Resume Next
[COLOR="#FF0000"]With Application.FileDialog(msoFileDialogFilePicker)[/COLOR]
  If .Show = -1 Then
    [COLOR="#FF0000"]StrPic = .SelectedItems(1)[/COLOR] 
    With ActiveDocument
     [B][COLOR="#FF0000"] '[/COLOR][/B][COLOR="#FF0000"].Undo[/COLOR]
      Set Rng = .Bookmarks("BkMk").Range
      Rng.Text = vbNullString
      Set iShp = .InlineShapes.AddPicture(fileName:=StrPic, LinkToFile:=False, Range:=Rng)
      With iShp
        .LockAspectRatio = True
        .Height = InchesToPoints(3)
      End With
      With Rng
        .End = .End + 1
      End With
      .Bookmarks.Add "BkMk", Rng
    End With
  End If
End With
    ActiveDocument.Protect Password:="1234", NoReset:=False, Type:= _
        wdAllowOnlyFormFields, UseIRM:=False, EnforceStyleLock:=False
End Sub


Als je die oplossing gebruikt moet je nog wel code invoegen om te controleren of de gebruiker wel een bruikbaar afbeeldingsbestand gebruikt.

Grtz,
MDN111.
 
Hallo MDN111,

Het door u gedane voorstel ga ik straks even proberen.
Mijn probleem lag in het weer beveiligen van het document.
Door de gebruikte manier van beveiligen werden ook de ingevulde Formfields weer "leeg" gemaakt.
Na een paar uurtjes zoeken op internet onderstaande code gevonden.
Het gedeelte:

Code:
ActiveDocument.Protect Password:="1234", NoReset:=False, Type:= _
        wdAllowOnlyFormFields, UseIRM:=False, EnforceStyleLock:=False

vervangen door:

Code:
ActiveDocument.Protect wdAllowOnlyFormFields, True, "1234"

Allen bedankt voor het meedenken.
Vraag als opgelost gezet.

evero
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan