Private Sub

Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
566
Geacht forum

Ik wil , als in een bepaalde cel , het getal groter is als bv. 25 , er dan automatisch iets word uitgevoerd.

Kan dit met Private Sub ?

Hoe ziet dat er dan uit?

Vriendelijke groet Jaap
 
Daar zijn weer meerdere mogelijkheden voor.
Voor een correct antwoord plaats je een voorbeeld documentje en leg je uit wat je precies en op welk moment wilt laten gebeuren.
 
Lijkt mij meer iets voor een Change Event

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$8" Then Cells(1) = IIf(Target > 25, 15, 10)
End Sub
 
VenA,

Dit werkt voor dit geval goed maar niet voor als er na "Then" een groot aantal nog moeten gebeuren

Kunt u mij een een oplossing geven dat onderstaande schrijfwijze ook gaat werken

Range("A1") = 10
Else
Range ("A1")=15
 
Het voorbeeld van VenA doet zowel de 10 als de 15.
Als er meer moet gebeuren dan pas je de If structuur toch aan?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$8" Then
    Cells(1) = IIf(Target > 25, 15, 10)
  Else
    
  End If
End Sub
 
If Then Else zijn wel ontzettend basale onderdelen van VBA als je die niet begrijpt of niet kan kan vinden op internet of in je handboek dan gaat dit waarschijnlijk een lange exercitie worden.

Code:
If Target > 25 then
iets1
iets2
Else
iets3
end if
 
VenA,

Ik ben eruit.
Vond het wat vreemd , tweemaal een IF achter elkaar.

Allebei bedankt voor het geduld en de genomen moeite

Jaap

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$8" Then
  If Target > 25 Then
  
  Range("A1") = 10
  Else
  Range("A1") = 15
  
  End If
  End If
End Sub
 
Wat je daar doet is precies wat het voorbeeld van VenA doet. Je gebruikt alleen meer code en geen inspringpunten op de juiste posities.
De extra door VenA gebruikte functie is Iif en dus niet 2x If achter elkaar.
 
Mijn inspringpunten in #7 zijn ook niet al te best:d

Als er maar 1 opdracht na Then of Else hoeft te gebeuren dan mag je het ook achter elkaar schrijven
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$8" Then
    If Target > 25 Then Range("A1") = 10 Else Range("A1") = 15
  End If
End Sub
 
Het is helemaal afhankelijk van wat precies de bedoeling is zoals ik al in #2 zei.
Deze variant is er ook nog:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$8" Then
    Select Case Target
        Case Is > 25
            Range("A1") = 10
        Case Is < 25
            Range("A1") = 15
    End Select
  End If
End Sub

En zo zijn er nog wel meer te verzinnen.
 
Zoals deze:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$G$8" Then cells(1) = 15 + 5*(Target > 25)
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan