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

Macro tijdelijk uitschakelen

  • Onderwerp starter Onderwerp starter ppms
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ppms

Gebruiker
Lid geworden
19 aug 2006
Berichten
226
Hallo,

Ik zou deze macro met een knop rijdelijk willen uitschakelen, is dit mogelijk.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect Password:="sc3338"
Dim cl As Range, x As Integer, y As Integer
For Each cl In [B12:Y91]
If cl.Interior.ColorIndex = 4 Then
cl.Interior.ColorIndex = -4142
End If
Next cl
y = ActiveCell.Row
If y > 91 Then Exit Sub
For x = 1 To 25
If Cells(y, x).Interior.ColorIndex = -4142 Then
Cells(y, x).Interior.ColorIndex = 4
End If
Next x
ActiveSheet.Protect Password:="sc3338"
End Sub

Groet PPMS
 
Je kunt met events zoals Worksheet_SelectionChange uitschakelen via:
Code:
Application.EnableEvents = False

Maar dat moet je niet vergeten om het ook weer ongedaan te maken, via:

Code:
Application.EnableEvents = True

.. omdat er anders geen enkel event wordt uitgevoerd.

Beter dan bovengenoemde mogelijkheid is om met een IF - voorwaarde in Worksheet_SelectionChange te bepalen wanneer de code moet worden uitgevoerd.

Met vriendelijke groet,


Roncancio
 
Hallo,

Zou je een voorbeeldje kunnen geven hoe ik dit moet doen om die code tijdelijk uit te schakelen. Die VBA code ook gehad van een van jullie Helpmij kanjers, dit bejaard baasje heeft zelf heb ik niet zoveel verstand van VBA.

Groet PPMS
 
Hallo,

Zou je een voorbeeldje kunnen geven hoe ik dit moet doen om die code tijdelijk uit te schakelen. Die VBA code ook gehad van een van jullie Helpmij kanjers, dit bejaard baasje heeft zelf heb ik niet zoveel verstand van VBA.

Groet PPMS

Onder welke voorwaarde wil je de code tijdelijk uitschakelen?
Bijvoorbeeld als er in een bepaald bereik een wijziging of verplaatsing plaatsvindt.
In onderstaand voorbeeld wordt de code alleen uitgevoerd als er cel in het bereik A1 t/m C100 wordt geselecteerd.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C100")) Is Nothing Then
 ' JE CODE
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Hallo,

Als de code aan is dan kan ik niet iets uit een ander bestand waar in ik de loting maak om alle deelnemers te kopiëren en dan kunnen plakken in het bestand met de code maar dit wil niet omdat het blad beveiligd is.

Het zou voldoende zijn als ik b.v. met een vinkje de code even uitschakelt en dan kan plakken en daarna vinkje weg werkt de code weer.

Alvast bedankt voor de genomen moeite om mij te helpen.

Groet PPMS
 
Bijvoorbeeld:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Checkbox1.Value = False Then
 ' JE CODE
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Zapatr,

Ik wil je hiervoor dan mij oprechte excuus aanbieden, oorzaak is dat ik een hele vervelende ziekte (K) heb en daardoor regelmatig ben uitgeschakeld omdat ik dan totaal geen energie heb. Ik ben ook vaak vergeetachtig en dit zal aan de vele medicijnen liggen om 08u00 tien stuks en voor het slapen nog eens 3 stuks.

Nogmaals mij excuus hiervoor.

Ik hoop dat ik toch mag door gaan met dit probleem van kopieren.

Groet PPMS
 
Dat is een valabele reden.
Veel beterschap (voor zover mogelijk).

Om op je vraag terug te komen:
Je hebt enerzijds de macro om B12:Y91 te kleuren (Private sub....).
Anderzijds heb je je sorteerroutine.
Van die sorteerroutine maak je een AFZONDERLIJKE MACRO die je in een module plaatst (als er nog geen module aanwezig is, dan in het vba-menu kiezen: Invoegen - Module).
Het principe van die macro ziet er dan als volgt uit:
Code:
Sub macro1()
With sheets("toernooi")
.unprotect Password:="xxxxx"
Application.EnableEvents = False
' Hier je kopieer opdracht
' Hier je sorteeropdracht (indien nodig)
Application.EnableEvents = True
.Protect Password:="xxxxx"
End With
End Sub

Ik heb bovenstaande getest en dat verloopt bij mij probleemloos.
 
Zapatr,

Dank je voor je vriendelijke woorden en ik hoop dat ik nog lang van de kinderen en kleinkinderen mag genieten.

Ik heb er twee macro’s van gemaakt een om uit te schakelen en een om in te schakelen. De rede hiervoor is dat wat ik kopieer in een ander bestand elke keer anders is en zo heb ik even de vrijheid om te kopiëren/plakken.

Ga het vanavond in het echte programma zetten en zal dan laten horen of het allemaal gelukt is.

Groet PPMS
 
Ik heb er twee macro’s van gemaakt een om uit te schakelen en een om in te schakelen. De reden hiervoor is dat wat ik kopieer in een ander bestand elke keer anders is en zo heb ik even de vrijheid om te kopiëren/plakken.
Als je daarmee bedoelt: 1 macro om de beveiliging in te schakelen en 1 macro om de beveiliging uit te schakelen, dan begrijp ik dat niet zo goed en vrees ik dat je in de problemen komt. Maar misschien bedoel je iets anders dan beveiliging in- en uitschakelen ?

Ga het vanavond in het echte programma zetten en zal dan laten horen of het allemaal gelukt is.
Ok, dan vernemen we het wel.
 
Zapatr,

Zie bijlage, graag je mening erover.

Groet PPMS
 

Bijlagen

graag je mening erover.
Mijn mening is, dat als je enerzijds met de "Private sub..."-macro je blad beschermt,
maar anderzijds via een knop in het werkblad die beveiliging ongedaan kunt maken;
dat die beveiliging dan niet veel zin heeft.
En alle Events uitschakelen zonder te weten wanneer je ze weer inschakelt, lijkt mij ZEER ongewenst.
Maar: jíj moet er mee werken, dus als jouw methode voor jou prima voldoet, dan moet je ze handhaven.
Misschien kunnen anderen hun licht er eens over laten schijnen.
 
Zapatr,

Ik ben er uit, heb het blad toernooi gekopieerd en dit blad de naam gegeven van kopieerblad loting. In dit blad verder geen macro’s of beveiliging, hier kan ik dus alles plakken wat ik wil.

In blad toernooi je macro met knop gemaakt en wordt alles van kopieerblad loting in blad toernooi gezet. Zo blijft het blad toernooi altijd beveiligt, was een juiste opmerking van je over de beveiliging waar ik geen erg in had.

Na het kopiëren moest ik eerst de celwijzer een cel verplaatsen zodat de groene balk weer te zichtbaar werd. Dit heb ik zo opgelost om de celwijzer einde macro naar cel I12 te verplaatsen.

Ga het nog een paar keer uitproberen en zal dan de vraag als opgelost zetten.

Roncancio en Zapatr,

Jullie heel vriendelijk bedankt voor de genomen moeite om mij te helpen met VBA.

Groet PPMS
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan