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

als blad is macro

Status
Niet open voor verdere reacties.

W Bloemendal

Gebruiker
Lid geworden
28 jan 2001
Berichten
503
Ik wil een bapaalde macro uitvoeren als een bepaald blad is actief.
Dus als ikeen macro uitvoer moet er gekeken worden welk blad er actief is ebn naar aanleiding hiervan moet er een andere macro uitgevoerd worden.

ik had het volgende maar het werkt niet


If ActiveWindow = "blad3" Then MacroA: End
If ActiveWindow = "blad4" Then Macrob: End
If ActiveWindow = "blad5" Then Macroc: End

wim
 
Wim,


Code:
If ActiveSheet.Name = "blad3" Then Call Macro1



Koosl
 
dit werkt goed maar nu moet er boven komen staan blad = activesheet en later in de macro Sheets("blad").Select

wim
 
Wim,

dit werkt goed maar nu moet er boven komen staan blad = activesheet en later in de macro Sheets("blad").Select

Ik snap niet precies wat je hier mee bedoelt. Wat moet dan waarboven staan?

Plaats het stukje code eens wat je tot nu toe hebt gemaakt.
En geef dan een korte omschrijving wat je wilt bereiken

Koosl
 
Hier is de macro

Sub fout()
Dim blad As String
blad = actvesheet

Rij = ActiveCell.Row
If ActiveSheet.Name = "lijst" Then Call MacroA
If ActiveSheet.Name = "UITG." Then Call macroB
If ActiveSheet.Name = "8-sp" Then Call MacroC
Rows(Rij).Select
If ActiveCell.Locked Then GoTo 11

' copieren
Selection.Copy
Application.Goto Reference:="stop"
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
Sheets("blad").Select
Selection.Delete Shift:=xlUp

' beveiligen
MacroA1

11 MsgBox "Cel geblokkeerd", vbExclamation


End Sub


Ik dacht dat If ActiveSheet.Name = "lijst" Then Call MacroA goed was maar als blad lijst actief is wordt macroA niet uitgevoerd
Bovenstaande macro moet vanaf verschillende bladen uitgevoerd kunnen worden.
dan moet de regel die geselecteerd is gecopieerd worden naar een ander blad en dan de orginekleregel gewist worden


hopende dat dit duidelijk is

wim
 
Wim,

nu starten de macro's wel.

kijk eens hoe ver je zelf kunt komen, of je ergens tegen aan loopt wat niet wil lukken?


Koosl
 
Wim,

nu starten de macro's wel.

kijk eens hoe ver je zelf kunt komen, of je ergens tegen aan loopt wat niet wil lukken?

Koosl

Koos

ik kan de bijlage niet openen. Wil je het nog eens proberen?

Ik denk dat ik de code hierboven wel kan verbeteren (maar misschien heb jij dat al gedaan).

Wigi
 
Wigi,

ik kan de bijlage ook niet openen.

Maar het vervelende is dat ik het bestandje niet meer op mijn pc heb staan.
Of hij staat op mijn werk op de pc.

Ik had niet alles aangepast, maar wel werkende.
Met de gedachte dat Wim het misschien zelf wilde fixen.


Ik heb in ieder geval vandaag niet meer tijd om er nog iets te maken.

groetjes,

Koosl
 
Wigi,

ik kan de bijlage ook niet openen.

Maar het vervelende is dat ik het bestandje niet meer op mijn pc heb staan.
Of hij staat op mijn werk op de pc.

Ik had niet alles aangepast, maar wel werkende.
Met de gedachte dat Wim het misschien zelf wilde fixen.

Ik heb in ieder geval vandaag niet meer tijd om er nog iets te maken.

groetjes,

Koosl

OK, kies zelf maar wat je doet en wanneer je iets wil doen. Als het erop komt kijk ik er naar en anders is het ook goed voor mij hoor.
 
Wigi,

Ik weet dat je zit te popelen. :D

Ga je gang en succes.


Hoewel, succes zal niet nodig zijn denk ik.
Jij schud ze zo uit je mouw. :p

Koosl
 
Wim,

zip file uploaden wil niet lukken. Er is iets mis op dit forum de laatste dagen.
Ik plak de code er zo wel in.

Afhankelijk welk tabblad aktief is wordt er een macro aangeroepen.
Kijk eens of je hier zelf mee verder kunt?

Koosl

Code:
Sub fout()
Dim blad As String
blad = actveSheet

Rij = ActiveCell.Row
If ActiveSheet.Name = "lijst" Then Call MacroA
If ActiveSheet.Name = "UITG." Then Call MacroB
If ActiveSheet.Name = "8-sp" Then Call MacroC

Rows(Rij).Select
If ActiveCell.Locked Then GoTo 11

' copieren
Selection.Copy
Application.Goto Reference:="stop"
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
Sheets("blad").Select
Selection.Delete Shift:=xlUp

' beveiligen
'MacroA1

11:  MsgBox "Cel geblokkeerd", vbExclamation  'het gebruik is om achter een label een : te zetten


End Sub

Sub MacroA()
    MsgBox "lijst dan is dit macroA"
End Sub

Sub MacroB()
    MsgBox "UITG. dan is dit macroB"
End Sub

Sub MacroC()
    MsgBox "8-sp dan is dit macroC"
End Sub
 
Wim, Koos

In het begin van de macro staat een (type)fout, misschien ligt het daaraan.
blad = actveSheet moet zijn blad is ActiveSheet.
de i ontbreekt, daardoor wordt van activesheet ook niet automatisch ActiveSheet gemaakt.

2 Tips om dit soort foutjes te voorkomen:
- Type in VBA altijd alles in kleine letters m.u.v. de variabelen die je in het begin declareert.
VBA zal er zelf hoofdletters van maken waar nodig. Indien dit niet gebeurt heb je er vermoedelijk een typefout inzitten.
- Begin met option explicit. Dit dwingt je om alle variabelen te declareren. Als je een typefout maakt bij een variabele krijg je meteen een melding dat deze eerst gedeclareert moet worden.
 
Laatst bewerkt:
IK heb het nu zo opgelost en werkt goed

Dim blad As String
blad = ActiveSheet.Name

rij = ActiveCell.Row
If blad = "LIJST" Then Call Module10.Beveiligblad("LIJST", "1:1")
If blad = "uitg." Then Call Module10.Beveiligblad("uitg.", "1:2")
If blad = "8-sp" Then Call Module10.MacroC
If blad = "E-b" Then Call Module10.MacroD
If blad = "NAGEL" Then Call Module10.macroE


wim
 
Dit is beter, aangezien bij Select Case slechts 1 van de mogelijkheden wordt uitgevoerd. Indien er 1 is uitgevoerd, gaat de code verder NA de End Select:

Code:
    Dim rij As Long, blad As Worksheet 'String
    Set blad = ActiveSheet
    rij = ActiveCell.Row
    Select Case blad.Name
        Case "LIJST"
            Call Module10.Beveiligblad("LIJST", "1:1")
        Case "uitg."
            Call Module10.Beveiligblad("uitg.", "1:2")
        Case "8-sp"
            Call Module10.MacroC
        Case "E-b"
            Call Module10.MacroD
        Case "NAGEL"
            Call Module10.macroE
    End Select

Probeer ook variabelen juist te declareren. Daar had Jan hierboven je al attent op gemaakt. Het is in jouw eigen voordeel dat te doen.

Wigi
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan