Q:

Capturing multiple usernames

I am working in an excel file which will be circulated to many users to get their approvals ( username as evidence ) . So I created a dropdown menu, if the user give yes then , the respective username need to be captured as approval evidence.

The VBA I used , refer below
Function GetUserName() As String
    'GetUserName = Environ$("username")
    'or
    GetUserName = Application.UserName
End Function

and in the cell i used =Getusername() as property
Now the real problem, assume I am one of the approver giving "yes" for approval, the above VBA and formula capture my username as evidence. Then I am mailing the excel file(which i gave yes and my username captured as evidence) to another approver, While he opening the excel file , the approval given by me changing and capturing the current username (the another approver username) as evidence. I dont know how to avoid this conflict.
Solution I am expecting, overall three approvers need to approve the excel file, and their corresponding username have to be captured as evidence.
Experts help is needed

A:

As Tim Williams correctly says, you need to capture the username as a static value. In a nutshell, you need to define a destination cell for each combobox, then use something along the lines of
DestinationCell.Value = Application.UserName

Here is one straightforward, simple approach:
Private Sub ComboBox1_Change()

    Dim DestinationCell As Range
    
    Set DestinationCell = ActiveSheet.Cells(2, 2)
    If ComboBox1.Value = "Yes" Then DestinationCell.Value = Application.UserName

End Sub

Alternatively you can define the destination cell in relation to the LinkedCell of the combobox, like this:
Set DestinationCell = ActiveSheet.Range(ComboBox1.LinkedCell).Offset(0, -2)

