............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

copiar datos pero sin poner los ya agregados (duplicados)

Ver el tema anterior Ver el tema siguiente Ir abajo

copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por spardante el Mar Ago 02, 2011 4:49 pm

Hola a todos soy nuevo en el foro y buscando en el vi que hay muchos temas buenos que incluso no sabia que se hacían pero bueno gracias a los expertos y conocedores del excel.

Acudo a ustedes para solucionar un problema que tengo con una macro que he desarrollado (y tambien gracias a varios compañeros que me ayudaron a corregir unos errores para lo que queria hacer) el problema es el siguiente.

funcion de la macro: tengo 3 libros de los cuales 2 de ellos se almacenan registros diariamente y en el tercero copio los datos de ambos libros para tener una informacion completa, todo esto funciona bien hasta ahi.

problema: surge cuando copio los datos lo que hace es que me copia datos que ya eh agregado anteriormente al tercer libro donde se junta la info.

lo que quiero solucionar: un ejemplo, el dia de hoy se agregaron 4 registros en un de los 2 libros, estos los copio al tercer libro y listo, al siguiente dia se agregan 7 registros nuevos, entonces quiero solo agregar eso 7 registros nuevos sin que me copie los 4 que ya estaban; los datos de esos registros puestos en los 2 libros no los puedo borrar debido a que de ellos se crean reportes de control por separado ya que los libros los manejan áreas diferentes.

espero me puedan apoyar ya que eh buscado por internet y otros foros y no logro encontrar la solución a este problema, cabe mencionar que no soy muy bueno en esto de la programación


codigo de la macro

Código:
Sub leer_fichero_excel1()

Application.ScreenUpdating = False
On Error Resume Next
ruta = ThisWorkbook.Path
fichero = "COND.xlsx"

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                  "Data Source=" & ruta & "\" & fichero & _
                  ";Extended Properties=""Excel 12.0;HDR=Yes;"""
Set rs = New ADODB.Recordset

Sql = "SELECT * FROM B3:J"
rs.Open Sql, Conn, adOpenStatic, adLockOptimistic
Cells(Rows.Count, "G").End(xlUp).Offset(, -4).Select

Do While Not rs.EOF
    ActiveCell.Offset(1, 13) = rs(0)
    ActiveCell.Offset(1, 12) = rs(1)
    ActiveCell.Offset(1, 7) = rs(2)
    ActiveCell.Offset(1, 10) = rs(3)
    ActiveCell.Offset(1, 11) = rs(4)
    ActiveCell.Offset(1, 8) = rs(5)
    ActiveCell.Offset(1, 4) = rs(6)

    rs.MoveNext
    ActiveCell.Offset(1, 0).Select
Loop

rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
Application.ScreenUpdating = True
End Sub


Gracias de antemano y saludos.

spardante

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : México
Version de Excel : 2007
Fecha de inscripción : 02/08/2011

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por Cacho R el Mar Ago 02, 2011 8:05 pm

Me parece que esta consulta la ví en algún -que otro- Foro:

--> [Tienes que estar registrado y conectado para ver este vínculo]

¿Veríamos el mismo abuso si las consultas fuesen con costo?...
¡Qué tema, ¿no?!
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por moises melgar el Mar Ago 02, 2011 8:43 pm

hola Una solucion simple:
Se me ocurre un simple control en la hoja donde acumulas los datos, para enseñarle al codigo desde que rango debe copiar los datos.
Código:
Sql = "SELECT * FROM B3:J"
en vez de "3"
colocarle un control que determine en que fila se encuentra el ultimo dato copiado antes de ejecutar la macro y que este se actualice despues de ejecutada la macro
(al ver el codigo)
determino
Código:
Sql = "SELECT * FROM B" & dat & ":J"
dat = Range("C1").Value <----- dato que muestra la ultima fila del libro
fila1 =ultima fila antes del traspaso
Do While....loop <----este es el bucle del codigo que se encarga de "copiar" y acomodar los datos
fila2 = ultima fila despues del traspaso
Range("C1") = Range("C1").Value + fila2 - fila1[/code]
donde dat seria igual a la diferencia entre la ultima fila antes del traspaso y la ultima fila despues del traspaso, este se acumularia
Seguro existe otra forma pero por el momento una simple se me ocurre esta
ah y claro que que Range("C1") podria colocarse ne otro ladopara que no lo muevan como por ejemplo en la hoja2 (segun el explorador de proyecto de VBA) quedando como hoja2.Range("C1") = hoja2.Range("C1") + fila2 - fila1
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 555
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por moises melgar el Mar Ago 02, 2011 9:08 pm

Cacho R escribió:Me parece que esta consulta la ví en algún -que otro- Foro:

--> [Tienes que estar registrado y conectado para ver este vínculo]

¿Veríamos el mismo abuso si las consultas fuesen con costo?...
¡Qué tema, ¿no?!

Orale..... pues que puedo decir...pues no sera el primero y seguro tampoco el ultimo, y se podria decir que "no se" al igual que la edad y la profesión no son escusas, espero que spardante no sea un miembro que pase nada mas volando por el foro, ya que al principio yo igual pregunte en dos foros una cuestion sobre macros "crear funciones para excel" y como me gusto mucho la respuesta de Tatayayan y gali aqui me quede aprendiendo de todos y para todos.
En lo personal considero a este foro uno de los mas acogedores que Existe.
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 555
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por Cacho R el Mar Ago 02, 2011 10:29 pm

