Im looking for assistance in my code in regards to my listbox highlighting and actively changing the highlighted choice based off active sheet.
my listbox auto populates based off the sheets within the workbook and can change active worksheet based off selection but does not auto highlight the initial loaded active sheet as the selection and when manually selected on the workbook does not reflect the changes.
Public ActiveSheetChoice As String
Private Sub ActiveSheetDisplay_AfterUpdate()
ActiveSheetChoice = ActiveSheetDisplay.Text
' Change sheet based on choice
Worksheets(ActiveSheetChoice).Activate
End Sub
Private Sub ActiveSheetDisplayRefresh_Click()
' Declaration
Dim N As Long
' Clear exsisting entries
ActiveSheetDisplay.Clear
' Function
For N = 1 To ActiveWorkbook.Sheets.Count
ActiveSheetDisplay.AddItem ActiveWorkbook.Sheets(N).Name
Next N
End Sub
Private Sub UserForm_Initialize()
' Declaration
Dim N As Long
' Initalization of active sheet display
For N = 1 To ActiveWorkbook.Sheets.Count
ActiveSheetDisplay.AddItem ActiveWorkbook.Sheets(N).Name
Next N
End Sub
Private Sub ImportButton_Click()
' Declare Variables
Dim TargetBook As Workbook
Dim SourceBook As Workbook
' Set Active Workbook
Set SourceBook = ThisWorkbook
' Display a Dialog Box that allows to select a single file.
'The path for the file picked will be stored in fullpath variable
With Application.FileDialog(msoFileDialogFilePicker)
' Makes sure the user can select only one file
.AllowMultiSelect = False
' Filter to just the following types of files to narrow down selection options
.Filters.Add "Excel Files", "*.xlsx; *.xlsm; *.xls; *.xlsb", 1
' Show the dialog box
.Show
' Opening selected file
For Each Book In .SelectedItems
Set TargetBook = Workbooks.Open(Book)
CopyAllSheets SourceBook, TargetBook
TargetBook.Close SaveChanges:=False
Next Book
' Refresh Active Sheets
Call ActiveSheetDisplayRefresh_Click
' Inform User of completion
MsgBox "Data import complete"
End With
End Sub
' Copy Sheet Function
Sub CopyAllSheets(Source As Workbook, Target As Workbook)
' Determine Number of sheets to copy
totalSheets = Target.Sheets.Count
' Copy
For Each sh In Target.Sheets
sh.Copy after:=Source.Sheets(Source.Sheets.Count)
Next sh
End Sub
Private Sub SaveOptionButton_Click()
' Save workbook Function
ThisWorkbook.Save
MsgBox "Workbook saved!"
End Sub
' Using Query Close event of Userform
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Display information message dialog box
If CloseMode = vbFormControlMenu Then
'Changing Cancel variable value to True
Cancel = True
MsgBox "Main Options cannot be closed"
End If
End Sub