• 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.

Privat Sub uitschakelen wanneer een andere Privat Sub de code uitvoert

Status
Niet open voor verdere reacties.

Andre175

Gebruiker
Lid geworden
2 feb 2018
Berichten
351
goedemorgen.

In een textbox kan gezocht worden waardoor de lijst in een listbox wijzigt.
Wanneer er in de listbox geklikt wordt moeten 4 textboxen voorzien worden van de gegevens uit de listbox.
Waaronder ook de textbox waarin gezocht wordt.

Kan ik de Privat Sub TB8_Change() ook tijdelijk uitschakelen in de Privat Sub ListBAfz_Click() ?
Want zodra er in de listbox geklikt wordt veranderd de waarde van TB08 waardoor de listbox ook weer veranderd.

Code:
Private Sub ListBAfz_Click()
    
    For j = 1 To 4
        Me("TB" & j + 7).Value = ListBAfz.Column(j)

End Sub

Private Sub TB8_Change()

ListBAfz.List = [Tbl_Klanten].Value

For i = ListBAfz.ListCount - 1 To 0 Step -1
        If InStr(1, ListBAfz.List(i, 1), TB8, vbTextCompare) = 0 Then ListBAfz.RemoveItem (i)
Next

End Sub

als ik enkel TB8 laat voorzien van de gekozen gegevens werkt het wel.

Code:
Private Sub ListBAfz_Click()
    
    For j = 1 To [COLOR="#FF0000"]1[/COLOR]
        Me("TB" & j + 7).Value = ListBAfz.Column(j)

End Sub

Private Sub TB8_Change()

ListBAfz.List = [Tbl_Klanten].Value

For i = ListBAfz.ListCount - 1 To 0 Step -1
        If InStr(1, ListBAfz.List(i, 1), TB8, vbTextCompare) = 0 Then ListBAfz.RemoveItem (i)
Next

End Sub

Ik zat zelf iets te denken aan de volgende code toe te voegen aan Sub ListbAfz_Click, maar dit werkt niet.
Code:
Private Sub ListBAfz_Click()
    [COLOR="#FF0000"]aplication.TB8_Change = False[/COLOR]
    For j = 1 To 4
 
Controleer in de Sub TB8_Change of hij mag worden uitgevoerd en zoniet doen dan Exit Sub.
 
Volgens mij klopt de code niet die je hebt geplaatst.
Je vraag kan ook nog wel wat duidelijker.
Dat verandert de zaak.

Om te voorkomen dat een gebeurteniscode van een Userformcontrol wordt uitgevoerd maak ik gebruik van de Tag eigenschap.

Code:
Private Sub Tekstbox1_change()
   With TextBox2
       .Tag=" "
       .Text= TextBox1.Text
       .Tag=""
   End With
End Sub

Private Sub TextBox2_change()
   If TextBox2.Tag=" " Then Exit Sub
   ' andere code
End Sub
 
Code:
Private Sub ListBAfz_Click()
    
    For j = 2 To 4
        Me("TB" & j + 7).Value = ListBAfz.Column(j)
    Next
    TB8.Value = ListBAfz.Column(1)
End Sub

Private Sub TB8_Change()

    If TB9.Value <> "" Then Exit Sub
    
        ListBAfz.List = [Tbl_Klanten].Value
        
        For i = ListBAfz.ListCount - 1 To 0 Step -1
                If InStr(1, ListBAfz.List(i, 1), TB8, vbTextCompare) = 0 Then ListBAfz.RemoveItem (i)
        Next

End Sub

door eerst TB9 te voorzien van gegevens en bij sub een controle op TB9 uit te voeren werkt het.
Er zal vast ook wel een andere oplossing zijn....:)

SNB, bedankt voor het zetje....
 
Het gaat toch nog niet geheel naar wens.
1e keuze gaat goed.
Wanneer men toch de verkeerde keuze gemaakt heeft en opnieuw de tekstbox Firma selecteert, werkt het filteren van de listbox niet meer.
Heb al wel een vermoeden waarom.... vanavond maar ff verder puzzelen met de andere voorgestelde oplossingen.



Bekijk bijlage keuze klant.xlsb
 
Laatst bewerkt:
Opgelost. :thumb:

De mogelijkheden aangeboden door JKPieterse en SNB nog niet getest.
Heb iig weer iets geleerd en zal de andere mogelijkheden ook nog proberen, zal vast wel een keer van pas komen.


Bekijk bijlage keuze klant.xlsb
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan