If Then

Status
Niet open voor verdere reacties.

FreddyJ

Gebruiker
Lid geworden
27 jul 2014
Berichten
12
allereerst hallo allemaal,
Mijn eerste vraag hier op dit forum.
Ik ben bezig met een biljartprogramma en als leek zijnde heb ik hier al veel weken ingestoken. Nu heb ik een stukje VBA tussen mijn andere VBA opdracht toegevoegd maar deze negeert hij gewoon als ik de macro uitvoer.
Wat doet deze 51e jarige Dummy verkeerd:

Sheets("Blad2").Select
Punt_A = [N35]
Punt_B = [T35]
If Punt_B = 12 Then
Sheets("Blad14").Select
End If

If Punt_A = 12 Then
Sheets("Blad14").Select
End If

If Punt_B = 11 Then
Sheets("Blad14").Select
End If

Sheets("Blad10").Select
End Sub

De bedoeling is gewoon indien deze 2 cellen gelijk zijn aan één van deze getallen dan moet hij naar blad14 gaan.

B.v.d. Freddy
 
Beste Freddy

Zoals ik het nu lees ga je altijd terug naar "Blad10" want omdat je aan het einde van de Sub deze opdracht geeft.
Volgens mij is bedoeling dat wanneer 1 van de voorwaarden waar is je naar "Blad14" wil en anders naar "Blad10".

Als dit waar is kun je dat als volgt uitvoeren
Code:
Sheets("Blad2").Select
Punt_A = [N35]
Punt_B = [T35]

If Punt_B=12 or Punt_A=12 or Punt_B=11 then
Sheets("Blad14").Select
else: Sheets("Blad10").Select
end if

End Sub

Groet MantsjeKlaas
 
De bedoeling is gewoon indien deze 2 cellen gelijk zijn aan één van deze getallen dan moet hij naar blad14 gaan.
1. Dat doet de macro ook, maar daarna laat jij, wat de waarde van punt_A of B ook is, blad10 selecteren. Dus dát (selectie van blad10) zal altijd het eindresultaat zijn van jouw macro.
2. Punt_A en Punt_B hebben in jouw macro geen nut, die kun je achterwege laten. Je kunt volstaan met:
Code:
Sub macro1()
With Sheets("Blad2")
If WorksheetFunction.Or(.[N35] = 12, .[T35] = 11, .[T35] = 12) Then
Sheets("Blad14").Activate
End If
End With
End Sub

En als je beslist Blad10 wil activeren als aan geen van de voorwaarden is voldaan, dan kun je enkele regels aan de macro toevoegen:
Code:
Sub macro1()
With Sheets("Blad2")
If WorksheetFunction.Or(.[N35] = 12, .[T35] = 11, .[T35] = 12) Then
Sheets("Blad14").Activate
else
Sheets("Blad10").Activate
End If
End With
End Sub
 
Laatst bewerkt:
Allereerst bedankt voor jullie reacties maar beide opties werken niet. Ik kom weer op blad 10 uit ipv 14. Op blad 2 in Cel N35 staat bij mij de formule"=ALS(K17=M11;ALS(Q17=S11;11;12);MIN(9;Blad3!A10))" met als uitkomst het getal 12. Kan het daar iets mee te maken hebben?

B.v.d. Freddy
 
De 2 cellen waar het overigens over gaat is M35 en S35, foutje in mijn eerste vraag. dit heb ik in jullie antwoorden wel aangepast, dus dat is het niet.
 
If Then

Het probleem is opgelost, beide antwoorden werken wel maar ik had gisteren pagina 14 toegevoegd en vergeten op te slaan dus deze stond niet tussen mijn sheets. daar ik inmiddels 40 sheets heb is mij dit ook niet opgevallen. Ik gooi het maar op mijn leeftijd. Erg bedankt voor jullie reacties.

Freddy
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan