Question: I'm trying to create a form to select a row from a table and show the information from specific cells in that table.

I want to make reading a lot of info in a table in Excel easier.

Screenshot of a quick example.  

[![enter image description here](https://i.stack.imgur.com/92xUV.jpg)](https://i.stack.imgur.com/92xUV.jpg)

I want the user to select a row e.g. 1, 2 or 3 and then the lists below show certain cell information.

For example if the user selects ID 2, the Task box should read "Make Dinner" and the outcome box should read "Burnt".

I eventually want to add the capability for the user to edit the Task and Outcome and then have a button to save over the original data.

Answer: 
So, if you simply want to set a textbox to the value from a listbox, it would go as follows:

```
Private Sub ListBox1_Change()
TextBox1.Text = ListBox1.List(ListBox1.ListIndex, 0)
End Sub

```

Of course, you would need to modify `TextBox1` and `ListBox1` to the appropriate name of your list and text boxes. Then, for `ListBox1.List(ListBox1.ListIndex,0)` set `0` to the correct column you want the textbox to match. 0 Would be the first column, 1 the second, and so on. ListIndex refers to the currently selected list item, so that does not require change.
You need an event that runs every time the user clicks within the ListBox, this is entered into the Userform's code window:

```
Private Sub ListBox1_Change()
    'do something with ListBox1.Value
End Sub

```

You can then react to which 'row' the user has clicked, using the `ListBox1.Value` - note, my ListBox is called ListBox1, yours might be something else.

You can use that value (row number) to locate the values to place in the Task and Outcome boxes.

Then you just write to the boxes, like so:

```
Me.Task1.Value = <value you want here>
Me.Outcome1.Value = <value you want here>

```

Again, my boxes are called `Task1` and `Outcome1` - change them to your naming convention.