Comprenderás que no se trata de un tema técnico, mi estimado Moises, sino ético.

Es decir: aprovechándome de la buena voluntad que existe en los distintos Foros para solucionar de un modo gratuito problemas informáticos, ¿A cuánta gente es ético involucrar simultáneamente para que se ocupen de mi problema? (si se ocupan de mi problema, no se ocupan del problema de otro, ¿eso está claro, verdad?)...

Fíjate que distinto es que uno consulte en un Foro y recién si después de un tiempo prudencial no obtengo la respuesta que necesito, paso a buscar ayuda en otro Foro.

¡No me parece un tema menor!, ciertamente.

De hecho: es lo más habitual del mundo que te apliques a elaborar una respuesta, y quien preguntó te contentesta al cabo de 10/15 días (si es que te contesta) que ya obtuvo la solución en otro Foro.
Pregunto: ¿Eso está bien?...

¿Se entiende, entonces, que el problema no es consultar en distintos Foros, sino que la simultaneidad de las consultas es la actitud que -aquí- descalifico?.

Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por spardante el Miér Ago 03, 2011 1:26 pm

Fíjate que distinto es que uno consulte en un Foro y recién si después de un tiempo prudencial no obtengo la respuesta que necesito, paso a buscar ayuda en otro Foro.

Buen dia moises gracias por tu ayuda lo checare y te comento como funcionan los cambios para que quede bien.


En cuanto al comentario del compañero Cacho R (quien me a ayudado en otra ocasion) exactamente eso fue lo que hice pero nunca se respondio mi pregunta y por eso acudi a otro foro yo creo que lo que estaria mal fuera que en realidad me hicieran toda la macro y que yo no haga nada como lo eh visto en muchos casos de otros foros y este y que nunca le dicen nada a la persona pero bueno cada quien tiene su forma de ver las cosas y catalogar lo que es malo para si mismo y bueno no estoy de paso por ningun foro como lo comente tambien estoy aqui para ayudar en lo que sepa y pueda y si hay una persona que haga lo mismo que yo lo ayudare.


Saludos.

spardante

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : México
Version de Excel : 2007
Fecha de inscripción : 02/08/2011

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por moises melgar el Miér Ago 03, 2011 2:01 pm

Bienvenido a excelgali, puedes revisar el indice del foro ahi se encuentra el temario de aqui con todos los mensajes que se han publicado.
En lo personal en los foros si se aprende mucho si uno se esfuerza mucho, para esto de los codigos no existe una formula magica ya que al igual que en la vida todo es perceverancia y trabajo duro.
ahh como una frase de Rock Lee (de la serie naruto)
"El trabajo duro vence al talento natural"
Te deseo suerte
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 555
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por spardante el Jue Ago 11, 2011 12:27 pm

Que tal moises disculpa la demora de esta consulta pero trataba de comprender tu codigo ya que me tiraba algunos errores medio extraños hasta que me salio bien, y la verdad es muy bueno tu metodo no lo habia visto de esa manera que en una casilla te indique la ultima fila que contiene datos, pero lo que vi es que tienes que apretarle 2 veces al boton para que te muestre la fila real hasta donde hay datos no se si esto se pueda quitar o cambiar.

Ahora otro metodo que se me habia ocurrido seria agregar un campo de fecha en que se agregan los datos y que por medio de esos datos agregue los datos de ese dia aunque no se como desarrollar el codigo para hacerlo te adjunto como ha quedado con la sugerencia que me diste anteriormente y gracias por tu ayuda.

Saludos.

Archivos
Ejemplo.zip No tienes los permisos para descargar los archivos.(44 KB) Descargado 13 veces

spardante

Masculino Cantidad de envíos : 4
Edad : 30
Ciudad - Pais : México
Version de Excel : 2007
Fecha de inscripción : 02/08/2011

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por moises melgar el Jue Ago 11, 2011 4:36 pm

spardante:
....pero lo que vi es que tienes que apretarle 2 veces al boton para que te muestre la fila real....
Pues la verdad esa fila se calcula con pura matematicas, claro se debe marcar antes de iniciar el codigo la ultima vacia, y esta aumenta despues del codigo si es que en el libro CMD existen datos despues de ese valor.
JAJAJA lo que pieso es que en vez de COLOCARLE el nombre de "fila del Ultimo dato del libro CNOD:"
debi colocarle como "ultima fila leida o transportada"
Solo para Aclarar

Y si se puede cambiar o quitar.....no por que esta celda la uso como referencia para la macro.....para que el rango de transportacion siempre sea apartir de una fila de mas del ultimo dato transportado, pero si la puedes colocar en otro lugar como en una hoja muy oculta, ya que no es importante el lugar de la celda ...solo el dato de esa celda.

Solo es cuestion de adaptar el rango en la macro.
Ahh y gracias por responder y subir tu archivo.

avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 555
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: copiar datos pero sin poner los ya agregados (duplicados)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.