UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

sarah23


Hola,

Necesitaría una macro que realizase lo siguiente:

1.- Revisar la pestaña "I-IBEX" y comprobar si alguna fecha (columna A) NO existe en la pestaña "IBEX"
2.- En el caso de que no existiera, agregar la línea en cuestion (columnas A hasta G) a la última línea de 

la pestaña "IBEX", es decir a continuación del último registro.

Opcionalmente y si fuera posible, que agregase los registros ordenados por fecha creciente, aunque tampoco 

es muy importante porque luego los podría ordenar yo.

Muchas gracias
Archivos
macro para copiar datos.xlsx
No tienes los permisos para descargar los archivos.
(76 KB)

Igtelo


Hola Sarah.

Te va con macro
Lo puedes hacer manual con la fórmula que está en el archivo y aplicando filtro, así no usas macros...

Saludos
Ignacio Téllez
Archivos
Sarah23-Copiar datos.xlsm
No tienes los permisos para descargar los archivos.
(75 KB)

sarah23


Muchas gracias por tu respuesta tan rápida.
La macro me va muy bien, pero tengo un pequeño problema.
En realidad estoy utilizando varias hojas a copiar, siguiendo el mismo esquema del fichero; es decir voy a tener varias hojas origen (en el archivo de ejemplo I-IBEX) que cada una va asociada a un destino (en el ejemplo IBEX).
He intentado modificar la macro para que se repita por cada uno de los pares origen y destino, por ejemplo:

Sub copia()
Dim celda As Range

Sheets("I-IBEX").Select
For Each celda In [H4:H99999]
  If celda = "" Then Exit For
   If celda = "NO" Then
   celda.Offset(, -7).Resize(, 7).Copy _
 Sheets("IBEX").[A99999].End(xlUp).Offset(1)
 End If
Next

(para otro par de hojas seria)

Sheets("I-ORIGEN2").Select
For Each celda In [H4:H99999]
  If celda = "" Then Exit For
   If celda = "NO" Then
   celda.Offset(, -7).Resize(, 7).Copy _
 Sheets("ORIGEN2").[A99999].End(xlUp).Offset(1)
 End If
Next

End Sub


El problema, creo, es que al usar un rango dinámico, esta referenciado sólo a la pestaña que yo puse en el ejemplo inicial.
¿Se podría modificar la macro para que funcionase con varios pares (origen-destino) de hojas?. Es decir como ahora pero con más hojas.

Muchas gracias ¡

Igtelo


Hola Sara.

Tu pregunta inicial fue resuelta, no estés cambiando la pregunta, lee las normas del foro y recomendaciones para hacer preguntas.

En el adjunto ya no está el rango dinámico ni la fórmula, la macro la ejecutas con teclas CTRL+k, estando en cualquier hoja y hace todo...

Saludos
Ignacio Téllez
Archivos
Sarah23-2-Copiar datos.xlsm
No tienes los permisos para descargar los archivos.
(94 KB)

5RESUELTO Solucionado el 21/03/16, 06:40 am

sarah23


Funciona perfecto.

Muchas gracias ¡¡

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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