[Ho la anner romero y bienvenido a TodoExpertos!
Visita:
Cursos de Excel y Macros - YouTube
Pon el siguiente código en los eventos de tu hoja:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por Dante Amor
If Not Intersect(Range("U2:U23"), Target) Is Nothing Then
Dim c As Range, rng As Range
'
If Target.Count = 1 Then
Set rng = Range("F6:F20") 'rango de celdas disponibles
If WorksheetFunction.CountIf(rng, "") > 0 Then
Set c = rng.SpecialCells(xlCellTypeBlanks).Cells(1)
c.Value = Target.Value
Else
MsgBox "No hay celdas disponibles"
End If
End If
End If
End Sub
Si necesitas validar si el dato ya fue seleccionado previamente:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por Dante Amor
If Not Intersect(Range("U2:U23"), Target) Is Nothing Then
Dim c As Range, rng As Range, f As Range
'
If Target.Count = 1 Then
Set rng = Range("F6:F20") 'rango de celdas disponibles
Set f = rng.Find(Target.Value, , xlValues, xlWhole, , , False)
If f Is Nothing Then
If WorksheetFunction.CountIf(rng, "") > 0 Then
Set c = rng.SpecialCells(xlCellTypeBlanks).Cells(1)
c.Value = Target.Value
Else
MsgBox "No hay celdas disponibles"
End If
Else
MsgBox "El valor ya está seleccionado"
End If
End If
End If
End Sub
En cualquiera de los dos códigos ajusta el rango donde quieres poner el valor seleccionado en esta línea del código:
Set rng = Range("F6:F20") 'rango de celdas disponibles
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- En el panel del lado derecho copia la macro
- Regresa a la hoja de excel y selecciona un valor de las celdas U2 a U23
- En automático se empezarán a llenar las celdas.
Vídeo recomendado:
Excel buscarv. Curso de excel, excel - YouTube