Trying to set a function as oldrows count before the delete row command is activated

Eric Penfold

Active Member
Joined
Nov 19, 2021
Messages
431
Office Version
  1. 365
Platform
  1. Windows
  2. Mobile
Please help to make the function count the oldrows

VBA Code:
Public Sub Delete_Or_Insert_Rows()

        Dim NewRowCount As Long
        Dim OldRowCount   As Long
        Dim LRow                As Long
        Dim rng                   As Range
        Dim ws                    As Worksheet
    
           Set ws = ActiveSheet
           LRow = Range("A1").End(xlDown).Row
           Set rng = ws.Range("A1:A" & LRow)
           OldRowCount = OldrowQty

        NewRowCount = rng.Rows.Count
        If OldRowCount > NewRowCount Then
         Exit Sub
         OldRowCount = NewRowCount
         ElseIf OldRowCount < NewRowCount Then
         Exit Sub
         ElseIf OldRowCount = NewRowCount Then
         Call Group_OrderNos
    End If
    End If
    
End Sub

Public Function OldrowQty(rng As Range) As String

        Dim OldRowCount As Long
        Dim LRow As Long
        Dim ws As Worksheet

           Set ws = ActiveSheet
           LRow = Range("A1").End(xlDown).Row
           Set rng = ws.Range("A1:A" & LRow)
           
           OldrowQty = rng.Rows.Count


End Function
 

Excel Facts

What is the shortcut key for Format Selection?
Ctrl+1 (the number one) will open the Format dialog for whatever is selected.
Hi Eric Penfold,

what about

VBA Code:
Public Sub MrE1221645_1613911()
'https://www.mrexcel.com/board/threads/trying-to-set-a-function-as-oldrows-count-before-the-delete-row-command-is-activated.1221645/
  Static OldRowCount    As Long
  Dim LRow              As Long
  Dim ws                As Worksheet
  
  Set ws = ActiveSheet
  LRow = ws.Range("A1").End(xlDown).Row
  If OldRowCount = 0 Then OldRowCount = LRow
  
  If OldRowCount > LRow Then
    OldRowCount = NewRowCount
    Exit Sub
  ElseIf OldRowCount < LRow Then
    Exit Sub
  ElseIf OldRowCount = LRow Then
    Call Group_OrderNos
  End If
  
  Set ws = Nothing
End Sub

Sub Group_OrderNos()
  'do nothing, noinformation
End Sub

Ciao,
Holger
 
Upvote 0
Every time I try this it always counts both old and new rows the same? So the Group_OrderNos fires up. I need it to not fire it up if deleting or inserting rows

VBA Code:
Option Explicit
Public Sub Delete_Rows_Or_Row()

        Dim NewRowCount As Long
        Dim OldRowCount   As Long
        Dim LRow                As Long
        Dim ws                    As Worksheet
    
           Set ws = ActiveSheet
           LRow = Range("A1").End(xlDown).Row
           NewRowCount = LRow
           If OldRowCount = 0 Then
           OldRowCount = LRow
        
         If OldRowCount > LRow Then
         OldRowCount = NewRowCount
         Exit Sub
         ElseIf OldRowCount < LRow Then
         Exit Sub
         ElseIf OldRowCount = LRow Then
         Call Group_OrderNos
    End If
    End If
    
    Set ws = Nothing
    
    
End Sub

Public Function OldrowQty()

        Dim OldRowCount As Long
        Dim LRow As Long
        Dim Rng As Range
        Dim ws As Worksheet

           Set ws = ActiveSheet
           LRow = Range("A1").End(xlDown).Row
           
           OldrowQty = LRow


End Function
 
Upvote 0
Hi Eric,

you use

VBA Code:
        Dim OldRowCount   As Long

so the variable starts with 0 in each run while my code uses

VBA Code:
  Static OldRowCount    As Long

which keeps the value as long as the workbook is open.

Maybe copy my whole code and add it in a new module for a try. I would suggest to use a Name for saving the value so that it will be available on the next opening of the workbook as well.

Ciao,
Holger
 
Upvote 0
I`ve copied the code of yours but the rows still say the same?
With Delete row, Insert row or paste rows.
I need only paste rows to run the code.
 
Upvote 0
Hi Eric,

I'm lost as I cannot figure out what you are up to. What are you expecting the code to do? From the original code I understand that you want the old number to be updated if the new number of rows is lower than the stored number and exit, if the stored number is greater than the number of rows filled in Column A no action, and if both equal another procedure shall be called.

But the procedure needs to be called manually so no inserting, deleting or pasting of cell will trigger the procedure unless you use an event like Worksheet_Change behind the monitored sheet to start it.

VBA Code:
Public Sub MrE1221645_1613911_V2()
'https://www.mrexcel.com/board/threads/trying-to-set-a-function-as-oldrows-count-before-the-delete-row-command-is-activated.1221645/
  Static OldRowCount    As Long
  Dim LRow              As Long
  Dim ws                As Worksheet
  Dim blnNoCall         As Boolean
  
  Set ws = ActiveSheet
  LRow = ws.Range("A1").End(xlDown).Row
  If OldRowCount = 0 Then
    OldRowCount = LRow            'variable will be filled
    blnNoCall = True              'True means no calling of procedure
  End If
  If OldRowCount > LRow Then      'stored number greater than actual number of rows
    OldRowCount = LRow            'store new number
    Exit Sub
  ElseIf OldRowCount < LRow Then  'stored number smaller than actual number of rows
'    OldRowCount = LRow            'store new number
    Exit Sub
  ElseIf OldRowCount = LRow And blnNoCall = False Then    'numbers are equal, run from second time on
    Call Group_OrderNos
  End If
  
  Set ws = Nothing
End Sub

Sub Group_OrderNos()
  'do nothing, noinformation
  MsgBox "A job to do"
End Sub

I would prefer to use the Worksheet_Change-event restricted to Column A like this (this uses a name to store the number of oldrows) and I'm still unaware why the number shall not be changed if new items are added:

VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim LRow              As Long
  Dim ws                As Worksheet
  Dim objVersName       As Name
  Dim strValue          As String

  Const cstrVersion     As String = "CheckOldLastRow"
  Const cstrEqual       As String = "="

  If Not Intersect(Target, Columns(1)) Is Nothing Then
    Application.EnableEvents = False
    LRow = Range("A1").End(xlDown).Row

    On Error Resume Next
    Set objVersName = ThisWorkbook.Names(cstrVersion)
    If Err.Number > 0 Then
      strValue = 0
      Names.Add cstrVersion, LRow
      Call Group_OrderNos
    Else
      strValue = Replace(Names(cstrVersion).RefersTo, cstrEqual, Empty)
      If CLng(strValue) > LRow Then
        Names(cstrVersion).RefersTo = cstrEqual & LRow
        GoTo end_here
      ElseIf CLng(strValue) < LRow Then
'        Names(cstrVersion).RefersTo = cstrEqual & LRow
        GoTo end_here
      ElseIf CLng(strValue) = LRow Then
        Call Group_OrderNos
      End If
    End If
  End If

end_here:
  Err.Clear
  On Error GoTo 0
  Set objVersName = Nothing
  Application.EnableEvents = True
End Sub

Sub Group_OrderNos()
  'do nothing, noinformation
  MsgBox "A job to do"
End Sub

Ciao,
Holger
 
Upvote 0
I`ve tried to adding your coding to a Module to simplify the coding. But can`t seem to make it work. This is triggered by

VBA Code:
    If Target.Column = 1 Then
     Call Group_OrderNos
        End If

Situated in the ThisWorkbook Code window

VBA Code:
 Dim LRow  As Long
    Dim Row   As Long
    Dim Row_1 As Long
    Dim Row_2 As Long
    Dim ct    As Long
    Dim fr    As Long
    Dim i     As Long
    Dim y     As Variant
    Static OldRowCount   As Long
    Dim blnNoCall         As Boolean

    
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With

  Set ws = ActiveSheet
  LRow = ws.Range("A1").End(xlDown).Row
  
        If OldRowCount = 0 Then
            OldRowCount = LRow
              blnNoCall = True
        End If
        
        If OldRowCount > LRow And blnNoCall = True Then
           OldRowCount = LRow
               Exit Sub
               End If

       If ws.Range("AA1") = "" Then
        ws.Range("AA1") = 1
    
    Set Rng = ws.Range("L2:L" & LRow)
    Rng.Clear
    Rng.Value = "A"
    Rng.HorizontalAlignment = xlCenter
    
        If ws.Name <> "Summary" And ws.Name <> "Trend" And ws.Name <> "Supplier BO" And ws.Name <> "Dif Depot" _
        And ws.Name <> "BO Trend WO" And ws.Name <> "BO Trend WO 2" And ws.Name <> "Different Depot" Then
        
        On Error Resume Next
        ws.Range("A1:H" & LRow).Sort Key1:=Range("C1"), Header:=xlYes, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom

                For Row = 2 To LRow
                ws.Cells(Row, "C") = Trim(Cells(Row, "C"))
                    ws.Cells(Row, "E") = Trim(Cells(Row, "E"))
                        ws.Cells(Row, "B") = Trim(Cells(Row, "B"))
            Next Row

                For Row = 2 To LRow
                If IsNumeric(Cells(Row, "E")) = True Then
                Cells(Row, "E").Value = "'" & Cells(Row, "E").Value
                End If
            Next Row

    On Error Resume Next
    ws.Range("A2:P" & LRow).RemoveDuplicates Columns:=Array(2, 3, 4, 5, 6, 7), Header:=xlYesr = 2

        ct = 1

        For Row = 2 To LRow
            If Cells(Row, "C").Value = Cells(Row - 1, "C") Then
                ct = ct + 1
            End If
        

                If ct > 1 Then
                    On Error Resume Next
                    ws.Rows(fr & ":" & Rw).Group
                End If
                ct = 1
                fr = Row + 1

        Next Row

        With ws
               Set FRng = .Range("A1").CurrentRegion
               FRng.AutoFilter Field:=10, Criteria1:=” = ”
               
              For Row = LRow To 2 Step -1
                If Cells(Row, "C") = Cells(Row - 1, "C") Then
                   If Cells(Row, "E") = Cells(Row - 1, "E") Then
                      If Cells(Row, "B") = Cells(Row - 1, "B") Then
                        Cells(Row - 1, "G") = Cells(Row, "G") + Cells(Row - 1, "G")
                        Cells(Row, "A").EntireRow.Delete
                    
                    End If
                End If
           End If
             Next Row
             
             Call Fill_NSI_Cells
             
             Call Duplicate_Delete
             
             Call Number_To_Text_Macro
             
             Call Format_Cells
             
         .Range("AA1") = ""
         
         .ShowAllData
         
         .Range("A2:P" & EndRw).ClearOutline
         
         .Range("A2:A" & LRow).HorizontalAlignment = xlCenter
         .Range("C2:E" & LRow).HorizontalAlignment = xlCenter
         .Range("G2:J" & LRow).HorizontalAlignment = xlCenter
         
         ThisWorkbook.Save
         
         MsgBox "OrderNos Group,Duplicate Codes Qty Group Complete & Workbook Saved!"
  
        End With
        
        End If
    End If

    

    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
        .Calculation = xlCalculationAutomatic
    End With
    
End Sub
 
Upvote 0
Hi Eric,

Situated in the ThisWorkbook Code window

Which event: Workbook_SheetActivate, Workbook_SheetBeforeDoubleClick, Workbook_SheetBeforeRightClick, Workbook_SheetCalculate, Workbook_SheetTableUpdate, Workbook_SheetPivotTableUpdate, Workbook_SheetChange, or Workbook_SheetSelectionChange to name a few?

Why don't you post all your code here even if the code might not work and indicate where it is located if code is a procedure or function. The least that I can tell is that I will take a good look at it, it may take some time to come up with a solution - right now I get more and more confused with every post.

Ciao,
Holger
 
Upvote 0
Ok here you go,

Code I added it to

VBA Code:
Sub Group_OrderNos()

    Dim ws    As Worksheet
    Dim Rng   As Range
    Dim R     As Range
    Dim FRng  As Range
    Dim LRow  As Long
    Dim Row   As Long
    Dim Row_1 As Long
    Dim Row_2 As Long
    Dim ct    As Long
    Dim fr    As Long
    Dim i     As Long
    Dim y     As Variant
    Static OldRowCount   As Long
    Dim blnNoCall         As Boolean

    
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With

  Set ws = ActiveSheet
  LRow = ws.Range("A1").End(xlDown).Row
  
        If OldRowCount = 0 Then
            OldRowCount = LRow
              blnNoCall = True
        End If
        
        If OldRowCount > LRow And blnNoCall = True Then
           OldRowCount = LRow
               Exit Sub
               End If

       If ws.Range("AA1") = "" Then
        ws.Range("AA1") = 1
    
    Set Rng = ws.Range("L2:L" & LRow)
    Rng.Clear
    Rng.Value = "A"
    Rng.HorizontalAlignment = xlCenter
    
        If ws.Name <> "Summary" And ws.Name <> "Trend" And ws.Name <> "Supplier BO" And ws.Name <> "Dif Depot" _
        And ws.Name <> "BO Trend WO" And ws.Name <> "BO Trend WO 2" And ws.Name <> "Different Depot" Then
        
        On Error Resume Next
        ws.Range("A1:H" & LRow).Sort Key1:=Range("C1"), Header:=xlYes, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom

                For Row = 2 To LRow
                ws.Cells(Row, "C") = Trim(Cells(Row, "C"))
                    ws.Cells(Row, "E") = Trim(Cells(Row, "E"))
                        ws.Cells(Row, "B") = Trim(Cells(Row, "B"))
            Next Row

                For Row = 2 To LRow
                If IsNumeric(Cells(Row, "E")) = True Then
                Cells(Row, "E").Value = "'" & Cells(Row, "E").Value
                End If
            Next Row

    On Error Resume Next
    ws.Range("A2:P" & LRow).RemoveDuplicates Columns:=Array(2, 3, 4, 5, 6, 7), Header:=xlYesr = 2

        ct = 1

        For Row = 2 To LRow
            If Cells(Row, "C").Value = Cells(Row - 1, "C") Then
                ct = ct + 1
            End If
        

                If ct > 1 Then
                    On Error Resume Next
                    ws.Rows(fr & ":" & Rw).Group
                End If
                ct = 1
                fr = Row + 1

        Next Row

        With ws
               Set FRng = .Range("A1").CurrentRegion
               FRng.AutoFilter Field:=10, Criteria1:=” = ”
               
              For Row = LRow To 2 Step -1
                If Cells(Row, "C") = Cells(Row - 1, "C") Then
                   If Cells(Row, "E") = Cells(Row - 1, "E") Then
                      If Cells(Row, "B") = Cells(Row - 1, "B") Then
                        Cells(Row - 1, "G") = Cells(Row, "G") + Cells(Row - 1, "G")
                        Cells(Row, "A").EntireRow.Delete
                    
                    End If
                End If
           End If
             Next Row
             
             Call Fill_NSI_Cells
             
             Call Duplicate_Delete
             
             Call Number_To_Text_Macro
             
             Call Format_Cells
             
         .Range("AA1") = ""
         
         .ShowAllData
         
         .Range("A2:P" & EndRw).ClearOutline
         
         .Range("A2:A" & LRow).HorizontalAlignment = xlCenter
         .Range("C2:E" & LRow).HorizontalAlignment = xlCenter
         .Range("G2:J" & LRow).HorizontalAlignment = xlCenter
         
         ThisWorkbook.Save
         
         MsgBox "OrderNos Group,Duplicate Codes Qty Group Complete & Workbook Saved!"
  
        End With
        
        End If
    End If

Here is the code that fires it up
VBA Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

            Dim OldRowCount As Long
            Dim NewRowCount As Long
            Dim LRow As Long
            Dim Rng As Range
            Dim ws As Worksheet

           Set ws = ActiveSheet
           LRow = Range("A1").End(xlDown).Row

         If ws.Name <> "Summary" And ws.Name <> "Trend" And ws.Name <> "Supplier BO" And ws.Name <> "Dif Depot" _
         And ws.Name <> "BO Trend WO" And ws.Name <> "BO Trend WO 2" And ws.Name <> "Different Depot" Then

If Target.Column = 10 Then
If ws.Range("AA1") = "" Then
                ActiveSheet.Range("AA1") = 1
               Call BO_Drop_DownList
               Call BO_Reason
                 End If
            End If
        End If
    
    If Target.Column = 1 Then
     Call Group_OrderNos
        End If


End Sub
 
Upvote 0
Hi Eric,

thanks for sharing the code. Sadly the first macro does not include all the code so having
VBA Code:
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual
    End With
and using
VBA Code:
               Exit Sub
later in the code will leave you to take care at another place to re-install the original behaviour.

Your original code could only work if the number stored in the variable was lower than the number of rows in the sheet.

For calling the supplied macro I assumed that changes in Column J as well as Column A should call the macros to be valid on the sheets excluded from work like

VBA Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Select Case Sh.Name
    Case "Summary", "Trend", "Supplier BO", "Dif Depot", "BO Trend WO", "BO Trend WO 2", "Different Depot"
      'do nothing, sheets are excluded
    Case Else
      If Target.Column = 10 Then
        If Sh.Range("AA1") = "" Then
          Sh.Range("AA1") = 1
          Call BO_Drop_DownList
          Call BO_Reason
        End If
      End If
      'assuming that changes in Column A also are restricted to the worksheets not included above
      If Target.Column = 1 Then
        Call Group_OrderNos(Sh)
      End If
  End Select
End Sub

I pass the sheet to be worked on as a parameter to the procedure, and I inserted a couple of numbers to find out where to start to look for errors in case they happen. And I disabled events to be triggered for the run of the code:

VBA Code:
Sub Group_OrderNos(ws As Worksheet)
'code can only be started when a worksheet is assigned as object by parameter

  Dim rngWork           As Range
  Dim lngLastR          As Long
  Dim lngRow            As Long
  'Dim Row_1 As Long
  'Dim Row_2 As Long
  Dim lngRepItem        As Long
  Dim lngFirstRow       As Long
  'Dim i     As Long
  'Dim y     As Variant
  Static OldRowCount    As Long
  Dim blnNoCall         As Boolean
  Dim lngError          As Long
  Dim objVersName       As Name
  Dim strValue          As String
  
  Const cstrVersion     As String = "CheckOldLastRow"
  Const cstrEqual       As String = "="
  
  With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
  End With
  
  lngError = 1
  lngLastR = ws.Range("A1").End(xlDown).Row
  
  On Error Resume Next
  Set objVersName = ThisWorkbook.Names(cstrVersion)
  If Err.Number > 0 Then
    strValue = 0
    Names.Add cstrVersion, lngLastR
  Else
    strValue = Replace(Names(cstrVersion).RefersTo, cstrEqual, Empty)
    OldRowCount = CLng(strValue)
    If OldRowCount < lngLastR Then
      Names(cstrVersion).RefersTo = cstrEqual & lngLastR
    ElseIf OldRowCount > lngLastR Then
      GoTo end_here
    End If
  End If
  Err.Clear
  On Error GoTo 0
  
  'in case of errors goto the error handler
  On Error GoTo err_here
  
'  If OldRowCount = 0 Then
'    OldRowCount = NumberRowsColA
'    blnNoCall = True
'  End If
'
'  If OldRowCount > lngLastR And blnNoCall = True Then
'    OldRowCount = lngLastR
'    GoTo end_here
'  End If
  
  lngError = 2
  If ws.Range("AA1") = "" Then
    ws.Range("AA1") = 1
    'work with range object like this
    With ws.Range("L2:L" & lngLastR)
      .Clear
      .Value = "A"
      .HorizontalAlignment = xlCenter
    End With
    
    lngError = 3
    ws.Range("A1:H" & lngLastR).Sort Key1:=Range("C1"), _
                                 Header:=xlYes, _
                                 OrderCustom:=1, _
                                 MatchCase:=False, _
                                 Orientation:=xlTopToBottom
    
    lngError = 4
    For lngRow = 2 To lngLastR
      ws.Cells(lngRow, "C") = Trim(Cells(lngRow, "C"))
      ws.Cells(lngRow, "E") = Trim(Cells(lngRow, "E"))
      'combined code to have only one loop instead of two
      If IsNumeric(Cells(lngRow, "E")) = True Then
        Cells(lngRow, "E").Value = "'" & Cells(lngRow, "E").Value
      End If
      ws.Cells(lngRow, "B") = Trim(Cells(lngRow, "B"))
    Next lngRow
    
    lngError = 5
    '/// the codeline was not accepted, this is my guess of how things might look like
    '/// splitting thré line for removing duplicates and assigning a value to lngFirstRow
    ws.Range("A2:P" & lngLastR).RemoveDuplicates Columns:=Array(2, 3, 4, 5, 6, 7), Header:=xlYes
    lngFirstRow = 2
    '/// end guessing
    
    
    lngRepItem = 1
    lngError = 6
    For lngRow = 2 To lngLastR
      If Cells(lngRow, "C").Value = Cells(lngRow - 1, "C") Then
        lngRepItem = lngRepItem + 1
      End If
      'as found in your code - start
      If lngRepItem > 1 Then
        ws.Rows(lngFirstRow & ":" & lngRow).Group
      End If
      lngRepItem = 1
      lngFirstRow = lngRow + 1
      'as found in your code - end
      
'      '/// maybe it should be - start
'      If lngRepItem > 1 Then
'        ws.Rows(lngFirstRow & ":" & lngRow).Group
'        lngRepItem = 1
'        lngFirstRow = lngRow + 1
'      End If
'      '/// maybe it should be - end
    Next lngRow
    
    lngError = 7
    With ws
      Set rngWork = .Range("A1").CurrentRegion
      rngWork.AutoFilter Field:=10, Criteria1:=" = "
      
      lngError = 8
      For lngRow = lngLastR To 2 Step -1
        If Cells(lngRow, "C") = Cells(lngRow - 1, "C") Then
          If Cells(lngRow, "E") = Cells(lngRow - 1, "E") Then
            If Cells(lngRow, "B") = Cells(lngRow - 1, "B") Then
              Cells(lngRow - 1, "G") = Cells(lngRow, "G") + Cells(lngRow - 1, "G")
              Cells(lngRow, "A").EntireRow.Delete
            End If
          End If
        End If
      Next lngRow
      
      lngError = 9
      Call Fill_NSI_Cells
      lngError = 10
      Call Duplicate_Delete
      lngError = 11
      Call Number_To_Text_Macro
      lngError = 12
      Call Format_Cells
      
      lngError = 13
      .Range("AA1") = ""
      'leave filter on
      .ShowAllData
'      'deactivate filter
'      '.Autofiltermode = false
      .Range("A2:P" & lngLastR).ClearOutline
      .Range("A2:A" & lngLastR).HorizontalAlignment = xlCenter
      .Range("C2:E" & lngLastR).HorizontalAlignment = xlCenter
      .Range("G2:J" & lngLastR).HorizontalAlignment = xlCenter
    End With
  End If
  ThisWorkbook.Save
  
  MsgBox "OrderNos Group,Duplicate Codes Qty Group Complete & Workbook Saved!"

end_here:
  Set objVersName = Nothing
  Set rngWork = Nothing
  With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
  End With
  Exit Sub

err_here:
  Debug.Print Err.Number
  Debug.Print Err.Description
  Debug.Print "after pointer: " & lngError
  Err.Clear
  MsgBox "An error occurred. Refer to the immediate window for mor information", vbInformation, "Error Message"
  Resume end_here

End Sub

I had to go through a lot of debugging errors leading to wild guesses from my side what you may have had in mind for the code to do. And still I'm still unsure to understand why you would need a static variable for the number of old rows on a worksheet - up to your last code I thought we were talking about one sheet but it may be more than one.

BTW: I inserted some dummys to take the calls for other macros like

VBA Code:
Sub BO_Drop_DownList()
  MsgBox "BO_Drop_DownList"
End Sub
Sub BO_Reason()
  MsgBox "BO_Reason"
End Sub
Sub Fill_NSI_Cells()
  MsgBox "Fill_NSI_Cells"
End Sub
Sub Duplicate_Delete()
  MsgBox "Duplicate_Delete"
End Sub
Sub Number_To_Text_Macro()
  MsgBox "Number_To_Text_Macro"
End Sub
Sub Format_Cells()
  MsgBox "Format_Cells"
End Sub

Ciao,
Holger
 
Upvote 0

Forum statistics

Threads
1,224,731
Messages
6,180,611
Members
452,991
Latest member
JM_000888

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top