• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

My Online Training Hub

Learn Dashboards, Excel, Power BI, Power Query, Power Pivot

  • Courses
  • Pricing
    • Free Courses
    • Power BI Course
    • Excel Power Query Course
    • Power Pivot and DAX Course
    • Excel Dashboard Course
    • Excel PivotTable Course – Quick Start
    • Advanced Excel Formulas Course
    • Excel Expert Advanced Excel Training
    • Excel Tables Course
    • Excel, Word, Outlook
    • Financial Modelling Course
    • Excel PivotTable Course
    • Excel for Customer Service Professionals
    • Excel for Operations Management Course
    • Excel for Decision Making Under Uncertainty Course
    • Excel for Finance Course
    • Excel Analysis ToolPak Course
    • Multi-User Pricing
  • Resources
    • Free Downloads
    • Excel Functions Explained
    • Excel Formulas
    • Excel Add-ins
    • IF Function
      • Excel IF Statement Explained
      • Excel IF AND OR Functions
      • IF Formula Builder
    • Time & Dates in Excel
      • Excel Date & Time
      • Calculating Time in Excel
      • Excel Time Calculation Tricks
      • Excel Date and Time Formatting
    • Excel Keyboard Shortcuts
    • Excel Custom Number Format Guide
    • Pivot Tables Guide
    • VLOOKUP Guide
    • ALT Codes
    • Excel VBA & Macros
    • Excel User Forms
    • VBA String Functions
  • Members
    • Login
    • Password Reset
  • Blog
  • Excel Webinars
  • Excel Forum
    • Register as Forum Member

Threaded Comment Extractions in Excel|VBA & Macros|Excel Forum|My Online Training Hub

You are here: Home / Threaded Comment Extractions in Excel|VBA & Macros|Excel Forum|My Online Training Hub
Avatar
sp_LogInOut Log In sp_Registration Register
sp_Search Search
Advanced Search
Search
Forum Scope




Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
sp_Search Search
sp_RankInfo
Lost password?
sp_CrumbsHome HomeExcel ForumVBA & MacrosThreaded Comment Extractions in Exc…
sp_PrintTopic sp_TopicIcon
Threaded Comment Extractions in Excel
Page: 12Jump to page
Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
1
August 11, 2022 - 2:47 am
sp_Permalink sp_Print sp_EditHistory

For some reason this macro is not pulling ALL responses.  I cannot figure out why.  It DOES loop through the whole workbook, but does not display all replies.  Also would love for the replies to always be in the 1st available cells. On the Comments tab, row 7, it uses reply 3 & 4, however, those 2 replies are the 1st and 2nd for that comment.  And in my live version, there are some responses that are NOT showing up when I do the extraction.  I believe these ones that are not showing up are due to the comment being "resolved".  Can the VBA script be adjust to pull ALL comments, replies, and add another column if there is a resolved and indicate those notes too?

Option Explicit
Sub ListCommentsRepliesThreaded()
Application.ScreenUpdating = False
Dim j As Long
Dim ws As Worksheet
Dim myCmt As CommentThreaded
Dim myRp As CommentThreaded
Dim curwks As Worksheet
Dim newwks As Worksheet
Dim myList As ListObject
Dim i As Long
Dim iR As Long
Dim iRCol As Long
Dim ListCols As Long
Dim cmtCount As Long

If Not Evaluate("ISREF('Comments'!A1)") Then

Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Comments"
Else

Sheets("Comments").Cells.Clear
End If
Set ws = Sheets("Comments")
ws.Move Before:=Sheets(1)
With ws
.Range("A1:H1").Value = _
Array("Number", "Sheet", "Cell", "Author", "Date", "Replies", "User Name", "Text", "Additional Replies")
.ListObjects.Add(xlSrcRange, _
.Cells(1, 1) _
.CurrentRegion, , xlYes) _
.Name = "Table1"
End With
i = 1
j = 1
iRCol = 9
For Each curwks In Worksheets
If curwks.Name <> ws.Name Then
For Each myCmt In curwks.CommentsThreaded
With ws
i = i + 1
' On Error Resume Next
.Cells(i, 1).Value = i - 1 'number
.Cells(i, 2).Value = curwks.Name ' sheet
.Cells(i, 3).Value = myCmt.Parent.Address 'cell
.Cells(i, 4).Value = myCmt.Author.Name ' author
.Cells(i, 5).Value = myCmt.Date 'date
.Cells(i, 6).Value = myCmt.Replies.Count ' count
.Cells(i, 7).Value = Environ("Username") 'user name
.Cells(i, 8).Value = myCmt.Text ' text
' .Cells(i, 9).Value = myCmt.Parent.Address 'Additional Replies
If myCmt.Replies.Count > 1 Then

For iR = 1 To myCmt.Replies.Count
.Cells(1, iRCol).Value = "Reply " & j
.Cells(i, iRCol).Value _
= myCmt.Replies(iR).Author.Name _
& vbCrLf _
& myCmt.Replies(iR).Date _
& vbCrLf _
& myCmt.Replies(iR).Text
iRCol = iRCol + 1
j = j + 1
Next iR
End If
End With
Next myCmt
End If
Next

Set myList = ws.ListObjects(1)
myList.TableStyle = "TableStyleLight8"
ListCols = myList.DataBodyRange _
.Columns.Count

With myList.DataBodyRange
.Cells.VerticalAlignment = xlTop
.Columns.EntireColumn.ColumnWidth = 30
.Cells.WrapText = True
.Columns.EntireColumn.AutoFit
.rows.EntireRow.AutoFit
End With
Application.ScreenUpdating = True

End Sub

Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
2
August 12, 2022 - 3:54 pm
sp_Permalink sp_Print

Hi Sherry,

I think there is a mistake here:

If myCmt.Replies.Count > 1 Then

The line does not handle the comments with 1 reply only. Should be:

If myCmt.Replies.Count >= 1 Then

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
3
August 16, 2022 - 2:03 am
sp_Permalink sp_Print

That seems to work to some extent.  But I am still having issues to where On this document I have 35 columns of  comments.  The ONLY time I should have more than 1 column of comments is when the "replies" is=2+, and then those comments should be in reply columns 1, 2, etc.  On this particular document, (my live file), there is only ONE instance where the # of replies is 2.  That comment is on reply columns 34 and 35.  It should never matter the total number of replies.  All replies should appear as Reply 1, and if there are additional, reply 2, reply 3.  But this is simply crazy to have it like this.

2022-08-15_11-59-48.jpgImage Enlarger

2022-08-15_11-54-02.jpgImage Enlarger

sp_PlupAttachments Attachments
  • sp_PlupImage 2022-08-15_11-54-02.jpg (48 KB)
  • sp_PlupImage 2022-08-15_11-59-48.jpg (27 KB)
Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
4
August 16, 2022 - 3:09 pm
sp_Permalink sp_Print

Hi Sherry,

You should start writing comments from the first reply column at each comment.

This means you have to reset the reply column INSIDE the loop, not outside it:

iRCol = 9
For Each curwks In Worksheets

 

should be:
For Each curwks In Worksheets
iRCol = 9

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
5
August 17, 2022 - 3:44 am
sp_Permalink sp_Print

The result was identical.  35 reply columns.  And only the final row had 2 replays, and those 2 replies appeared in AP & AQ (reply column 34 & Reply Column 35)

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
6
August 23, 2022 - 1:26 am
sp_Permalink sp_Print

This code is a variation on what I was using, it is better in some ways, and lacking in others.  I think this would be the answer I need if a few minor adjustments could be made.

1.  The new sheet (Sheet1), could be named "Comments", and placed on the far left, as the very first sheet.

2.  The macro could go through ALL worksheets looking for comments

3.  A new column inserted between A & B, so everything pushed to the right.  The new column would be "sheet". So the name of the sheet would be identified in comment B (now), and then the cell address would be identified (now in column C).

I think this is a better resolution than attempting to modify the previous code I provided.  Thanks again in agvance!

 

Sub ListCommentsRepliesThreaded()
Application.ScreenUpdating = False

Dim myCmt As CommentThreaded
Dim myRp As CommentThreaded
Dim curwks As Worksheet
Dim newwks As Worksheet
Dim myList As ListObject
Dim i As Long
Dim iR As Long
Dim iRCol As Long
Dim ListCols As Long
Dim cmtCount As Long

Set curwks = ActiveSheet
cmtCount = curwks.CommentsThreaded.Count

If cmtCount = 0 Then
MsgBox "No threaded comments found"
Exit Sub
End If

Set newwks = Worksheets.Add

newwks.Range("A1:F1").Value = _
Array("Number", "Cell", "Author", _
"Date", "Replies", "Text")

i = 1
For Each myCmt In curwks.CommentsThreaded
With newwks
i = i + 1
On Error Resume Next
.Cells(i, 1).Value = i - 1
.Cells(i, 2).Value = myCmt.Parent.Address
.Cells(i, 3).Value = myCmt.Author.Name
.Cells(i, 4).Value = myCmt.Date
.Cells(i, 5).Value = myCmt.Replies.Count
.Cells(i, 6).Value = myCmt.Text
If myCmt.Replies.Count > 1 Then
iR = 1
iRCol = 7
For iR = 1 To myCmt.Replies.Count
.Cells(1, iRCol).Value = "Reply " & iR
.Cells(i, iRCol).Value _
= myCmt.Replies(iR).Author.Name _
& vbCrLf _
& myCmt.Replies(iR).Date _
& vbCrLf _
& myCmt.Replies(iR).Text
iRCol = iRCol + 1
Next iR
End If
End With
Next myCmt

With newwks
.ListObjects.Add(xlSrcRange, _
.Cells(1, 1) _
.CurrentRegion, , xlYes) _
.Name = ""
End With

Set myList = newwks.ListObjects(1)
myList.TableStyle = "TableStyleLight8"
ListCols = myList.DataBodyRange _
.Columns.Count

With myList.DataBodyRange
.Cells.VerticalAlignment = xlTop
.Columns.EntireColumn.ColumnWidth = 30
.Cells.WrapText = True
.Columns.EntireColumn.AutoFit
.rows.EntireRow.AutoFit
End With

Application.ScreenUpdating = True

End Sub

Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
7
August 23, 2022 - 2:19 am
sp_Permalink sp_Print sp_EditHistory

Hi Sherry,

Try this version, I cleaned the code and reorganized it:

Sub ListCommentsRepliesThreaded()
Application.ScreenUpdating = False

Dim myCmt As CommentThreaded
Dim myRp As CommentThreaded
Dim curwks As Worksheet
Dim newwks As Worksheet
Dim myList As ListObject
Dim i As Long
Dim iR As Long
Dim iRCol As Long
Dim ListCols As Long
Dim cmtCount As Long
Dim wks As Worksheet
Dim NewRow As ListRow

If SheetExists("Comments") = False Then
Set newwks = Worksheets.Add
newwks.Name = "Comments"
Else
Set newwks = ThisWorkbook.Worksheets("Comments")
newwks.UsedRange.Clear
End If

newwks.Range("A1:G1").Value = Array("Number", "Sheet", "Cell", "Author", "Date", "Replies", "Text")
Set myList = newwks.ListObjects.Add(xlSrcRange, newwks.Range("A1:G2"), , xlYes)
myList.Name = "Comments"
myList.TableStyle = "TableStyleLight8"

For Each wks In ThisWorkbook.Worksheets
If Not wks.Name Like "Comments" Then
Set curwks = wks
cmtCount = curwks.CommentsThreaded.Count

If cmtCount = 0 Then
MsgBox "No threaded comments found in " * wks.Name
'Exit Sub
End If

i = 1
For Each myCmt In curwks.CommentsThreaded
With newwks
i = i + 1
On Error Resume Next
.Cells(i, 1).Value = i - 1
.Cells(i, 2).Value = wks.Name
.Cells(i, 3).Value = myCmt.Parent.Address
.Cells(i, 4).Value = myCmt.Author.Name
.Cells(i, 5).Value = myCmt.Date
.Cells(i, 6).Value = myCmt.Replies.Count
.Cells(i, 7).Value = myCmt.Text
If myCmt.Replies.Count > 1 Then
iR = 1
iRCol = 8
For iR = 1 To myCmt.Replies.Count
.Cells(1, iRCol).Value = "Reply " & iR
.Cells(i, iRCol).Value _
= myCmt.Replies(iR).Author.Name _
& vbCrLf _
& myCmt.Replies(iR).Date _
& vbCrLf _
& myCmt.Replies(iR).Text
iRCol = iRCol + 1
Next iR
End If
End With
Next myCmt
End If
Next wks

With myList.DataBodyRange
.Cells.VerticalAlignment = xlTop
.Columns.EntireColumn.ColumnWidth = 30
.Cells.WrapText = True
.Columns.EntireColumn.AutoFit
.Rows.EntireRow.AutoFit
End With

Application.ScreenUpdating = True

End Sub
Function SheetExists(ByVal ShName As String) As Boolean
On Error Resume Next
SheetExists = Not ThisWorkbook.Worksheets(ShName) Is Nothing
End Function

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
8
August 24, 2022 - 2:21 am
sp_Permalink sp_Print

I am getting an error message. "Run-time error '13'. Type Mismatch.  When I clicked on the "debug" button, it showed this line of code. "..No threaded comments..." Which is bizarre, as this is the same workbook previously that contains 35 comments.  Question, that debug comment also mentions "worksheet", is the code checking all the sheets within the workbook?  There are no comments on the 1st sheet, but the 2nd sheet has 35 comments and the 3rd sheet has 2 comments

 

2022-08-23_12-03-38.jpgImage Enlarger

2022-08-23_12-04-24.jpgImage Enlarger

sp_PlupAttachments Attachments
  • sp_PlupImage 2022-08-23_12-03-38.jpg (10 KB)
  • sp_PlupImage 2022-08-23_12-04-24.jpg (12 KB)
Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
9
August 24, 2022 - 3:45 pm
sp_Permalink sp_Print

My mistake:

Instead of :

MsgBox "No threaded comments found in " * wks.Name

Should be:

MsgBox "No threaded comments found in " & wks.Name

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
10
August 25, 2022 - 12:11 am
sp_Permalink sp_Print

Catalin,

 

If nothin else, I am confused.  When I run the macro now, I get 3 separate message boxes that appear one after another (when ok is pressed), stating  there are no comments.... but there ARE!  I am on sheet1, when I run the macro, and the majority of the comments are on sheet 2.  But logically, none of that should matter.

2022-08-24_10-05-02.jpgImage Enlarger

2022-08-24_10-05-20.jpgImage Enlarger
2022-08-24_10-05-38.jpgImage Enlarger
2022-08-24_10-06-25.jpgImage Enlarger

sp_PlupAttachments Attachments
  • sp_PlupImage 2022-08-24_10-05-02.jpg (7 KB)
  • sp_PlupImage 2022-08-24_10-05-20.jpg (7 KB)
  • sp_PlupImage 2022-08-24_10-05-38.jpg (7 KB)
  • sp_PlupImage 2022-08-24_10-06-25.jpg (12 KB)
Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
11
August 25, 2022 - 3:47 am
sp_Permalink sp_Print

Hi Sherry,
Based on your initial sample file, the code works, you can see the results:

image_2022-08-24_204532421.pngImage Enlarger

Are you sure they are comments? Maybe those are... Notes. They are different.

sp_PlupAttachments Attachments
  • sp_PlupImage image_2022-08-24_204532421.png (82 KB)
Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
12
September 2, 2022 - 8:47 am
sp_Permalink sp_Print

@Catalin,

 

There are comments (not notes) that were not displayed on the comments sheet when the macro was run.  They ARE threaded comments.  This screenshot is an example of TWO comments (or rather 1 comment & 1 reply) that do NOT display on the comments sheet.  This screenshot was taken from the Quality Assessment Template sheet, cell D4 you will see the small purple triangle indicating threaded comments  Attached is a spreadsheet and two screenshots.

2022-09-01_18-31-39.jpgImage Enlarger

2022-09-01_18-36-03.jpgImage Enlarger

sp_PlupAttachments Attachments
  • sp_PlupImage 2022-09-01_18-31-39.jpg (26 KB)
  • sp_PlupImage 2022-09-01_18-36-03.jpg (45 KB)
Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
13
September 2, 2022 - 2:07 pm
sp_Permalink sp_Print sp_EditHistory

Now I am confused:

If nothin else, I am confused.  When I run the macro now, I get 3 separate message boxes that appear one after another (when ok is pressed), stating  there are no comments.... but there ARE!  I am on sheet1, when I run the macro, and the majority of the comments are on sheet 2.  But logically, none of that should matter.

Here you're saying that the code does not find ANY comment, but from the last message I understand that only some of them are not displayed.

The error is related to the position of the line :

i=1

Now it is located above this line and "i" is reset to 1 when the sheet changes, therefore it will overwrite some comments from previous sheet:
For Each myCmt In curwks.CommentsThreaded

But it should be above this line (outside any loop):
For Each wks In ThisWorkbook.Worksheets

Once you move i=1 above the sheets loop, you'll get all comments.

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
14
September 8, 2022 - 11:20 pm
sp_Permalink sp_Print

It is still showing 35 reply columns.  I made the change you stated, and I don't understand why it does this.

Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
15
September 9, 2022 - 1:35 am
sp_Permalink sp_Print

Are there missing comments anymore?

Please post a sample file where the code adds 35 comment columns and there should not be this many.

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
16
September 23, 2022 - 12:20 am
sp_Permalink sp_Print

Sorry for no response, I have been out of town again.  I am  attempting to create a "dummy file.  But I am having to create something from scratch, as I cannot post my live file.  I am working on it.

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
17
September 23, 2022 - 11:25 pm
sp_Permalink sp_Print

My test file seems to work file (file attached), however my live file gives an error Runtime error 13 Type Mismatch, and then results in the comments sheets with NO comments, but there are a ton of comments in this workbook.  And NO my live data file is not protected, and macros were enabled.

Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
18
September 24, 2022 - 3:00 pm
sp_Permalink sp_Print

No file attached.

Can you upload a screenshot with the line in code that returns that error? When you press debug, that line is highlighted.

Avatar
Sherry Fox
Poinciana, FL
Member
Members
Level 0
Forum Posts: 71
Member Since:
December 4, 2021
sp_UserOfflineSmall Offline
19
October 1, 2022 - 4:11 am
sp_Permalink sp_Print

@Catalin,

Sorry for the delay, we have had a busy 2 weeks preparing for month end.  Attached are the screenshots you requested.  Sorry about forgetting the test, attached this time.

2022-09-30_14-04-47.pngImage Enlarger

2022-09-30_14-05-18.pngImage Enlarger
2022-09-30_14-05-50.pngImage Enlarger

sp_PlupAttachments Attachments
  • sp_PlupImage 2022-09-30_14-04-47.png (6 KB)
  • sp_PlupImage 2022-09-30_14-05-18.png (19 KB)
  • sp_PlupImage 2022-09-30_14-05-50.png (5 KB)
Avatar
Catalin Bombea
Iasi, Romania
Admin
Level 10
Forum Posts: 1810
Member Since:
November 8, 2013
sp_UserOfflineSmall Offline
20
October 1, 2022 - 2:54 pm
sp_Permalink sp_Print

Hi Sherry,

That error was solved, you are using an old version. Use the file sent on august 25

August 24, 2022 - 3:45 pm
My mistake:

Instead of :

MsgBox "No threaded comments found in " * wks.Name

Should be:

MsgBox "No threaded comments found in " & wks.Name

Here is another advice that is not applied in your latest file:

This line:

i=1

 should be above this line (outside any loop):
For Each wks In ThisWorkbook.Worksheets

Page: 12Jump to page
sp_Feed
Go to top
Forum Timezone: Australia/Brisbane
Most Users Ever Online: 245
Currently Online: Shanna Getschel, andria young, RAMEZ ATTAR, Bruce Tang Nian
Guest(s) 11
Currently Browsing this Page:
1 Guest(s)
Top Posters:
SunnyKow: 1432
Anders Sehlstedt: 871
Purfleet: 412
Frans Visser: 346
David_Ng: 306
lea cohen: 219
Jessica Stewart: 205
A.Maurizio: 202
Aye Mu: 201
jaryszek: 183
Newest Members:
Bruce Tang Nian
Scot C
Othman AL MUTAIRI
Misael Gutierrez Sr.
Attif Ihsan
Kieran Fee
Murat Hasanoglu
Brett Dryland
Saeed Aldousari
Bhuwan Devkota
Forum Stats:
Groups: 3
Forums: 24
Topics: 6222
Posts: 27293

 

Member Stats:
Guest Posters: 49
Members: 31918
Moderators: 3
Admins: 4
Administrators: Mynda Treacy, Philip Treacy, Catalin Bombea, FT
Moderators: MOTH Support, Velouria, Riny van Eekelen
© Simple:Press —sp_Information

Sidebar

Blog Categories

  • Excel
  • Excel Charts
  • Excel Dashboard
  • Excel Formulas
  • Excel PivotTables
  • Excel Shortcuts
  • Excel VBA
  • General Tips
  • Online Training
  • Outlook
  • Power Apps
  • Power Automate
  • Power BI
  • Power Pivot
  • Power Query
microsoft mvp logo
trustpilot excellent rating
Secured by Sucuri Badge
MyOnlineTrainingHub on YouTube Mynda Treacy on Linked In Mynda Treacy on Instagram Mynda Treacy on Twitter Mynda Treacy on Pinterest MyOnlineTrainingHub on Facebook
 

Company

  • About My Online Training Hub
  • Disclosure Statement
  • Frequently Asked Questions
  • Guarantee
  • Privacy Policy
  • Terms & Conditions
  • Testimonials
  • Become an Affiliate

Support

  • Contact
  • Forum
  • Helpdesk - For Technical Issues

Copyright © 2023 · My Online Training Hub · All Rights Reserved. Microsoft and the Microsoft Office logo are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. Product names, logos, brands, and other trademarks featured or referred to within this website are the property of their respective trademark holders.