• 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 uitschakelen bij starten andere macro?

Status
Niet open voor verdere reacties.

fun_surfer

Gebruiker
Lid geworden
25 aug 2001
Berichten
621
Hallo allemaal, ik heb een macro waardoor de datum in een cel ingevoerd wordt als er in een andere cel de waarde wordt gewijzigd danwel ingevoerd. Kun je deze macro (tijdelijk) stoppen op het moment dat een andere macro wordt uitgevoerd: kan ik het uitschakelen in een macro verwerken? Ik ben nog niet gek ver met VBA-kennis, maar als ik logisch nadenk zou dit hetzelfde zijn als 'suïcide', maar ik hoop dat het wel lukt!
Alvast bedankt voor eventuele reacties, grtz fun_surfer.
 
Je kunt vanuit de ene macro een andere macro aanroepen. bijv:

Code:
Sub Macro1()
Allemaal macroinstructies

'Starten tweede macro
Call Macro2

rest van de instructies macro1

End Sub

Sub Macro2()
Instructies van Macro2
End Sub

Op het moment dat in macro 1 de regel Call Macro2 uitgevoerd wordt, stopt macro1 en wordt macro2 uitgevoerd. Wanneer macro2 dan klaar is, gaat macro 1 weer verder waar ie gebleven was.
 
Beste Brutus, de macro die ik wil stoppen is een Private Sub Worksheet_Change-macro. Deze is dus altijd actief, wachtend op een wijziging in het opgegeven cellenbereik (als ik dit gedeelte wel snap uiteraard). De oplossing die jij biedt, is deze ook in die situatie toepasbaar of moet ik dan iets anders doen?
GRTZ fun_surfer.

EDIT: uitgeprobeerd, hij geeft bij het uitvoeren van mijn 2e macro als fout dat er 2x worksheet_change aanwezig is...
 
Laatst bewerkt:
Geplaatst door fun_surfer
....is een Private Sub Worksheet_Change-macro. Deze is dus altijd actief,.....

Dat is niet helemaal waar. De betreffende macro wordt iedere keer actief wanneer een wijziging in je werblad plaatsvind.

Twee keer een sub met een zelfde naam maken lukt niet. Want hoe weet vba dan welke hij wanneer moet uitvoeren? Wat je wel zou kunnen doen is bijvoorbeeld een if..then..else structuur gebruiken. Voorbeeld:

Code:
Private Sub Worksheet_Change()
Range("A1").Select

'Als er in cel A1 "Ja" staat dan:
If ActiveCell.Text = "Ja" then
'berichtvenster tonen
Msgbox "Er staat Ja in cel A1"
'Anders
Else
'Ophouden met uitvoeren van deze sub
Exit Sub
End If
 
Hallo,

Sub Mijnmacro()
Application.EnableEvents = False
'Uw macro
Application.EnableEvents = True
End Sub


Luc
 
Beste Brutus, je hebt inderdaad gelijk wat betreft die macro! Ik heb je idee een beetje proberen te doorgronden en aan te passen, maar ik zal een bijlage toevoegen wat de opzet een beetje vergemakkelijkt.
Luc, ook jouw idee heb ik toe proberen te passen, maar ongetwijfeld dat ik het niet goed doe.
Mijn bedoeling is dat als ik een nieuw boek invoer, het boek dat (de boeken die) ik heb uitgeleend haar datum behouden! Dit wordt tegengehouden als ik een nieuwe rij probeer in te voegen; hij geeft een foutmelding en start VBA op ter foutopsporing...
Groeten en uiteraard maar weer bedankt voor het meedenken!
 
Laatst bewerkt:
Ja... maar de fout zit hem niet in je Auto-macro. Maar op je filter. Ik heb de code die de fout veroorzaakt even als opmerking gezet. Dezelfde code geeft trouwens ook een fout als je automacro niet meer bestaat.

Sub rij_invoegen()
Application.EnableEvents = False
Application.ScreenUpdating = False
Range("A2").Select
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
'Selection.AutoFilter Field:=4
'Selection.AutoFilter Field:=5
Application.Run "A"
DoelRij = InputBox("Geef op welke rij op moet schuiven:")
Rows(DoelRij).Select
Range("A" & DoelRij & ":G" & DoelRij).Select
Selection.Insert shift:=xlDown
Range("D" & DoelRij).Select
Selection.FillDown
Range("A" & DoelRij).Select
Application.EnableEvents = True
End Sub

Luc
 
Beste Luc, dat heb ik dan verkeerd begrepen, ik dacht dat het in die andere moest... Ik heb hem nu overgenomen en op macro's in andere bestanden toegepast en hij werkt inderdaad!
Allebei weer heel erg bedankt voor de tips!

GRTZ fun_surfer.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan