Saltar al contenido

copiar hoja de un archivo en otro


Recommended Posts

Agradeciando de antemano la ayuda que me puedan dar a lo siguiente:

tengo un archivo con una macro elaborado por gerson , el cual copia de la hoja1 a la hoja2 las filas que cumplan una codicion. Quisiera ver si me audan a modificar ese macro para que se copiara la hoja1 en otro archivo llamado "concentrado".

adjunto archivo venta .

gracias por su ayuda

jesus gomez v

ventas.xls

Enlace a comentario
Compartir con otras webs

Buenas, tremo

No termino de entender si el archivo llamado "concentrado" ya existiría y sería cuestión de pasar la información a una hoja nueva ó por el contrario quieres que se cree ese nuevo archivo y se copien los datos que haya en la Hoja1.

En ambos casos, pienso que no será difícil hacer la modificación.

Un saludo,

Tese

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

Te diré, amigo tremo, cual es la información que te faltó proporcionar:

- Rango de los datos de entrada (entre otras cosas hay que ver si tienen o no encabezados)

- El archivo receptor: ¿Se encuentra abierto o cerrado?

- Suponiendo que estuviese cerrado: ¿Donde se encuentra ubicado?

- El archivo receptor, ¿Cuántas hojas tiene?, ¿En cuál de ellas deseas pegar la información?

- ¿A partir de que columna y fila deseas que se pegue la información?

Te diría que subas al Foro un ejemplo que refleje mejor y con mayor claridad todas las cuestiones que has omitido detallar.

Saludos, Cacho R.

P.D.

Por cierto: ¡Olvídate del ejemplo de Gerson pues no tiene vinculación alguna con tu necesidad!, ¿Lo has notado? ¿No?...

Enlace a comentario
Compartir con otras webs

tese1969 y CACHO R : gracias por reponder a mi pregunta , anexo un archivo con la informacion real que es la que quiero copiar en el mismo respondo a las preguntas que me hacen a la falta de informacion inicial.

gracias

jesus gomez

- - - - - Mensaje combinado - - - - -

no podia anexar el archivo pero aqui esta

ventas bd.xls

Enlace a comentario
Compartir con otras webs

Buenas, Tremo

Me vas a decir que soy un poco pesado, pero creo que no estaría de más que adjuntaras también el archivo "Concentrado" en formato .xls, para poder hacer las comprobaciones.

Además, por tu explicación entiendo que ese archivo debe tener más datos "históricos" y que sólo te interesa ir añadiendo los que cada día vas incluyendo.....te lo digo porque si al final fuera simplemente una copia de uno en otro no tendría la cosa mucho misterio...jejeje

A ver si viendo los 2 ya me queda claro.........

Disculpa tanta pregunta.....

Un saludo,

Tese

Enlace a comentario
Compartir con otras webs

Bueno, Tremo

Parece que el gran día ya llegó.....jejejeje

Me he tomado la licencia de señalar de alguna manera los registros que se pasan al archivo concentrado. En la columna "P" les pondrá una "R" (de registrado).

De esa manera, y suponiendo que tras pasar registros a "Concentrado" puedes seguir utilizando la misma hoja de registros (ventas bd), cuando vea en alguno esa letra, pasará de largo y se centrará en los que no la tienen, que son los que debe pasar.

No te olvides de modificar en el código la extensión ".xls" por la que tenga tu sistema ".xlsm"

Doy por hecho que ambos ficheros están en la misma ruta, aunque "Concentrado" esté cerrado.

Este código está incluido en un módulo en el fichero ventas bd que te adjunto:


Sub pasar_a_concentrado()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ventas_diarias = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path & "\"
Workbooks.Open (ruta & "CONCENTRADO.xls")
Workbooks(ventas_diarias).Activate
For Each registro In Range("a2:a30000")
If registro = "" Then GoTo Fin:
If registro.EntireRow.Columns("p") <> "R" Then
numeroreg = numeroreg + 1
registro.EntireRow.Columns("a:o").Copy
Workbooks("CONCENTRADO.xls").Activate
With Sheets("ACUMULADO").Columns("a")
Set c = .Find("")
libre = c.Row
Range("a" & libre).PasteSpecial
End With
registro.EntireRow.Columns("p") = "R"
Application.CutCopyMode = False
End If
Next registro
Fin:
Workbooks("CONCENTRADO.xls").Close (True)
Application.ScreenUpdating = True
MsgBox "Se han traspasado - " & numeroreg & " - registros.", vbInformation, "Fin del proceso"
End Sub

[/CODE]

De todos modos, si te surge alguna duda en los cambios o algo, me lo comentas........

Un saludo y espero que te funcione..........a mí aquí me va de maravilla.....jejeje

Tese

ventas bd.rar

Enlace a comentario
Compartir con otras webs

Tese : En verdad muchas gracias por todas las molestias que te tomastes en responder a mi preguntas. Esta perfecto. Quedo muy agradecido contigo. Reibe un saludo afectuso de mi parte desde leon, gto mexico.

Pd. Tambien agradesco a cacho r por sus preguntas para aclarar mi petision

jesus gomez

doy por soucionado la pregunta

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 96 ¿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

    • Hi Trate de ver que hacían las fórmulas en cuestión pero a su libro le falta o le faltan hojas, por lo que solo podría participar con un par de ideas en general. Lo que entiendo es que según el valor de B3 en C3 debe poner una fórmula u otra, así que es posible que si combina DIRECCION() con INDIRECTO() pueda intercambiar de una fórmula a otra. =SI(B3="Xl",INDIRECTO(DIRECCION(3,5)),SI(O(B3=1,B3=2,B3=3),INDIRECTO(DIRECCION(4,5)),"")) Otra forma sería poner nombre a esas fórmulas en el cuadro de nombres para que las pueda mandar llamar a una o a la otra según el resultado de B3. Por favor tome en cuenta, es solo una idea.
    • Buenas tardes! Tengo el siguiente código: Private Sub btnCargaBancos_Click() Dim TasaCompra, TasaVenta As Double Dim InvBanesco, InvVzla, MontoBanesco, MontoVzla As Double Dim TasaDiaBan, TasaDiaVzla, TasaActual As Double 'Inversion = Val(txtInversion.Text) InvBanesco = Val(CDbl(txtInverBanesco.Text)) InvVzla = Val(CDbl(txtInverVzla.Text)) TasaCompra = Val(CDbl(txtTasaCompra.Text)) TasaVenta = Val(CDbl(txtTasaVenta.Text)) MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055)      TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then     TasaActual = TasaDiaBan Else     TasaActual = TasaDiaVzla End If MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco.Value = MontoBanesco txtBcoVenezuela.Value = MontoVzla txtTasaDiaria.Value = TasaActual End Sub   Como se puede apreciar InvBanesco ,  InvVzla , TasaCompra y TasaVenta, son valores que introduce el usuario a través de los respectivos cuadros de texto. Tengo los siguientes problemas: a. Las fórmulas no se ejecutan correctamente (pareciese que no reconociese los números entrados vía cuadros de texto). b. Al darle valor cero (0) a cualquiera de los valores de InvBanesco o  InvVzla, me genera un error en TasaDiaBan o TasaDiaVzla (según sea el caso), aunque, como se puede apreciar, debería generar un valor cero (0). Como dije en mi presentación estoy empezando en esto de la codificación...y quiero aprender de Uds! Agradezco su ayuda! Nota: lamentablemente el fichero es mas grande de lo permitido y no pude anexarlo.  
    • Hola buenas tardes. En una hoja plantilla donde realizo diferentes consultas de datos. tengo ya establecido dos formulas diferentes con función SI y buscar. estos buscan diferentes rangos de datos y recibendiferentes resultados. Cada formula varia según una palabra o numero  ejemplo si pongo Xl pone la formula 1 y si pongo cualquier numero entre 1 y 3 pone la segunda formula. Lo que necesito hacer es que si en una celda de la columna B3 pongo XL debería de considerar la formula 1 y si pusiera el numero 1 me pondría la segunda formula, dentro de la misma formula. Ya agregue la función SI($C3="Xl",Formula1.. Pero no me funciona, espero me puedan ayudar.   Muchas gracias Mariano   Formula doble si en celda existe.xlsx
    • Sub control2558() Application.ScreenUpdating = False Dim I As Integer I = 4 While Sheets("FT-ADF-2558").Cells(I, 102) <> "" Sheets("FT-ADF-2558").Cells(6, 82) = Sheets("FT-ADF-2558").Cells(I, 102) Dim NombreArchivo, RutaArchivo As String NombreArchivo = "Hoja Control " & Sheets("FT-ADF-2558").Cells(I, 102) RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".xlsm" Dim NuevoLibro As Workbook Set NuevoLibro = Workbooks.Add Sheets("FT-ADF-2558").Copy Before:=NuevoLibro.Sheets(1) NuevoLibro.SaveAs Filename:=RutaArchivo NuevoLibro.Close I = I + 1 Wend MsgBox ("Proceso generado con éxito") Application.ScreenUpdating = True End Sub  
    • Ese error es porque no existe la hoja 10 con ese nombre, entonces cámbialo por FT-ADF-2558
  • 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.