• 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 in macro laten uitvoeren

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
beste

in macro "Inzenderslijst_wijzigen" zou macro "Inzenderslijst_vernieuwen" uitgevoerd moeten worden
reden: met macro "Inzenderslijst_wijzigen" is het resultaat niet goed, als daarna via ontwikkelaars macro's macro "Inzenderslijst_vernieuwen" word uitgevoerd is het resultaat wel goed.

ik heb geprobeerd met in macro "Inzenderslijst_wijzigen" met het toevoegen van
Application.Run "Inzenderslijst_vernieuwen"
maar dat werkt niet, "Inzenderslijst_vernieuwen" wordt dan niet uitgevoerd.

wat moet er aangepast worden in de code?

Code:
Sub Inzenderslijst_wijzigen()
'
' Inzenderslijst_wijzigen Macro
'

'
Application.ScreenUpdating = False
ActiveSheet.Unprotect
    Columns("BO:BT").Select
    Selection.EntireColumn.Hidden = False
    VALIDATIE = Range("VALIDATIE").Value
    ActiveSheet.Range("VALIDATIE").AutoFilter Field:=71, Criteria1:=Array( _
        "0", "1", "4"), Operator:=xlFilterValues
    Columns("BP:BS").Select
    Selection.EntireColumn.Hidden = True
    Range("BO9").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingColumns:=True, AllowFormattingRows:=True
    Application.ScreenUpdating = True
    Application.Run "Inzenderslijst_vernieuwen"
End Sub


Sub Inzenderslijst_vernieuwen()
'
' Inzenderslijst_vernieuwen Macro
'

'
Rem Application.ScreenUpdating = False
ActiveSheet.Unprotect
    Range("TITTEL").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Columns("BO:BT").Select
    Selection.EntireColumn.Hidden = False
    VALIDATIE = Range("VALIDATIE").Value
    ActiveSheet.Range("VALIDATIE").AutoFilter Field:=71, Criteria1:=Array( _
        "0", "1", "4"), Operator:=xlFilterValues
    Columns("BP:BS").Select
    Selection.EntireColumn.Hidden = True
    Range("BO9").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingColumns:=True, AllowFormattingRows:=True
Application.ScreenUpdating = True
End Sub
 
Een heleboel. Het gebruik van Select en Selection is overbodig. Is al vaker op gewezen. Een range in een cel zetten en daar naar verwijzen lijkt mij overbodig. Met het beveiligen ga je pas aan de gang als het project klaar is. Het lijkt mij dat het prima in 1 procedure kan.
 
dat werkt niet
heb de code aangepast, als de macro "Inzenderslijst_vernieuwen" zou uitgevoerd door macro "Inzenderslijst_wijzigen" moest er een cel rood gekleurd zijn.
zie plaatje



Code:
Sub Inzenderslijst_wijzigen()
'
' Inzenderslijst_wijzigen Macro
'

'
Application.ScreenUpdating = False
ActiveSheet.Unprotect
    Columns("BO:BT").Select
    Selection.EntireColumn.Hidden = False
    VALIDATIE = Range("VALIDATIE").Value
    ActiveSheet.Range("VALIDATIE").AutoFilter Field:=71, Criteria1:=Array( _
        "0", "1", "4"), Operator:=xlFilterValues
    Columns("BP:BS").Select
    Selection.EntireColumn.Hidden = True
    Range("BO9").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingColumns:=True, AllowFormattingRows:=True
    Application.ScreenUpdating = True
    Inzenderslijst_vernieuwen
End Sub


Sub Inzenderslijst_vernieuwen()
'
' Inzenderslijst_vernieuwen Macro
'

'
Rem Application.ScreenUpdating = False
ActiveSheet.Unprotect
    Range("TITTEL").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Columns("BO:BT").Select
    Selection.EntireColumn.Hidden = False
    VALIDATIE = Range("VALIDATIE").Value
    ActiveSheet.Range("VALIDATIE").AutoFilter Field:=71, Criteria1:=Array( _
        "0", "1", "4"), Operator:=xlFilterValues
    Columns("BP:BS").Select
    Selection.EntireColumn.Hidden = True
    Range("BO9").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        False, AllowFormattingColumns:=True, AllowFormattingRows:=True
Application.ScreenUpdating = True
End Sub
 

Bijlagen

  • plaatje.jpg
    plaatje.jpg
    80,1 KB · Weergaven: 67
En ik geen Excel document. Doe eerst eens iets met de aangedragen suggesties ipv voor ieder wisse wasje een nieuwe vraag aan te maken.

[Edit] zoals ook door @edmoor net aangegeven.
 
Laatst bewerkt:
Ik kan niet meer volgen,

Om te kunnen testen moet bestand SUVERMO_1.zip uitgepakt worden.
Als U het bestand “Inzenderslijst maken SUVERMO 1.xls” opent en dubbelklikt op de STARTKNOP=C17 wordt het bestand “D_Inzenderslijst.xls” gemaakt. Selecteer voor BO2 t.e.m. BO7 NEE, BO8 laat men op JA staan. Het resultaat is dan volgens plaatje “Dit is het resultaat.jpg” maar het resultaat zou volgens plaatje “Dit zou het resultaat moeten zijn.jpg” moeten zijn
Als U het bestand “D_Inzenderslijst.xls” daarna bewaard en sluit. Het bestand “D_Inzenderslijst.xls” terug opent, en bekijkt wat er wordt weergegeven voordat men op de knop “inhoud inschakelen” heeft gedrukt, dan is dit nog volgens plaatje “Dit is het resultaat.jpg”. Van zodra er op de knop “inhoud inschakelen” word gedrukt, is de weergave goed, namelijk volgens plaatje “Dit zou het resultaat moeten zijn.jpg”.
Kan er iemand voor een oplossing zorgen?
 
Laatst bewerkt door een moderator:
Dat heb ik in je andere draadje, waar je niet meer op hebt gereageerd, al laten zien.

Het niet meer reageren en het niet opvolgen van instructies motiveerd helpers niet echt om er nog mee door te gaan.
 
Laatst bewerkt:
sorry edmoor maar mijn 65 jariggeheugen laat mij in de steek, geef eens een hint
 
Kijk eens naar de link in #6.
 
sorry, maar mag ik dit dan verwijderen

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("BO2:BO9")) Is Nothing Then
Inzenderslijst_wijzigen
End If
End Sub
 
Ik begrijp je niet meer hoor.
Dat is de code die je achter het werkblad moet plaatsen om ervoor te zorgen dat de macro Inzenderslijst_wijzigen wordt gestart als je in kolom BO een waarde van Ja naar Nee wijzigt of andersom.
 
ik zal morgen eens proberen of ik eruit kom.
ga nu naar mijn bedje, eerst nog even kijken nog even naar FREEK op VPRO
 
ben sinds 5 uur deze morgen aan het proberen, maar krijg het niet opgelost
zou u aub dat voor mij eens willen doen, want mijn kennis van VBA is minimaal
hartelijk bedankt bij voorbaat
 
Plaats je document zoals deze nu is, dus met de functie die ik liet zien.
 
na een nachtje slapen heb ik het gevonden
dit stond in blad 3, 2 x Private Sub Worksheet
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Range("BREEDTE_KOLOM").EntireColumn.ColumnWidth = Me.Range("KOLOMBREEDTE").Value
    End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("TITTEL")) Is Nothing Then
  Tittel_wijzigen
  Cancel = True
  End If
  If Not Intersect(Target, Range("BO2:BO9")) Is Nothing Then
        Inzenderslijst_wijzigen
    End If
heb het vervangen door 3 x Private Sub Worksheet
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Range("BREEDTE_KOLOM").EntireColumn.ColumnWidth = Me.Range("KOLOMBREEDTE").Value
    End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("TITTEL")) Is Nothing Then
  Tittel_wijzigen
  Cancel = True
  End If
  End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("BO2:BO9")) Is Nothing Then
        Inzenderslijst_wijzigen
    End If
End SubEnd Sub

nu werkt het prima
 
Bestanden TS verwijderd i.v.m. privacy
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan