Como insertar listas de nombres en determinada celda

Tengo una lista de nombres en la columna "U2aU23"y quiero que al escoger cualquiera de ellos se inserte en celda "F6" y así sucesivamente"F7"F8" etc... Que hago o que formula aplico para lograrlo

2 respuestas

Respuesta
3

Si se trata de ejecutar '... al escoger cualquiera de ellos ...' ya no podrá ser una fórmula sino que se necesita una macro que se ejecute al Seleccionar una celda.

Debes entrar al Editor de macros (Alt+F11, o desde la ficha Programador/Desarrollador, Visual Basic.

Como se trata de un Evento de HOJA, selecciona con doble clic el objeto Hoja, donde tengas estas tablas y copia alguno de los 2 códigos.

Como no quedó muy en claro si debe rellenar toda la col F con el dato seleccionado o solo de a una celda por vez, te dejo los 2 códigos. En las imágenes observarás el resultado.

1er Caso:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'se ejecuta al seleccionar una celda de la col U
If Not Intersect(Range("U2:U23"), Target) Is Nothing Then
    'se pasa el valor seleccionado a la primer celda libre en col F (F6:F20)
    x = Range("F21").End(xlUp).Row + 1
    If x > 20 Then Exit Sub     'ya se rellenó todo el rango
    If x < 6 Then x = 6         'la primer fila debe ser 6
    Range("F" & x) = Target.Value
End If
End Sub

2do Caso:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'se ejecuta al seleccionar una celda de la col U
If Not Intersect(Range("U2:U23"), Target) Is Nothing Then
    'se rellena todo el rango de la col F con el valor seleccionado
    Range("F6:F20") = Target.Value
End If
End Sub

En videos N° 45 al 47 de mi canal explico los principales Eventos de HOJA.

Sdos y no olvides marcar una valoración para dar por cerrada la consulta si el tema queda resuelto.

Respuesta
1

[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

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro
  5. Regresa a la hoja de excel y selecciona un valor de las celdas U2 a U23
  6. En automático se empezarán a llenar las celdas.

Vídeo recomendado:

Excel buscarv. Curso de excel, excel - YouTube

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas