Bienvenido a la mayor comunidad de usuarios EXCEL

Regístrate ahora y podrás: / 💪 Hacer preguntas a los expertos / ⬇️ Descargar ejemplos y plantillas / 🏅 Acceder a contenidos premium

Regístrate gratis

Distribuir Datos

Mcaro

Member
Buenas tardes!!

Acudo a ustedes ya que mis conocimientos son cero en macro :-( donde me gustaria crear una macro que me distribuya los datos que estan en la hoja alquileres a cada una de las personas (hojas) que corresponda, es decir, el monto que tiene pedro en la celda f lo lleve a la hoja llamada pedro y asi sucesivamente.

Adjunto el archivo

De antemano muchas gracias por la colaboración que me puedan prestar.

Saludos
 

Adjuntos

  • MODELO_CON_MACRO_CONSULTA.xlsm
    31,1 KB · Visitas: 17

novirus

Active member
Buenas,

Te refieres que copie el contenido de la pestaña "Alquileres" que tienes un filtro y te copie lo que has filtrado, las columnas A7 hasta la fila que sea, por ejemplo de la A7:B24 y luego dependiendo del empleado copie de la F7:F24 si es PEDRO, de G7:G24 si es JUAN estos datos a la pestaña respectiva. Pero en la pestaña de "Alquileres" la columna B se llama Arrendatarios y sin embargo en la pestaña "Pedro" la columna B se llama "Concepto", son la misma,
¿Es esto?, porque Yo no te he entendido si no es esto, pero he supuesto algo así.

Cambia la explicación.

Un saludo.
 

Mcaro

Member
Hola Novirus!! se puede omitir el filtro, lo que yo quiero es que al ejecutar la macro me lleve los datos de la celda A, B y de las celdas F, G y H (según sea la hoja). y cada vez que ejecute la macro me traiga los nuevos datos que vaya agregando en la hoja alquileres. No se si me explique sino me avisas.

Muchas gracias
 

Valori+

New member
Hola Mcaro, si lo único que querés que cada vez que agregás datos en la Hoja Alquileres se te actualicen las otras 3 y en cada una te aparezca el dato de la columna de nombre no te estaría haciendo falta una tabla dinámica. Solamente con traer los datos de la Solapa Alquileres sería suficiente.
Te paso un archivo de como quedaría lo que te comento y no tendrías que estar modificando macros si agregas nuevos nombres, en ese caso con solo copiar la hora en otra nueva y actualizar la letra de la columna ya estaría listo.

Espero haberte ayudado
Saludos
 

Adjuntos

  • MODELO_CON_MACRO_CONSULTA.xlsm
    43,6 KB · Visitas: 6

Mcaro

Member
Hola ValoriJuan, de antemano muchas gracias por tu sugerencia. Esa opción me serviria pero en ciertas ocasiones debemos cargar ciertos egresos por persona y eso se haria directamente de la hoja de la persona, entonces al colocar el egreso se borría la formula y me da error en el total.
 

Mcaro

Member
Hola Buenas Tardes!!

Aquí adjunto nuevamente el archivo con algunas modificaciones y una mejor explicación porque no se donde me estoy equivocando con la macro pues no logro correrla.

De antemano muchisimas gracias a la persona que me pueda ayudar a tener una luz al final del tunel.
 

Adjuntos

  • MODELO_CON_MACRO_CONSULTA_1.xlsm
    33 KB · Visitas: 5

EnriqueGDL

New member
Buenas!

Siempre hay mínimo 10 maneras de como estructurar una macro. La siguiente es una opción:

Agregue una "nueva" columna A para el "estatus" ya que se debe de identificar que filas ya se han desglosado (distribuido), si no, se desglosaría toda la información cada que ejecutaras la macro.

Sub DesglosarIngresos()

Application.ScreenUpdating = False

Sheets(1).Select
UltimaCeldaAlquileres = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

For Estatus = 7 To UltimaCeldaAlquileres

If Range("A" & Estatus).Value <> "Desglosado" Then
FECHA = Range("B" & Estatus)
CONCEPTO = Range("C" & Estatus)

For Hoja = 2 To 4
INGRESO = Sheets(1).Cells(Estatus, Hoja + 5)
Sheets(Hoja).Select
UltimaCeldaHoja = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
Range("A" & UltimaCeldaHoja).Value = FECHA
Range("B" & UltimaCeldaHoja).Value = CONCEPTO
Range("C" & UltimaCeldaHoja).Value = INGRESO
Next

Sheets(1).Select
Range("A" & Estatus).Value = "Desglosado"

End If

Next

End Sub





Explicación: Escribe en la pestaña "Alquileres" toda la información desde la columna B hasta la F.
La macro detecta que registros nuevos no tienen Estatus (Columna A), los desglosa y les cambia el Estatus a "Desglosado".
Pero ignora todos los que previamente ya tenían el estatus de "Desglosado".
 

Adjuntos

  • MODELO_CON_MACRO_CONSULTA (EnriqueGDL).xlsm
    43,3 KB · Visitas: 8
Última edición:

Mcaro

Member
Buenas!

Siempre hay mínimo 10 maneras de como estructurar una macro. La siguiente es una opción:

Agregue una "nueva" columna A para el "estatus" ya que se debe de identificar que filas ya se han desglosado (distribuido), si no, se desglosaría toda la información cada que ejecutaras la macro.

Sub DesglosarIngresos()

Application.ScreenUpdating = False

Sheets(1).Select
UltimaCeldaAlquileres = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row

For Estatus = 7 To UltimaCeldaAlquileres

If Range("A" & Estatus).Value <> "Desglosado" Then
FECHA = Range("B" & Estatus)
CONCEPTO = Range("C" & Estatus)

For Hoja = 2 To 4
INGRESO = Sheets(1).Cells(Estatus, Hoja + 5)
Sheets(Hoja).Select
UltimaCeldaHoja = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
Range("A" & UltimaCeldaHoja).Value = FECHA
Range("B" & UltimaCeldaHoja).Value = CONCEPTO
Range("C" & UltimaCeldaHoja).Value = INGRESO
Next

Sheets(1).Select
Range("A" & Estatus).Value = "Desglosado"

End If

Next

End Sub





Explicación: Escribe en la pestaña "Alquileres" toda la información desde la columna B hasta la F.
La macro detecta que registros nuevos no tienen Estatus (Columna A), los desglosa y les cambia el Estatus a "Desglosado".
Pero ignora todos los que previamente ya tenían el estatus de "Desglosado".
Wow EnriqueGDL de verdad muchisimas gracias por tu apoyo, era exactamente lo que necesitaba. Nuevamente un millón de gracias...
 

Temas similares

Arriba