In een rij zoeken naar een combinatie van getallen

Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
554
Geacht forum,

Ik heb in 2 aansluitende cellen een getal staan
Nu wil ik in een rij kijken of die combinatie er in voorkomt.
Zo nee, dan een mededeling "Combinatie niet te vinden"
Kunt u mij hiermede helpen.

Vriendelijke groet Jaap
 

Bijlagen

  • Vergelijken.xlsm
    29,7 KB · Weergaven: 33
Zoiets:
Code:
Sub ZoekCombinatie()
    If InStr(1, Join(Application.Transpose(Application.Transpose(Range("L22:AM22").Value)), ""), Range("F10") & Range("G10")) = 0 Then
        MsgBox "Combinatie niet te vinden", vbCritical
    End If
End Sub
 
Laatst bewerkt:
Edmoor,

heb er een paar dagen niets aan gedaan. Oogoperatie
De oplossing is helemaal goed .
Dank je wel.
Jaap
 
Graag gedaan en beterschap gewenst :)
 
Voeg nog een teken toe (wat je niet gebruikt) , nu kunnen er onbedoeld toch combinaties ontstaan (bijv 2-6-22)
bijv:
Code:
If InStr(1, Join(Application.Transpose(Application.Transpose(Range("L22:AM22").Value)), "|"), Range("F10") & "|" & Range("G10")) = 0 Then
 
Toch nog niet helemaal wat ik wilde.
In onderaan staande rij is
22 de rij

28-3-2019 de datum

daarna wil ik kijken of de combinatie van 2 getallen bv. 27 23 , in deze rij voorkomt.
Echter , er moet in de rij gekeken worden naar blokjes van 2 cijfers
1e en 2e cijfer , 3e en 4e cijfer , 5e en 6e cijfer
Als er dus gekeken moet worden of 25 en 26 in de rij voorkomt , dan komt deze dus niet voor

Is hier nog een oplossing voor??

Vriendelijke groet Jaap


22 28-03-19 28 25 26 24 27 23 1 22 2 21 3 20 4 19
 
Laatst bewerkt:
Leg eens beter uit waarom 25 en 26 niet voorkomen terwijl ze er wel staan.
 
HSV,

Ik zal het proberen!

28-25 = het eerste blokje , combinatie
26-24 = het tweede blokje , combinatie

De combinatie 25-26 komt dus niet voor.
 
Zoiets Jaap?
Code:
Sub hsv()
sv = Range("L24:AM24")
For j = 1 To UBound(sv, 2) Step 2
 If sv(1, j) & "|" & sv(1, j + 1) = Range("f10") & "|" & Range("g10") Then
   y = y + 1
   Exit For
  End If
 Next j
MsgBox ("getallen komen" & IIf(y = 1, "", " niet") & " voor")
End Sub
 
Dat werkt prima.

Ik probeer echter uit te breiden tot Msgbox met Yes/No maar dat leukt me niet.
Als de combinatie niet voorkomt dan de vraag , MsgBox "Is dit een vervangende partij?"
Indien geklikt op No MsgBox"Vul de juiste namen in!"
Indien geklikt op Yes dan geen mededeling meer en doorgaan met het programma.

Zou u me ook hiermede nog willen helpen?

Vriendelijke groet Jaap
 
Nu nog de hamvraag; wat zijn de vervangende waarden en in welke cellen.
 
Harry,
De getallen in f10 en g10 staan voor personen welke tegen elkaar gebiljart hebben. (elke persoon heeft een nummer)
Nu wil ik controleren of de getallen in f10 en g10 overeen komen met een combinatie in het biljartrooster
Er zijn 2 oorzaken dat ze niet overeen kunnen komen.

a) Iemand is ziek en een ander vervangt hem. (vervangende partij)
b) Er is een fout gemaakt bij het invullen.

Als de combinatie niet te vinden is moet er de vraag komen , "Is dit soms een vervangende wedstrijd??"
Dit is legitiem en komt vaak voor , op Yes klikken en de registratie mag doorgaan.

Echter , als het GEEN vervangende wedstrijd is , is er een fout gemaakt bij het invullen en dit komt ook nog al eens voor.
Er moet dan op NO geklikt worden en de mededeling verschijnen "U heeft een verkeerde naam genoteerd" , en programma naar End Sub
Er moeten dan in f10 en g10 nieuwe cijfers geplaatst worden . Macro moet dan opnieuw gestart worden
Hopelijk heb ik u met dit verhaal iets meer duidelijkheid kunnen geven.
Jaap
 
Laatst bewerkt:
Probeer maar eens Jaap.
Code:
Sub hsv()
Dim sv, rij, j As Long, y As Long
sv = Cells(3, 10).CurrentRegion
 rij = Application.InputBox("kies een rijnummer", , , , , , , 1)
   If rij <> False Then
    rij = Application.Match(rij, Range("J3:J38"), 0)
      If IsNumeric(rij) Then
         sv = Cells(rij + 2, 12).Resize(, 28)
      For j = 1 To UBound(sv, 2) Step 2
        If sv(1, j) & "|" & sv(1, j + 1) = Range("f10") & "|" & Range("g10") Then
           y = y + 1
           Exit For
        End If
      Next j
   If y = 0 Then If MsgBox("Is dit een vervangende wedstrijd?", vbYesNo) = vbNo Then MsgBox "U heeft een verkeerde naam genoteerd"
  End If
End If
End Sub
 
HSV,
Helemaal goed!!
Wat een mooie oplossing.
Lijkt me toch lastig om iedere keer weer te kunnen begrijpen wat de vraagsteller nou wil.
Heel erg bedankt voor het geduld wat je voor mij kon opbrengen.
Iedereen , ook Edmoor en E v R bedankt voor jullie hulp.

Probleem nu echt opgelost.

Vriendelijke Groet , Jaap
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan