Saltar al contenido

Copiar pero sin poner los datos duplicados (modificacion al codigo)


spardante

Recommended Posts

Hola a todos espero este bien, vengo con otro problema que me surge pidiéndoles su ayuda y conocimiento.

problema: tengo una macro (gracias a compañeros del foro y de mi escuela lo eh adaptado) que copia los datos de otros 2 libros y todo va bien hasta ahi, pero lo que no logro quitar es que me pone los datos que están desde un principio registrados en los 2 libros. Por ejemplo los 2 libros de donde copio los datos estan en constante actualización (diario) que hoy se registran 4 datos, entonces copio esos 4 dtos a mi libro donde junto la informacion de ambos, al dia siguiente se registran 7 datos nuevos, entonces es ahi donde quiero solo copiar esos nuevos 7 datos sin que copie los 4 que ya agregue anterior.

me dijeron que con un like o algo asi lo podría hacer pero la verdad soy muy torpe en el desarrollo de la programación por eso acudo a ustedes ya que tienen mas conocimiento de esto.

este es el codigo:

Sub leer_fichero_excel()
Application.ScreenUpdating = False
On Error Resume Next
ruta = ThisWorkbook.Pathfichero = "USC.xlsx"
Set Conn = New ADODB.ConnectionConn.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:H"
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, 10) = rs(2)
ActiveCell.Offset(1, 11) = rs(3)
ActiveCell.Offset(1, 8) = rs(4)
ActiveCell.Offset(1, 4) = rs(5)
rs.MoveNext

ActiveCell.Offset(1, 0).SelectLoop
rs.CloseConn.CloseSet rs = NothingSet
Conn = Nothing
Application.ScreenUpdating = True
End Sub
[/PHP]

de antemano gracias por su ayuda

Saludos.

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

A las 15:21 publicaste tu consulta en un Foro:Consulta1, y a las 16:24 la volviste a publicar en este mismo Foro.

¿Te parece una buena idea, Spardante, que siendo estos servicios gratuitos, voluntarios y solidarios, puedas aprovecharte de la buena voluntad de toda la comunidad exceliana para satisfacer tu necesidad?...

Si estos servicios tuviesen un costo, ¿harías lo mismo?

Sigo pensando que aprovecharse de esta circunstancia, no resulta -para nada- "simpático".

Enlace a comentario
Compartir con otras webs

Hola Cacho R, siento mucho pero no crei que fuera penado el publicar y pedir ayuda en diferentes foros y si pertenecen al mismo grupo lo siento no fue mi intension hacerlo, pero contestando tu pregunta de que si lo haria aunque tuviera costo; claro si que lo haria por que se que en estos foros hay personas que saben mas que yo y me pueden ayudar a resolver un problema que tengo dandome tantas vueltas y que para mi aun me es complicado desarrollar; se que tambien hay muchas personas en mi mismo caso, pero eh visto preguntas en el foro que yo he hecho antes de igual forma y en ellas si han respondido en cuanto a las mias no y eh tenido que arreglarmelas (yo jamas eh pedido ayuda y no me gusta perdirla por lo mismo pero en algunas ocasiones hasta el mas sabio la necesita) para resolverlo solo una que otra me fueron respondidas (en una que fue muy util tu ayuda y lo agradezco) pero bueno no hare de nuevo eso y espero que cuando publique en un foro haya una buena ayuda, como un administrador me de aqui me comento que no todos saben o responden algunas cosas esta bien eso lo se pero como comente hay algunas preguntas que me parecen algo tontas o iguales a las mias y si se responden pero en fin no vuelvo hacerlo Cacho y gracias por tus comentarios y ayuda.

Saludos.

Enlace a comentario
Compartir con otras webs

Buenas.

No es penado eso y como bien dices, ni es obligatorio responder ni todos sabemos. Aquí es de tener paciencia igual que en los otros foros.

En todo caso, si tú mismo tienes respuesta o hayas la solución, no estaría de más que la pusieras, que tampoco es obligatorio, claro, aunque sí avisar que ya está resuelto.

Saludos spardante / Cacho R

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

Mira Spardante:

La palabra que resume el comportamiento más adecuado, la mencionaba Julibaga: paciencia.

O sea:

¿Te responden adecuadamente en el primer Foro en el que consultas?... ¡Brillante!

¿No te contestan en el primer Foro en el que consultas?... Te pasas a otro Foro.

¿No te contestan convincentemente en el primer Foro en el que consultas?... Te pasas a otro Foro.

y así sucesivamente.

Fíjate que el mensaje subliminal que brindas a los Foros en los que consultas SIMULTÁNEAMENTE sería: - "Cómo es posible que Uds. no sepan resolver lo mío, entonces lo publico en varios lados"...

¡Vaya con el mensaje!, ¿Verdad?...

A lo mejor conscientemente no piensas así y ha resultado que -tan sólo- no lo habías visto de ese modo. En tal caso: hemos aprendido algo nuevo, ¿verdad?

Saludos Spardante / Julibaga.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 97 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas a todos, trato de transponer o pivotar el archivo que adjunto. El archivo tiene 3 columnas ( en este caso, como pueden ser más 😞 Cód.artículo, Cód.características y Valor. El objetivo es dejar como primera columna el Cód.artículo y como fila de encabezado Cód.características, y luego cruzando datos con Valor. No sé si me he explicado bien Gracias de antemano. Libro1.xlsx
    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.