comment ne pas appeler une fonction "private function" dans un de mes sub main.
J'ai une macro qui fait du tri et de la mise en page, j'aimerais qu'elle continue la mise ne page et arrete le tri, mais qu'elle arrete la mise en page, or les deux fonctions qui font le tri sont des private function.
	
	
	
	
	
		
	
		
			
		
		
	
				
			J'ai une macro qui fait du tri et de la mise en page, j'aimerais qu'elle continue la mise ne page et arrete le tri, mais qu'elle arrete la mise en page, or les deux fonctions qui font le tri sont des private function.
		Code:
	
	
	'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'~~~~~~~~~~~~~Macro to process GCC Violation Report~~~~~~~~~~~~~~
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'***********Violations without Justification for specified Head of Credit**********
Sub Main1()
'***Variables***
Dim GCCReport As Workbook                               'Workbook of report from GCC
Dim row_count As Integer                                'no of rows written
'Delete data written in last import
Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets("Start").Range("D32").ClearContents
Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets("Sheet2").Range("B4:Q23000").Delete
'opens dialog box to choose report
Filename = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls), *.xls", Title:="Please select a file")
    If Filename = False Then
        ' They pressed Cancel
        MsgBox "Stopping because you did not select a file"
        Exit Sub
    Else
        Workbooks.Open (Filename)
        Set GCCReport = ActiveWorkbook
        
        w_rows = DataExtract
        
 
        GCCReport.Close
        
        End If
MsgBox "Data Import has finished"
Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(2).Activate
row_count = RowCount
    
    With Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(2)
        'Set Column Width
        .Columns("A").ColumnWidth = 0
        .Columns("B").ColumnWidth = 10
        .Columns("C").ColumnWidth = 10
        .Columns("D").ColumnWidth = 15
        .Columns("E").ColumnWidth = 15
        .Columns("F").ColumnWidth = 15
        .Columns("G").ColumnWidth = 25
        .Columns("H").ColumnWidth = 15
        .Columns("I").ColumnWidth = 2
        .Columns("J:L").ColumnWidth = 4
        .Columns("J:L").HorizontalAlignment = xlCenter
        .Columns("M").ColumnWidth = 4
        .Columns("N").ColumnWidth = 25
        .Columns("O").ColumnWidth = 20
        .Columns("P").ColumnWidth = 7
        
        
        
        'Set Row Height
        .Rows("4:10000").AutoFit
        
        'Set Borders
        .Range(Worksheets("Sheet2").Cells(4, 1), Worksheets("Sheet2").Cells(row_count, 17)).Borders.Weight = xlHairline
        .Range(Worksheets("Sheet2").Cells(4, 1), Worksheets("Sheet2").Cells(row_count, 17)).Borders.Color = RGB(0, 0, 0)
        .Range(Worksheets("Sheet2").Cells(4, 1), Worksheets("Sheet2").Cells(row_count, 17)).Borders.LineStyle = xlContinuous
'        .Range(Worksheets("Sheet2").Cells(4, 1), Worksheets("Sheet2").Cells(row_count, 17)).Font.FontStyle = "Tahoma"
'        .Range(Worksheets("Sheet2").Cells(4, 1), Worksheets("Sheet2").Cells(row_count, 17)).Font.Size = 10
        .Range("A3:Q3").Borders.LineStyle = xlContinuous
        .Range("A3:Q3").Borders.Weight = xlHairline
        .Range("A3:Q3").Borders.Color = RGB(0, 0, 0)
        
        End With
        
Call ColorUPC(4, row_count, 17, 5)
Call SeperateUPC(4, row_count, 17, 5, False)
Call DeleteJust(False, row_count)
Call PrintSetup(65, 2)
End Sub
'~~~~~Function to scan (active) Worksheet~~~~~
'returns row no in which entry was found if succesful, 0 else
'~~~~~Arguments~~~~~
'SearchValue            the value you are looking for
'row_start              row in which scan starts
'wb_to_scan             Workbook which is scanned
'row_max                maximal no of rows to be scanned
Private Function Scan(SearchValue, row_start As Integer, Optional wb_to_scan As Workbook, Optional row_max As Integer = 500) As Integer
            'Column variable
            Dim j As Integer
            
            'sets column to search
            '4 means Head for the credit
            j = 4
           
            
                'Loop Counter
                Dim i As Integer
                i = row_start
                
                'Loop which scans the rows
                Do
                Dim Search1 As String
                Search1 = SearchValue
                Test1 = Worksheets("Sheet1").Cells(i, j).Value2
                'MsgBox Test1 & "   " & VarType(Test1) & "   " & VarType(SearchValue)
                
                If Test1 = Search1 Then
                
            
                Scan = i
                Exit Do
                End If
                
                If row_max < i Then
                Scan = 0
                Exit Do
                End If
                
                i = i + 1
                Loop
                
End Function
'~~~~~Function to Extract data~~~~~
'returns nothing
'Uses scan and write function defined above to write data to Risky Names which matches reference Data from GCC Report
'~~~~~Arguments~~~~~
'None
Private Function DataExtract(Optional write_sheet As Integer = 2, Optional wb_to_search As Workbook) As Integer
Dim start_scan As Integer           'start_scan specifies in which row to start search
Dim row_found As Integer            'no of row in which data was found
Dim n As Integer                    'Set column of reference data
n = 1                               'default is 1, means BB ID
Dim m As Integer                    'Loop Counter
m = 2                               'row from which reference data comparison is started
Dim writecount As Integer           'Counts no of row written to "Risky Names"
writecount = 4                      'row to start writing
Dim colorcode As Boolean            'variable which helps define background color to differentiate UPCs
    '*****Set reference value which is looked up in GCC Report I*****
    'This Loop searches for rows with choosen Head of Credit Name
    search_for = Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets("Start").Range("D9").Value2
    
    start_scan = 4
                
    'Actual data search is done in this loop
    Do
                
            'Scan Worksheet for data to retrieve
            row_found = Scan(search_for, start_scan, wb_to_search)
            
            'Gebe Zeile an in welcher Daten gefunden wurden
            If row_found <> 0 Then
            
                'MsgBox "Entry is in row  " & row_found
                Call Write_Data(row_found, writecount, write_sheet)
            
                Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets("Start").Range("D32").Value = "Succesful"
            
                start_scan = row_found + 1
                writecount = writecount + 1
            
            Else
                If start_scan = 6 Then
                Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets("Start").Range("D32").Value = "Not Succesful"
                'MsgBox "Value not found in file"
                End If
            End If
            
            
                
    Loop While (row_found <> 0)
    
    '*****Set reference value which is looked up in GCC Report II*****
    'This loop extracts rows which have no data for col Head of Credit but data for col Issuer
    start_scan = 4
    'Actual data search is done in this loop
    Do
            If Worksheets("Sheet1").Cells(start_scan, 3).Value = " " And Worksheets("Sheet1").Cells(start_scan, 6).Value <> 0 And Worksheets("Sheet1").Cells(start_scan, 7).Value <> "SENSEC_OTH" Then
            
                Call Write_Data(start_scan, writecount)
                writecount = writecount + 1
            
            End If
            
    start_scan = start_scan + 1
    Loop While (start_scan < 500)
DataExtract = writecount
End Function
'~~~~~Function to Write data~~~~~
'writes entire row of specified cell to file "Risky Names"returns String
'Uses scan and write function defined above to write data to Risky Names which matches reference Data from GCC Report
'~~~~~Arguments~~~~~
'copy_row                     specifies row to copy
'write_row                    specifies row into which is written
Private Sub Write_Data(copy_row As Integer, write_row As Integer, Optional sheet As Integer = 2, Optional set_color As Boolean)
'Copy from GCC Report and write data to Risky Names
Worksheets("Sheet1").Cells(copy_row, 1).EntireRow.Copy (Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(sheet).Cells(write_row, 1))
'With Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(2).Range(Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(2).Cells(write_row, 1), Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(2).Cells(write_row, 17))
'    .Borders.LineStyle = xlContinuous
'    .Borders.Weight = xlHairline
'    .Borders.Color = RGB(0, 0, 0)
'    .Font.FontStyle = "Tahoma"
'    .Font.Size = 10
'End With
'Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets(2).Cells(write_row, 8).Font.Bold = True
        
If set_color = False Then
    'Workbooks("GCC Violation Report Filter MacroTEST.xls").Worksheets("Sheet1").Range(Cells(write_row, 1), Cells(write_row, 36)).Interior.color = RGB(92, 172, 238)
End If
End Sub