Jump to content
lphant

Buscar y rellenar datos

Recommended Posts

Buenas tardes chic@s;

Quien me puede ayudar a intentar hacer lo siguiente:

En un libro Excel tengo 2 hojas, una se llama “seguimiento” y la otra se llama “datos”.

Lo que necesito es que la hoja “seguimiento” se actualice con los datos de la hoja “datos”.

Los datos comunes entre las hojas serias:

En la hoja “seguimiento” la fila 2 y en la hoja “datos”  serian la columna A.

Gracias J

Libro1.xls

Share this post


Link to post
Share on other sites

Hola Iphant, gusto en conocerte. Pues básicamente desear copiar datos de una columna de la hoja "datos" a una fila de la hoja "seguimiento". Básicamente el código VBA para hacer esto sería:

    If S1.[A2] = "" Then
        N = 0
        Exit Sub        '<-- si N = 0, no hay datos que transferir
    Else
        N = IIf(S1.[A2] <> "", S1.[A2].End(xlDown).Row - 1, 1)
    End If
	   'copiamos los datos
    For i = 1 To N
        S2.Cells(2, i + 1) = S1.Cells(i + 1, 1)
    Next
	

Iphant_Libro1.xls

Share this post


Link to post
Share on other sites
En ‎23‎/‎02‎/‎2017 at 1:42 , YoelMonsalve dijo:

Hola Iphant, gusto en conocerte. Pues básicamente desear copiar datos de una columna de la hoja "datos" a una fila de la hoja "seguimiento". Básicamente el código VBA para hacer esto sería:

 


    If S1.[A2] = "" Then
        N = 0
        Exit Sub        '<-- si N = 0, no hay datos que transferir
    Else
        N = IIf(S1.[A2] <> "", S1.[A2].End(xlDown).Row - 1, 1)
    End If
	   'copiamos los datos
    For i = 1 To N
        S2.Cells(2, i + 1) = S1.Cells(i + 1, 1)
    Next
	

 

Iphant_Libro1.xls

Buenas YoelMonsalve;

Estoy probando el excel que me pasastes pero algo me falta, no se copian los datos.

Me podrias echar una mano??.

Gracias.

Un saludo,

Share this post


Link to post
Share on other sites

Iphant, los datos deberían actualizarse automáticamente, al modificar cualquier valor en la columna A de la hoja Datos.

Pero requieres "Habilitar las macros" en Excel, para que pueda funcionar. Habilitaste las macros?

Share this post


Link to post
Share on other sites
Hace 14 horas, YoelMonsalve dijo:

Iphant, los datos deberían actualizarse automáticamente, al modificar cualquier valor en la columna A de la hoja Datos.

Pero requieres "Habilitar las macros" en Excel, para que pueda funcionar. Habilitaste las macros?

Buenas, no se me actualiza.

no se que hago mal.

tengo habilitadas las macros y modifico los datos de la columna A.

gracias.

Share this post


Link to post
Share on other sites
Hace 8 minutos , lphant dijo:

Buenas, no se me actualiza.

no se que hago mal.

tengo habilitadas las macros y modifico los datos de la columna A.

gracias.

no me habia dado cuenta de que el nombre de la hoja esta en minuscula en vez de mayuscula.

ahora si actualiza la fila 2 pero los demas datos de la hoja de seguimiento no.

gracias.

Share this post


Link to post
Share on other sites

Disculpa, pensé que te referías sólo a la columna en amarillo. Revisa ahora, con las modificaciones menores realizadas debería funcionar como querías.

Por cierto, desde la hoja Datos sólo transfiere valores ubicados en las columnas A hasta E, pero no fuera de ese rango. No se si querías ampliar el rango o está bien así. Saludos.

 

Iphant_Libro1.xls

Share this post


Link to post
Share on other sites

Hola

 

Perdon por no aportar cuando lo prometí.

Le dejo mi aporte, si este es el que buscas. :

Dim I As Integer
Dim J As Integer
Dim Lin As Integer


Lin = 2

    Do While Hoja2.Cells(Lin, 1) <> ""


        For I = 1 To 4
        
            For J = 1 To 6
            
            
                    If Hoja2.Cells(Lin, 1) = Hoja1.Cells(2, 1 + J) Then
            
                       Hoja1.Cells(2 + I, 1 + J) = Hoja2.Cells(1 + J, 1 + I)
                        
                    End If
            
            Next J
            
        
        
        Next I
        
    Lin = Lin + 1
    Loop

Saludos.

Share this post


Link to post
Share on other sites

Buenos días a tod@s;

He estado probando lo que me habéis pasado y funciona pero no hace lo que yo quería.

Puede que no me explicara bien.

Lo que necesitaba era como un buscarv, es decir, que el dato de la fila 2 de la hoja” Seguimiento” se buscara en la columna A de la hoja “Datos” y se pusiera en la fila/columna correspondientes dependiendo si es ciudad, color, etc…los datos correspondientes.

Gracias a tod@s.

Un saludo,

Share this post


Link to post
Share on other sites

Hola @lphant

Hace 3 horas, lphant dijo:

era como un buscarv,

Fijate si mi nueva propuesta es lo que deseas.

=INDICE(Datos!$A$1:$E$7,COINCIDIR(B$4,Datos!$A$1:$A$7,0),COINCIDIR($A5,Datos!$A$1:$Z$1,0))

Por favor, en la próxima consulta recuerda que si deseas la solución con fórmulas debes ingresar la misma en el foro de Excel General => LINK .

Que tengas una buena jornada!

ae20170227Libro1.xls

Share this post


Link to post
Share on other sites
Hace 2 horas, tierra_pampa dijo:

Hola @lphant

Fijate si mi nueva propuesta es lo que deseas.


=INDICE(Datos!$A$1:$E$7,COINCIDIR(B$4,Datos!$A$1:$A$7,0),COINCIDIR($A5,Datos!$A$1:$Z$1,0))

Por favor, en la próxima consulta recuerda que si deseas la solución con fórmulas debes ingresar la misma en el foro de Excel General => LINK .

Que tengas una buena jornada!

ae20170227Libro1.xls

buenas tardes;

Lo de buscarv era para explicar el funcionamiento que queria pero lo que necesito es con macro sin formulas.

Gracias por el aporte.

Un saludo,

Share this post


Link to post
Share on other sites

Ok, entonces la idea es consultar en la hoja Datos, por el código en la fila de amarillo de la hoja Seguimiento, y si encuentra coincidencia, rellenar los campos correspondientes en Datos.

En ese caso ya no necesitamos la macro CopiarDatos() del Módulo 1 (aunque la conservé en el libro por si acaso), todo se puede programar en el evento Worksheet_Change() de Seguimiento.

Ahora edita los campos en la fila amarilla de Seguimiento, y se actualizará la columna. Adicionalmente le puse que si borras el código, se borre el resto de la columna (aunque no se si querías esto).

Iphant_Libro1.xls

Share this post


Link to post
Share on other sites
Hace 16 horas, YoelMonsalve dijo:

Ok, entonces la idea es consultar en la hoja Datos, por el código en la fila de amarillo de la hoja Seguimiento, y si encuentra coincidencia, rellenar los campos correspondientes en Datos.

En ese caso ya no necesitamos la macro CopiarDatos() del Módulo 1 (aunque la conservé en el libro por si acaso), todo se puede programar en el evento Worksheet_Change() de Seguimiento.

Ahora edita los campos en la fila amarilla de Seguimiento, y se actualizará la columna. Adicionalmente le puse que si borras el código, se borre el resto de la columna (aunque no se si querías esto).

Iphant_Libro1.xls

funciona de lujo.

muchinas gracias :)

Un saludo,

Share this post


Link to post
Share on other sites

Gracias a ti, y siempre a la orden. Mira también el código VBA, está bien ordenado y debidamente comentariado, para que si algún día prentendes estudiarlo puedas hacerlo, y aquí estaremos por cualquier duda.

Saludos.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Correcto, hasta hoy ni un problema, totalmente solucionado!
    • Ayuda especialistas, deseo Sumar varios Texbox en tiempo real, pero en los texbox1 +...+ texbox20,  tengan la coma separadora por miles (ejemplo si dígito 15650.52 se observe 15,650.52 ) al igual en el texbox resultado. De preferencia que no se visualice ningún formato de moneda ($) en ninguno de los texbox. gracias espero su respuesta.
    • Mauricio_ODN Gracias por tu aporte Saludos
    • Muchas gracias por el aporte   He estado trabajando en el registro tengo este codigo para agregar datos pero no logro que me los agregue favor ayuda para detectar el problema     Function ingesarDatos_01() As Boolean Dim sSQL As String Dim sSQLIngreso_01 As String Dim nResultado As Long Dim nFila As Double Dim rCelda As Range Dim sTexto As String ingesarDatos_01 = False '-------------------------------------------------------------------------------- 'obtenemos la ultima fila con datos '-------------------------------------------------------------------------------- '-------------------------------------------------------------------------------- 'Creamos el String de Ingreso de datos '-------------------------------------------------------------------------------- sSQL = "INSERT INTO 02_morosos (Cedula, Carpeta, Funcionario_1, Fecha_1, Numero_Patrono, Nombre_Patrono) " sSQL = sSQL & "VALUES ('" & Worksheets("Registro_01").Range("C9").Value & "', " sSQL = sSQL & Worksheets("Registro_01").Range("J2").Value & ", " sSQL = sSQL & Worksheets("Registro_01").Range("C6").Value & ", " sSQL = sSQL & "#" & Format(Worksheets("Registro_01").Range("F6").Value) & "#, " sSQL = sSQL & Worksheets("Registro_01").Range("C13").Value & ", " sSQL = sSQL & Worksheets("Registro_01").Range("E13").Value & ", " '-------------------------------------------------------------------------------- 'realizamos el ingreso de los datos para cada linea 'si todo salio OK, nResultado sera 0 '-------------------------------------------------------------------------------- If nResultado <> 0 Then MsgBox "Problemas al ingresar el registro", vbCritical, "SACI" Exit Function End If MsgBox "Datos actualizados con Exito!!!", vbInformation, "SACI" ingesarDatos_01 = True End Function  
    • Hola  @GR77 Te dejo una consulta como punto de partida, pero de la manera en que están construidas las tablas, por el momento trae registros duplicados, pero te dejo las consultas para que puedas ir conociendo el lenguaje. Sigo atento y trabajando. Saludos. Sub DatoAccess() Dim cn, rs As Object, strFile, strCon, strSQL As String DateI = Sheets(1).Cells(1, 11).Value DateF = Sheets(1).Cells(2, 11).Value strFile = ThisWorkbook.Path & "\datos.mdb" 'strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";" strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";" Set cn = CreateObject("ADODB.Connection") cn.Open strCon Set rs = CreateObject("ADODB.Recordset") strSQL = "SELECT DISTINCT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado  " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Clave = T3.Clave)" ''strSQL = "SELECT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Clave = T3.Clave)"           ''strSQL = "SELECT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado, T2.MontoDescto " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Clave = T3.Clave) " & _          "INNER JOIN Tabla2 T2 ON T1.Id = T2.Id " ''strSQL = "SELECT T1.Id, T1.Clave, T1.FechaMov, T1.MontoEsperado, T3.MontoPagado, T2.MontoDescto " & _          "FROM (Tabla1 T1 INNER JOIN Tabla3 T3 ON T1.Id = T3.Id) " & _          "INNER JOIN Tabla2 T2 ON T1.Id = T2.Id " & _          "WHERE T1.FechaMov BETWEEN DateI AND DateF" rs.Open strSQL, cn, 3, 3 Cells(2, 1).CopyFromRecordset rs 'Creamos encabezados For i = 0 To rs.Fields.Count - 1 titulo = rs.Fields(i).Name     Cells(1, i + 1) = titulo Next rs.Close cn.Close End Sub
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy