** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - buscar y pasar valores de una hoja a otra (bis)
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradobuscar y pasar valores de una hoja a otra (bis)

 Responder Responder
Autor
Mensaje
acilu55 Ver desplegable
Asiduo
Asiduo


Unido: 27/Septiembre/2011
Estado: Sin conexión
Puntos: 214
Enlace directo a este mensaje Tema: buscar y pasar valores de una hoja a otra (bis)
    Enviado: 02/Diciembre/2021 a las 21:08
sdgm me propuso una posible solucion al problema de copiar alguon datos de una hoja a otra en funcion de la coincidencia de valores entre dos columnas

Sub BuscarMunis()
    Dim Ult As Long
    Sheets(1).Activate
    Range("A:A").Clear
    Ult = Cells(Rows.Count, 2).End(xlUp).Row
    Range(Cells(1, 1), Cells(Ult, 1)).Formula = _
          "=IFERROR(VLOOKUP(B1,Hoja2!A:C,3,FALSE),"""")"
End Sub

he tenido que cambiar un poco el codigo por una razon: no quiero borrar la columna A por que contiene datos, solo quiero sustituir algunos en llos que  la columna b esta en la hoja 2 pero el resto deben mantenerse, para ello uso una formula en una columna auxiliar (en este caso la 13) para colocar 0 en los que no quiero borrar y el valor correcto en los que debo modificar. La rutina a quedado de este modo, lo que me ahorra el paso por access y por tanto bastante tiempo

Sub BuscarMunis()
    Dim ult As Long
        ult = Cells(Rows.Count, 2).End(xlUp).Row
    Sheets(1).Activate

   'escribo los valores que necesito en la columna 13 mediante una formula  que dara 0 si no existen

    Range(Cells(2, 13), Cells(ult, 13)).Formula = _
          "=IFERROR(VLOOKUP(B1,Hoja2!A:b,2,FALSE),)"

   ' copio los valores distinto de 0 en la columna A

For n = 2 To ult
    If Cells(n, 13).Value <> 0 Then
        Cells(n, 1).Value = Cells(n, 13).Value
    End If
Next

'elimino las formulas de la columna 13

 Range(Cells(2, 13), Cells(ult, 13)).Delete

End Sub

con lo que ahorro un monton de pasos intermedios entre acces y excel. Mil gracias a todos

Si no hay comentarios o mejoras al codigo podeis cerrar el hilo.
Gracias a todos de antemano
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable