Word met Active-X problemen

Status
Niet open voor verdere reacties.

SIRsparky989

Gebruiker
Lid geworden
10 jan 2024
Berichten
9
Een goedemiddag allemaal,

ik heb voor mijn werk een bestandje gemaakt waar wij meetwaardes invullen voor de meterkasten.

Nu heb ik in mijn documenten een knopje zitten met een VBA code.
Als je nu in een invulveld een meetwaarde invult en je klikt op het knopje dan ververst het document zichzelf en word er automatisch een veld berekend.

Voorheen werkte deze functies, maar sinds ik mijn laptop terug heb met windows 11, werkt dit niet meer naar behoren op mijn laptop.

nu weet ik alleen niet of dit aan mijn laptop ligt of dat mijn documenten corrupt zijn.

nu ben ik er vandaag achter gekomen dat deze velden werken na 1x openen.
na een 2de keer openen krijg ik de volgende melding: Kan de ontwerpmodus niet afsluiten omdat besturingselement CommandButton1 niet kan worden gemaakt.

Mijn VBA code is als volgt:
This document

Private Sub CommandButton1_Click()
If Application.Documents.Count >= 1 Then
ActiveDocument.Fields.Update
Else
MsgBox "No documents are open"
End If

'The table of contents can flag up errors after this so we'll force it to silently refresh too if it exists
If ActiveDocument.TablesOfContents.Count = 1 Then
ActiveDocument.TablesOfContents(1).Update
End If


End Sub



Private Sub Document_Open()
Register_Event_Handler
End Sub

Private Sub Document_New()

End Sub

Private Sub HideCmdButtons()
End Sub

Private Sub ShowCmdButtons()
End Sub


Modules:
Dim X As New Klasse1
Sub Register_Event_Handler()
Set X.App = Word.Application
End Sub


Klassenmodules:
Public WithEvents App As Word.Application
Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)

' Runs before printing

End Sub

als voorbeeld heb ik een document ingevoegd die wij gebruiken.

Hopelijk kunnen jullie mij hiermee helpen en mij er eventueel op wijzen waar dit nu precies fout gaat
 

Bijlagen

Wij worden een beetje moe van het moeten scrollen door codes die niet met de CODE tag zijn opgemaakt. Graag, als dat kan, herstellen of de volgende keer dus beter doen. Je zal moeten toegeven dat dit:
Code:
Private Sub CommandButton1_Click()
     If Application.Documents.Count >= 1 Then
          ActiveDocument.Fields.Update
     Else
          MsgBox "No documents are open"
End If
er een stuk netter uit ziet :). Wat mij opvalt aan het openen van je document: de document beveiliging (<Bewerking beperken> staat wél ingesteld op <Formulieren invullen>, maar niet aan. Dus werkt het niet.

Verder snap ik geen jota van je document; ik heb geen flauw idee wát er moet gebeuren en bij wélke velden dat dan plaats moet vinden. Het zou schelen als je in je voorbeeld zou kunnen aangeven hoe we e.e.a. kunnen reproduceren.
 
Goedemiddag,

sorry het was mij niet bekend om dit netter te formuleren.

Dat de beveiliging (Bewerking beperken uitstaat) is mij bekend in dit formulier, zodra de beveiliging hier actief is dan werkt dit documentje niet op de Ipad (Raar maar waar)
onze laptop document is precies hetzelfde enkel is daar de beveiliging wel actief.

De enigste berekening waar het om gaat is Mijn L1 - PE, L2 - PE en L3 - PE
als je in een van die 3 velden een waarde invult berekent het formulier IK_L1, IK-L2 en Ik-L3

deze berekening staat ingesteld op de vuistregel (230V/L1-PE/L2-PE/L3-PE)
 
Dat de beveiliging (Bewerking beperken uitstaat) is mij bekend in dit formulier, zodra de beveiliging hier actief is dan werkt dit documentje niet op de Ipad (Raar maar waar)
Totaal niet raar; je kunt op een iPad nu eenmaal geen VBA draaien. Dus ook geen knoppen gebruiken etc. Daar moet je dus rekening mee houden als je formulieren ontwerpt voor een iPad: gebruik alleen objecten waarbij je niet hoeft te programmeren.

Het gaat dus denk ik hier om?

Berekening Word.jpg

In een desktop versie moet het uiteraard prima werken. Maar waarom gebruik je ActiveX en 'oude' tekstvakken door elkaar? Makes no sense.... Gebruik alleen oude tekstvakken, en volgens mij kun je het formulier dan gewoon gebruiken. Ik zal er in ieder geval even naar kijken.
 
Ik heb het net getest, en met een 'oud' tekstvak werkt het prima. Dan doet in ieder geval je knop het ook.
 
Totaal niet raar; je kunt op een iPad nu eenmaal geen VBA draaien. Dus ook geen knoppen gebruiken etc. Daar moet je dus rekening mee houden als je formulieren ontwerpt voor een iPad: gebruik alleen objecten waarbij je niet hoeft te programmeren.

Het gaat dus denk ik hier om?

Bekijk bijlage 378430

In een desktop versie moet het uiteraard prima werken. Maar waarom gebruik je ActiveX en 'oude' tekstvakken door elkaar? Makes no sense.... Gebruik alleen oude tekstvakken, en volgens mij kun je het formulier dan gewoon gebruiken. Ik zal er in ieder geval even naar kijken.
Goedemorgen, dit is precies waar het om gaat, en ik heb oud en nieuw doormekaar heen gehaald omdat ik niet kon vinden hoe ik met de nieuwe tekst vlakken dit kon maken, vandaar de mix tussen nieuw en oud.

De reden warom ik nieuwe tekst vakken heb gekozen is omdat die netter te maken zijn en makkelijker op te maken zijn
 
Ik heb het net getest, en met een 'oud' tekstvak werkt het prima. Dan doet in ieder geval je knop het ook.
Hier zit nu dus mijn probleem, Als ik mijn ongebruikte word document open dan moet ik de active-X toestemming geven om te werken,
ik sluit mijn word document af,
en na het opnieuw openen krijg ik de melding dat mijn Command Button niet afgemaakt kan worden.

En als ik dit bestand opnieuw download, gaat het precies zoals bovenstaand.

Nu weet ik niet of dit aan mijn Laptop met windows 11 ligt, of dat er iets in mijn document mis is
 
Dit:
De reden warom ik nieuwe tekst vakken heb gekozen is omdat die netter te maken zijn en makkelijker op te maken zijn
is precies de Microsof valkuil waar ook jij ingestonken bent. Microsoft maakt iets (Word 95-Word 2003) dat in essentie perfect is, en waar niks meer aan te verbeteren is. Maar ja, daar verkoop je niks mee. Dus ga je sleutelen aan perfectie, en geef je een dronken zwerver (je doet dan ook iets voor de maatschappij) de leiding over de interface afdeling, met als gevolg allerlei 'nieuwe en verbeterde' onzinnigheden waar a) niemand op zit te wachten en die b) het pakket alleen maar slechter maken. Maar ja, het ziet er mooier uit, dus het volk tuint er in. Niet bedroefd zijn, je bent niet de eerste :).

Overigens klopt het niet eens, want de oude tekstvakken zijn gewoon op te maken zoals je met normale tekst ook doet, dus ik zie daar geen probleem in. En zeker niet dat de nieuwe makkelijker zijn.

...en ik heb oud en nieuw doormekaar heen gehaald omdat ik niet kon vinden hoe ik met de nieuwe tekst vlakken dit kon maken, vandaar de mix tussen nieuw en oud.
De ActiveX objecten zijn waardeloos als het gaat om automatisering. Je kunt daar in beginsel niks mee. Zelfs het uitlezen ervan in VBA is hondsmoeilijk. Maar het kan wel, als je het eenmaal weet. Maar de oude tektsvakken zijn dus vele malen simpeler te maken, in te stellen en te automatiseren. Zo kun je op twee plekken een macro aan een tekstvak hangen, en een tekstvak krijgt automatisch een bladwijzernaam die je kan gebruiken in formules (probeer dat maar eens met een ActiveX kreng).

Kortom: als je een Word document wilt autmatiseren, hou je aan één type en gebruik dat optimaal. Jouw methode werkt prima voor formulieren waarmee je niks wilt automatiseren. Wil je wat meer: gebruik de oude objecten.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan