• 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 alleen uitvoeren als cel B5 groter dan 0 is

Status
Niet open voor verdere reacties.

oceanrace

Gebruiker
Lid geworden
14 mei 2008
Berichten
198
Hallo,
De volgende code werkt goed, echter als cel B5 kleiner dan 2 is dan zou hij niet mogen uitvoeren.
Dus als cel B5 kleiner dan 2 is moet de macro stoppen (met een Msgbox dat er niets te zoeken valt). Ik krijg nu namelijk een foutmelding in het script als er niets valt door te trekken.
N.b.: Cel B5 bevat een wel matrixformule, ik weet niet of dat iets uitmaakt.

Code:
Sub Matrixdoortrekken()
Variabele = Cells(5, 3).Value
DezeRange = "A7:AZ" & Variabele
Application.DisplayStatusBar = True
Application.StatusBar = "Even geduld a.u.b.: Bezig met zoeken...."
Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    Range("A7:AZ7").AutoFill Destination:=Range(DezeRange), Type:=xlFillDefault
    Range("N4").Select
    ActiveSheet.Protect AllowFiltering:=True
Application.ScreenUpdating = True
Application.StatusBar = "Gereed!"
End Sub
 
Laatst bewerkt:
Ik heb inmiddels zelf al een oplossing gevonden...

Code:
Sub Matrixdoortrekken()
    If Range("B5").Value < 2 Then
       Keuze = MsgBox("Geen objecten gevonden...", vbExclamation + vbOKOnly, "Zoeken naar objecten uit dezelfde groep")
     Select Case Keuze
     Case vbOK
     End Select
 Exit Sub
 Else
Variabele = Cells(5, 3).Value
DezeRange = "A7:AZ" & Variabele
Application.DisplayStatusBar = True
Application.StatusBar = "Even geduld a.u.b.: Bezig met zoeken...."
Application.ScreenUpdating = False
    ActiveSheet.Unprotect
    Range("A7:AZ7").AutoFill Destination:=Range(DezeRange), Type:=xlFillDefault
    Range("N4").Select
    ActiveSheet.Protect AllowFiltering:=True
Application.ScreenUpdating = True
Application.StatusBar = "Gereed!"
 End If
End Sub
 
Je hoeft niet die ganse constructie op te zetten, deze volstaat
Code:
Sub Matrixdoortrekken()
    [COLOR="red"]If Range("B5").Value < 2 Then MsgBox "Geen objecten gevonden...", vbExclamation + vbOKOnly, _
            "Zoeken naar objecten uit dezelfde groep": Exit Sub[/COLOR]    
    variabele = Cells(5, 3).Value
    DezeRange = "A7:AZ" & variabele
    With Application
        .DisplayStatusBar = True
        .StatusBar = "Even geduld a.u.b.: Bezig met zoeken...."
        .ScreenUpdating = False
    ActiveSheet.Unprotect
    Range("A7:AZ7").AutoFill Destination:=Range(DezeRange), Type:=xlFillDefault
    Range("N4").Select
    ActiveSheet.Protect AllowFiltering:=True
        .ScreenUpdating = True
        .StatusBar = "Gereed!"
    End With
End Sub

Zet je de vraag dan nog even op opgelost
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan