What I am driving at is that for each Worksheet, you have Names associated with Cells or Rows of data or Columns of data. It takes different logic to handle single cell names vs Names that reference multiple cells. I assume that your application is using a single cell per name?
If so, what you need to do is assign a name to each cell that corresponds to the name you might see adjacent to the cell. Do you follow? Then we can do this...
1. Select the cell containing the Field Name and the adjacent cell where the data will be stored.
2. Slect Menu Item Insert/Name/Create and check to see that the CheckBox reflects the relative position of the Field Name to the data.
3. Then we can loop thru all the Names as follows...
You have to set up a userform with a listbox, a textbox and a button.
The list box lists all the enpty fields. When you make a selection from the listbox, the cell is selected and the focus changes to the textbox.
The textbox is where you enter the required data. Hit the button to put the data in the selected cell.
Then the item is removed for the listbox.
Code:
Dim iListIndex As Integer
Private Sub CommandButton1_Click()
With UserForm1.TextBox1
If Not IsEmpty(.Text) Then
ActiveCell.Value = .Text
End If
End With
UserForm1.ListBox1.RemoveItem iListIndex
End Sub
Private Sub ListBox1_Click()
With UserForm1.ListBox1
Application.Goto Reference:=.Text
UserForm1.TextBox1.Text = ""
iListIndex = .ListIndex
End With
UserForm1.TextBox1.SetFocus
End Sub
Private Sub UserForm_Activate()
For Each Name1 In ActiveWorkbook.Names
Application.Goto Reference:=Name1.Name
If IsEmpty(Selection.Value) Then
UserForm1.ListBox1.AddItem Name1.Name
End If
Next
End Sub
Hope this helps

Skip,
metzgsk@voughtaircraft.com