VB Codes work smoothly only if there no other opened Workbooks. Why & What to do?

countryfan_nt

Well-known Member
Joined
May 19, 2004
Messages
765
Hello friends, Hope all is well!

The below two codes are working smoothly, and are placed in VBA editor in a sheet named "GA" or Sheet5.

Anyway, if 1 or more workbooks are open the codes don't work. How can I force the below codes to exclusively work on the workbook & sheet that it is in?

Thank you very much in advance!

VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("F7", "F15")) Is Nothing Then Exit Sub

    Rows("13:15").Select
    Selection.EntireRow.Hidden = True

With Target
If Worksheets("GA").Range("f7").Value = "Release" Then
Range("13:13,14:14,15:15").Select
Selection.EntireRow.Hidden = True

    ElseIf Worksheets("GA").Range("f7").Value = "Decreased" Then
    Range("13:13,14:14").Select
     Selection.EntireRow.Hidden = False
     Range("15:15").Select
     Selection.EntireRow.Hidden = True

    ElseIf Worksheets("GA").Range("f7").Value = "Extend" Then
    Range("15:15").Select
     Selection.EntireRow.Hidden = False
     Range("13:13,14:14").Select
     Selection.EntireRow.Hidden = True
    
 ElseIf Worksheets("GA").Range("f7").Value = "Extend" Then
    Range("13:13,14:14").Select
     Selection.EntireRow.Hidden = True
 
   ElseIf Worksheets("GA").Range("f7").Value = "Extend & Decreased" Then
    Range("13:13,14:14,15:15").Select
     Selection.EntireRow.Hidden = False
   
   ElseIf Worksheets("GA").Range("f7").Value = "" Then
    Range("13:13,14:14,15:15").Select
    Selection.EntireRow.Hidden = True

End If
End With
End Sub

VBA Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim dt As Variant
    Dim InitialDate As Date
    
If Intersect(Target, Range("F7", "K15")) Is Nothing Then Exit Sub
    With Target
    
If Target.Address = "$K$15" Then
    

        dt = ShowCalendar("Double Click on the selected date", InitialDate)
        
        If Not IsEmpty(dt) Then
        
        Range("F15") = CDate(dt)
       
                End If
        
        Cancel = True
    End If

End With
End Sub
 

Excel Facts

Ambidextrous Undo
Undo last command with Ctrl+Z or Alt+Backspace. If you use the Undo icon in the QAT, open the drop-down arrow to undo up to 100 steps.
Hello friends, Hope all is well!

The below two codes are working smoothly, and are placed in VBA editor in a sheet named "GA" or Sheet5.

Anyway, if 1 or more workbooks are open the codes don't work. How can I force the below codes to exclusively work on the workbook & sheet that it is in?

Thank you very much in advance!

VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("F7", "F15")) Is Nothing Then Exit Sub

    Rows("13:15").Select
    Selection.EntireRow.Hidden = True

With Target
If Worksheets("GA").Range("f7").Value = "Release" Then
Range("13:13,14:14,15:15").Select
Selection.EntireRow.Hidden = True

    ElseIf Worksheets("GA").Range("f7").Value = "Decreased" Then
    Range("13:13,14:14").Select
     Selection.EntireRow.Hidden = False
     Range("15:15").Select
     Selection.EntireRow.Hidden = True

    ElseIf Worksheets("GA").Range("f7").Value = "Extend" Then
    Range("15:15").Select
     Selection.EntireRow.Hidden = False
     Range("13:13,14:14").Select
     Selection.EntireRow.Hidden = True
   
 ElseIf Worksheets("GA").Range("f7").Value = "Extend" Then
    Range("13:13,14:14").Select
     Selection.EntireRow.Hidden = True
 
   ElseIf Worksheets("GA").Range("f7").Value = "Extend & Decreased" Then
    Range("13:13,14:14,15:15").Select
     Selection.EntireRow.Hidden = False
  
   ElseIf Worksheets("GA").Range("f7").Value = "" Then
    Range("13:13,14:14,15:15").Select
    Selection.EntireRow.Hidden = True

End If
End With
End Sub

VBA Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim dt As Variant
    Dim InitialDate As Date
   
If Intersect(Target, Range("F7", "K15")) Is Nothing Then Exit Sub
    With Target
   
If Target.Address = "$K$15" Then
   

        dt = ShowCalendar("Double Click on the selected date", InitialDate)
       
        If Not IsEmpty(dt) Then
       
        Range("F15") = CDate(dt)
      
                End If
       
        Cancel = True
    End If

End With
End Sub
This may help.

Qualifying References

It is good practice to do this even if only to make the code easier to understand.
 
Upvote 1
Solution

Forum statistics

Threads
1,224,828
Messages
6,181,204
Members
453,022
Latest member
RobertV1609

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