Imports System.Threading
Public Class RSIform
    Dim MonThread As New Thread(AddressOf Rangeloops)
    Public Delegate Sub Callback(ByVal s As Control, ByVal v As Object)
    
     Private Sub ExecuteWork(ByVal value As String)
        Dim row As Long
        row = 1
        Dim Inspfred As Worksheet
        Dim Inspchris As Worksheet
        Dim Inspjr As Worksheet
        Dim Inspluc As Worksheet
        Dim Inspted As Worksheet
        Inspfred = Form1.xlWorkBook.Sheets("Inspfred")
        Inspchris = Form1.xlWorkBook.Sheets("Inspchris")
        Inspjr = Form1.xlWorkBook.Sheets("Inspjr")
        Inspluc = Form1.xlWorkBook.Sheets("Inspluc")
        Inspted = Form1.xlWorkBook.Sheets("Inspted")
        Dim rg1 As Range 'Range for fred
        Dim rg2 As Range 'Range for chris
        Dim rg3 As Range 'Range for jr
        Dim rg4 As Range 'Range for luc
        Dim rg5 As Range 'Range for ted
        rg1 = Inspfred.Range("C1").CurrentRegion
        rg2 = Inspchris.Range("C1").CurrentRegion
        rg3 = Inspjr.Range("C1").CurrentRegion
        rg4 = Inspluc.Range("C1").CurrentRegion
        rg5 = Inspted.Range("C1").CurrentRegion
        
         Dim s As String = "Testing Worker Method"
        For i = 1 To rg1.Rows.Count 'Range pour Inspfred
            Debug.Write(s)
            
            If rg1.Cells(i, 3).value = value Then
                TextBox_RDIMS.Invoke(New Callback(AddressOf UpdateUI), TextBox_RDIMS, rg1.Cells(i, 19).value)
                TextBox_RSIG.Invoke(New Callback(AddressOf UpdateUI), TextBox_RSIG, rg1.Cells(i, 18).value)
                TextBox_LocationNAME.Invoke(New Callback(AddressOf UpdateUI), TextBox_LocationNAME, rg1.Cells(i, 4).value)
                TextBox_Type.Invoke(New Callback(AddressOf UpdateUI), TextBox_Type, rg1.Cells(i, 6).value)
                TextBox_ABC.Invoke(New Callback(AddressOf UpdateUI), TextBox_ABC, rg1.Cells(i, 7).value)
                TextBox_Railway.Invoke(New Callback(AddressOf UpdateUI), TextBox_Railway, rg1.Cells(i, 5).value)
                TextBox_issue.Invoke(New Callback(AddressOf UpdateUI), TextBox_issue, rg1.Cells(i, 8).value)
                TextBox_InspFROM.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspFROM, rg1.Cells(i, 9).value)
                TextBox_InspTO.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspTO, rg1.Cells(i, 10).value)
                TextBox_Total_Insp.Invoke(New Callback(AddressOf UpdateUI), TextBox_Total_Insp, rg1.Cells(i, 11).value)
                TextBox_Date.Invoke(New Callback(AddressOf UpdateUI), TextBox_Date, rg1.Cells(i, 12).value)
                TextBox_Year.Invoke(New Callback(AddressOf UpdateUI), TextBox_Year, rg1.Cells(i, 2).value)
                TextBox_Lead_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_Lead_RSI, rg1.Cells(i, 15).value)
                TextBox_2nd_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_2nd_RSI, rg1.Cells(i, 16).value)
                TextBox_Letterofconcern.Invoke(New Callback(AddressOf UpdateUI), TextBox_Letterofconcern, rg1.Cells(i, 21).value)
                TextBox_Prenotice.Invoke(New Callback(AddressOf UpdateUI), TextBox_Prenotice, rg1.Cells(i, 23).value)
                TextBox_notice_order.Invoke(New Callback(AddressOf UpdateUI), TextBox_notice_order, rg1.Cells(i, 26).value)
                TextBox_NAIAT.Invoke(New Callback(AddressOf UpdateUI), TextBox_NAIAT, rg1.Cells(i, 28).value)
                TextBox_AMP.Invoke(New Callback(AddressOf UpdateUI), TextBox_AMP, rg1.Cells(i, 29).value)
                TextBox_letterofwarning.Invoke(New Callback(AddressOf UpdateUI), TextBox_letterofwarning, rg1.Cells(i, 31).value)
                TextBox_Comments.Invoke(New Callback(AddressOf UpdateUI), TextBox_Comments, rg1.Cells(i, 32).value)
                TextBox_insp_type.Invoke(New Callback(AddressOf UpdateUI), TextBox_insp_type, rg1.Cells(i, 17).value)
                row = row + 1
                Exit For
             End If
        Next
        
         For i = 1 To rg2.Rows.Count 'Range pour Inspchris
            If rg2.Cells(i, 3).value = value Then
                TextBox_RDIMS.Invoke(New Callback(AddressOf UpdateUI), TextBox_RDIMS, rg2.Cells(i, 19).value)
                TextBox_RSIG.Invoke(New Callback(AddressOf UpdateUI), TextBox_RSIG, rg2.Cells(i, 18).value)
                TextBox_LocationNAME.Invoke(New Callback(AddressOf UpdateUI), TextBox_LocationNAME, rg2.Cells(i, 4).value)
                TextBox_Type.Invoke(New Callback(AddressOf UpdateUI), TextBox_Type, rg2.Cells(i, 6).value)
                TextBox_ABC.Invoke(New Callback(AddressOf UpdateUI), TextBox_ABC, rg2.Cells(i, 7).value)
                TextBox_Railway.Invoke(New Callback(AddressOf UpdateUI), TextBox_Railway, rg2.Cells(i, 5).value)
                TextBox_issue.Invoke(New Callback(AddressOf UpdateUI), TextBox_issue, rg2.Cells(i, 8).value)
                TextBox_InspFROM.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspFROM, rg2.Cells(i, 9).value)
                TextBox_InspTO.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspTO, rg2.Cells(i, 10).value)
                TextBox_Total_Insp.Invoke(New Callback(AddressOf UpdateUI), TextBox_Total_Insp, rg2.Cells(i, 11).value)
                TextBox_Date.Invoke(New Callback(AddressOf UpdateUI), TextBox_Date, rg2.Cells(i, 12).value)
                TextBox_Year.Invoke(New Callback(AddressOf UpdateUI), TextBox_Year, rg2.Cells(i, 2).value)
                TextBox_Lead_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_Lead_RSI, rg2.Cells(i, 15).value)
                TextBox_2nd_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_2nd_RSI, rg2.Cells(i, 16).value)
                TextBox_Letterofconcern.Invoke(New Callback(AddressOf UpdateUI), TextBox_Letterofconcern, rg2.Cells(i, 21).value)
                TextBox_Prenotice.Invoke(New Callback(AddressOf UpdateUI), TextBox_Prenotice, rg2.Cells(i, 23).value)
                TextBox_notice_order.Invoke(New Callback(AddressOf UpdateUI), TextBox_notice_order, rg2.Cells(i, 26).value)
                TextBox_NAIAT.Invoke(New Callback(AddressOf UpdateUI), TextBox_NAIAT, rg2.Cells(i, 28).value)
                TextBox_AMP.Invoke(New Callback(AddressOf UpdateUI), TextBox_AMP, rg2.Cells(i, 29).value)
                TextBox_letterofwarning.Invoke(New Callback(AddressOf UpdateUI), TextBox_letterofwarning, rg2.Cells(i, 31).value)
                TextBox_Comments.Invoke(New Callback(AddressOf UpdateUI), TextBox_Comments, rg2.Cells(i, 32).value)
                TextBox_insp_type.Invoke(New Callback(AddressOf UpdateUI), TextBox_insp_type, rg2.Cells(i, 17).value)
                row = row + 1
                Exit For
            End If
            
        Next
         For i = 1 To rg3.Rows.Count 'Range pour Inspjr
            If rg3.Cells(i, 3).value = value Then
                TextBox_RDIMS.Invoke(New Callback(AddressOf UpdateUI), TextBox_RDIMS, rg3.Cells(i, 19).value)
                TextBox_RSIG.Invoke(New Callback(AddressOf UpdateUI), TextBox_RSIG, rg3.Cells(i, 18).value)
                TextBox_LocationNAME.Invoke(New Callback(AddressOf UpdateUI), TextBox_LocationNAME, rg3.Cells(i, 4).value)
                TextBox_Type.Invoke(New Callback(AddressOf UpdateUI), TextBox_Type, rg3.Cells(i, 6).value)
                TextBox_ABC.Invoke(New Callback(AddressOf UpdateUI), TextBox_ABC, rg3.Cells(i, 7).value)
                TextBox_Railway.Invoke(New Callback(AddressOf UpdateUI), TextBox_Railway, rg3.Cells(i, 5).value)
                TextBox_issue.Invoke(New Callback(AddressOf UpdateUI), TextBox_issue, rg3.Cells(i, 8).value)
                TextBox_InspFROM.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspFROM, rg3.Cells(i, 9).value)
                TextBox_InspTO.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspTO, rg3.Cells(i, 10).value)
                TextBox_Total_Insp.Invoke(New Callback(AddressOf UpdateUI), TextBox_Total_Insp, rg3.Cells(i, 11).value)
                TextBox_Date.Invoke(New Callback(AddressOf UpdateUI), TextBox_Date, rg3.Cells(i, 12).value)
                TextBox_Year.Invoke(New Callback(AddressOf UpdateUI), TextBox_Year, rg3.Cells(i, 2).value)
                TextBox_Lead_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_Lead_RSI, rg3.Cells(i, 15).value)
                TextBox_2nd_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_2nd_RSI, rg3.Cells(i, 16).value)
                TextBox_Letterofconcern.Invoke(New Callback(AddressOf UpdateUI), TextBox_Letterofconcern, rg3.Cells(i, 21).value)
                TextBox_Prenotice.Invoke(New Callback(AddressOf UpdateUI), TextBox_Prenotice, rg3.Cells(i, 23).value)
                TextBox_notice_order.Invoke(New Callback(AddressOf UpdateUI), TextBox_notice_order, rg3.Cells(i, 26).value)
                TextBox_NAIAT.Invoke(New Callback(AddressOf UpdateUI), TextBox_NAIAT, rg3.Cells(i, 28).value)
                TextBox_AMP.Invoke(New Callback(AddressOf UpdateUI), TextBox_AMP, rg3.Cells(i, 29).value)
                TextBox_letterofwarning.Invoke(New Callback(AddressOf UpdateUI), TextBox_letterofwarning, rg3.Cells(i, 31).value)
                TextBox_Comments.Invoke(New Callback(AddressOf UpdateUI), TextBox_Comments, rg3.Cells(i, 32).value)
                TextBox_insp_type.Invoke(New Callback(AddressOf UpdateUI), TextBox_insp_type, rg3.Cells(i, 17).value)
                row = row + 1
                Exit For
            End If
            
        Next
         For i = 1 To rg4.Rows.Count 'Range pour Inspluc
            If rg4.Cells(i, 3).value = value Then
                TextBox_RDIMS.Invoke(New Callback(AddressOf UpdateUI), TextBox_RDIMS, rg4.Cells(i, 19).value)
                TextBox_RSIG.Invoke(New Callback(AddressOf UpdateUI), TextBox_RSIG, rg4.Cells(i, 18).value)
                TextBox_LocationNAME.Invoke(New Callback(AddressOf UpdateUI), TextBox_LocationNAME, rg4.Cells(i, 4).value)
                TextBox_Type.Invoke(New Callback(AddressOf UpdateUI), TextBox_Type, rg4.Cells(i, 6).value)
                TextBox_ABC.Invoke(New Callback(AddressOf UpdateUI), TextBox_ABC, rg4.Cells(i, 7).value)
                TextBox_Railway.Invoke(New Callback(AddressOf UpdateUI), TextBox_Railway, rg4.Cells(i, 5).value)
                TextBox_issue.Invoke(New Callback(AddressOf UpdateUI), TextBox_issue, rg4.Cells(i, 8).value)
                TextBox_InspFROM.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspFROM, rg4.Cells(i, 9).value)
                TextBox_InspTO.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspTO, rg4.Cells(i, 10).value)
                TextBox_Total_Insp.Invoke(New Callback(AddressOf UpdateUI), TextBox_Total_Insp, rg4.Cells(i, 11).value)
                TextBox_Date.Invoke(New Callback(AddressOf UpdateUI), TextBox_Date, rg4.Cells(i, 12).value)
                TextBox_Year.Invoke(New Callback(AddressOf UpdateUI), TextBox_Year, rg4.Cells(i, 2).value)
                TextBox_Lead_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_Lead_RSI, rg4.Cells(i, 15).value)
                TextBox_2nd_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_2nd_RSI, rg4.Cells(i, 16).value)
                TextBox_Letterofconcern.Invoke(New Callback(AddressOf UpdateUI), TextBox_Letterofconcern, rg4.Cells(i, 21).value)
                TextBox_Prenotice.Invoke(New Callback(AddressOf UpdateUI), TextBox_Prenotice, rg4.Cells(i, 23).value)
                TextBox_notice_order.Invoke(New Callback(AddressOf UpdateUI), TextBox_notice_order, rg4.Cells(i, 26).value)
                TextBox_NAIAT.Invoke(New Callback(AddressOf UpdateUI), TextBox_NAIAT, rg4.Cells(i, 28).value)
                TextBox_AMP.Invoke(New Callback(AddressOf UpdateUI), TextBox_AMP, rg4.Cells(i, 29).value)
                TextBox_letterofwarning.Invoke(New Callback(AddressOf UpdateUI), TextBox_letterofwarning, rg4.Cells(i, 31).value)
                TextBox_Comments.Invoke(New Callback(AddressOf UpdateUI), TextBox_Comments, rg4.Cells(i, 32).value)
                TextBox_insp_type.Invoke(New Callback(AddressOf UpdateUI), TextBox_insp_type, rg4.Cells(i, 17).value)
                row = row + 1
                Exit For
            End If
            
        Next
        For i = 1 To rg5.Rows.Count 'Range pour Inspted
            If rg5.Cells(i, 3).value = value Then
                TextBox_RDIMS.Invoke(New Callback(AddressOf UpdateUI), TextBox_RDIMS, rg5.Cells(i, 19).value)
                TextBox_RSIG.Invoke(New Callback(AddressOf UpdateUI), TextBox_RSIG, rg5.Cells(i, 18).value)
                TextBox_LocationNAME.Invoke(New Callback(AddressOf UpdateUI), TextBox_LocationNAME, rg5.Cells(i, 4).value)
                TextBox_Type.Invoke(New Callback(AddressOf UpdateUI), TextBox_Type, rg5.Cells(i, 6).value)
                TextBox_ABC.Invoke(New Callback(AddressOf UpdateUI), TextBox_ABC, rg5.Cells(i, 7).value)
                TextBox_Railway.Invoke(New Callback(AddressOf UpdateUI), TextBox_Railway, rg5.Cells(i, 5).value)
                TextBox_issue.Invoke(New Callback(AddressOf UpdateUI), TextBox_issue, rg5.Cells(i, 8).value)
                TextBox_InspFROM.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspFROM, rg5.Cells(i, 9).value)
                TextBox_InspTO.Invoke(New Callback(AddressOf UpdateUI), TextBox_InspTO, rg5.Cells(i, 10).value)
                TextBox_Total_Insp.Invoke(New Callback(AddressOf UpdateUI), TextBox_Total_Insp, rg5.Cells(i, 11).value)
                TextBox_Date.Invoke(New Callback(AddressOf UpdateUI), TextBox_Date, rg5.Cells(i, 12).value)
                TextBox_Year.Invoke(New Callback(AddressOf UpdateUI), TextBox_Year, rg5.Cells(i, 2).value)
                TextBox_Lead_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_Lead_RSI, rg5.Cells(i, 15).value)
                TextBox_2nd_RSI.Invoke(New Callback(AddressOf UpdateUI), TextBox_2nd_RSI, rg5.Cells(i, 16).value)
                TextBox_Letterofconcern.Invoke(New Callback(AddressOf UpdateUI), TextBox_Letterofconcern, rg5.Cells(i, 21).value)
                TextBox_Prenotice.Invoke(New Callback(AddressOf UpdateUI), TextBox_Prenotice, rg5.Cells(i, 23).value)
                TextBox_notice_order.Invoke(New Callback(AddressOf UpdateUI), TextBox_notice_order, rg5.Cells(i, 26).value)
                TextBox_NAIAT.Invoke(New Callback(AddressOf UpdateUI), TextBox_NAIAT, rg5.Cells(i, 28).value)
                TextBox_AMP.Invoke(New Callback(AddressOf UpdateUI), TextBox_AMP, rg5.Cells(i, 29).value)
                TextBox_letterofwarning.Invoke(New Callback(AddressOf UpdateUI), TextBox_letterofwarning, rg5.Cells(i, 31).value)
                TextBox_Comments.Invoke(New Callback(AddressOf UpdateUI), TextBox_Comments, rg5.Cells(i, 32).value)
                TextBox_insp_type.Invoke(New Callback(AddressOf UpdateUI), TextBox_insp_type, rg5.Cells(i, 17).value)
                row = row + 1
                Exit For
            End If
        Next
    End Sub
Private Sub Rangeloops()
Clearalltextbox()   'Make sure all fields are empty while switching form child to child
TextBox_selectednodes.Text = TreeView_Insp_Records.SelectedNode.Text
Ping_network()
        
'All my loops that you've seen before
end sub
         Private Sub Clearalltextbox()
        txtNodeTextSearch.Text = ""
        TextBox_RDIMS.Text = ""
        TextBox_RSIG.Text = ""
        TextBox_LocationNAME.Text = ""
        TextBox_Railway.Text = ""
        TextBox_Type.Text = ""
        TextBox_ABC.Text = ""
        TextBox_issue.Text = ""
        TextBox_InspFROM.Text = ""
        TextBox_InspTO.Text = ""
        TextBox_Total_Insp.Text = ""
        TextBox_Date.Text = ""
        TextBox_Year.Text = ""
        TextBox_Lead_RSI.Text = ""
        TextBox_2nd_RSI.Text = ""
        TextBox_Letterofconcern.Text = ""
        TextBox_Prenotice.Text = ""
        TextBox_notice_order.Text = ""
        TextBox_AMP.Text = ""
        TextBox_NAIAT.Text = ""
        TextBox_letterofwarning.Text = ""
        TextBox_Comments.Text = ""
        TextBox_selectednodes.Text = ""
        TextBox_insp_type.Text = ""
    End Sub