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

wijzigen activeX commandbutton in macro

  • Onderwerp starter Onderwerp starter NJL
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
@AD1957 Inderdaad werkt uw laatste suggestie op beide versies. Ik vroeg me af waarom dat 't bij mij niet werkt. Nu blijkt als ik in mijn code van 20:21 de twee with statements van plaats verwissel dat 't dan in x2016 niet meer werkt. Heeft u daar nog een suggestie voor.
@snb, u heeft natuurlijk gelijk dat er veel fraaiere oplossingen mogelijk zijn maar dit is een onderdeel van een erg oude grote procedure waarop een patch gevraagd is om de selectievolgorde van de knoppen wat duidelijker te maken, vandaar.
 
De selectievolgorde van knoppen stel je in de design modus eenvoudig eenmaal handmatig in met de 'Taborder'.
 
@snb,
Voor zover ik weet kan dat alleen in een Userform, ben benieuwd.
@NJL,
Wat dacht je van een voorbeeldbestand en dan eens duidelijk uitleggen wat je wilt bereiken.
 
Aanvullend op mijn reactie van 15/08. Met de volgende code werkt het onafhankelijk van de volgorde of willekeurig deel van de regels in beide versies
en kan ik dus in een loop een (deel van de) parameter(s) van meerdere knoppen wijzigen waarmee mijn probleem is opgelost.
Dank voor jullie meedenken.

a = ActiveSheet.Shapes("CommandButton" & i).Name
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.Font.Strikethrough = True
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.Font.Strikethrough = False
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.Font.Underline = True
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.Font.Underline = False
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.Font.Italic = True
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.Font.Italic = False
Worksheets("Blad1").Shapes(a).OLEFormat.Object.Object.BackColor = RGB(255, 0, 0)
 
Een ActiveX element in een wrkblad is 'OLEObject'
Als er geen andere afbeeldingen in het werkblad zijn, gebruik dan 'Shapes.selectall'

Lees ook eens wat andere draden om een beeld te krijgen wat VBA is:

Code:
for j=1 to sheets("Blad1").shapes.count
  with sheets("Blad1").Shapes(j).OLEFormat.Object.font
     .Strikethrough = True
     .Underline = True
     .Italic = True
     .Parent.BackColor = RGB(255, 0, 0)
  End with
Next
En verdiep je in 'ShapeRange'.
 
Laatst bewerkt:
@snb
Met respect maar uw code vertoont toch wat bugs. j versus i geeft error 5.
regel 2 geeft error 438 vanwege 1 x "object" te weinig.
Verzoek om uw code uit te breiden met 'striketrough', 'underline' en 'italic' allen 'false' en deze 'met F8 'los' te laten op een aantal knoppen
op Blad1.
Eerst op versie 2007 en daarna op versie 2016 en zie het vreemde gedrag bij een aantal malen de gehele code doorstappen.
En, ja er zullen heel wat elegantere manieren zijn om het te coderen maar soms moet 't nu eenmaal quick and dirty.
Mijn oplossing werkt in ieder geval in beide versies.
Dus nogmaals dank.
 
Probeer er eens iets van te leren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan