Macro para insertar fila donde vaya el código y cuenta contable dentro de 400 rubros de un balance en excel
Tengo un reporte donde están agrupados por rubros y estos rubros contienen códigos de cuentas contables, existe una forma que se pueda agregar automáticamente en los 400 rubros que tengo el nuevo código y cuenta contable de una vez, ya que ahora mismo lo estoy haciendo de forma manual, comparto la captura de como tengo y de como debe de quedar si me pueden ayudar por favor gracias, lo resaltado en amarillo es como debe quedar, como se fijarán estoy insertando en cada rubro que esta en "negrita" las nuevas cuentas contables con su código, ejemplo ahora tengo 4 cuentas nuevas y es muy largo para agregar de forma manual en cada rubro si me pueden ayudar:
1 Respuesta
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
En tu imagen no se ven las filas ni las columnas de la hoja de excel.
Puedes poner una imagen completa, de los datos originales.
Imagen dos con los datos resultantes.
Y explica en dónde van a estar las nuevas cuentas que se van a agregar. En unas celdas, en cuáles celdas, en cuál hoja. Como dije tu imagen no está completa.
![Agustin Lopez](http://blob.todoexpertos.com/avatars/sm/zmuu7hwbubb7a.jpg?v=57)
Hola Dante te compartí por mail el correo para que puedas visualizar, si podrías revisar por favor,
Saludos
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
Pero es importante que aquí pongas la información completa, para que recibas una respuesta oportuna.
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
No entiendo bien.
1. ¿Siempre son 4 cuentas?
2. ¿Siempre van a estar en las celdas H1 a H4?
3. ¿El resultado lo quieres en las columnas F a I?
4. En la columna G, siempre va este dato: "101101", ¿según tu ejemplo siempre va ese dato?
![Agustin Lopez](http://blob.todoexpertos.com/avatars/sm/zmuu7hwbubb7a.jpg?v=57)
El reporte original arranca en la columna A7, CC RUBRO, B7 CÓDIGO C7 RUBRO CÓDIGO RUBRO D7 NOMBRE DEL RUBRO, luego en las columna A8 hasta a400 dice CTA cuando es código de cuenta contable 41110001 Venta de mercado local, cuando se crean nuevas cuentas contables yo no quiero más insertar uno a uno en los 400 rubros, Dante más abajo te dejo la imagen, debería quedar como la columna F7 a I7 e insertar abajo mismo las nuevas cuentas, en este caso están amarillo 4 cuentas nuevas, y si existe la posibilidad de utilizar una macro, para darte una idea no se si es factible que puedas usar como condición donde termine "CC" y abajo diga "CTA" que ahí inserte la nueva contable ya que debe insertar luego de la ultima creada, paso captura para ver mejor
![Agustin Lopez](http://blob.todoexpertos.com/avatars/sm/zmuu7hwbubb7a.jpg?v=57)
1) Esta vez tuve 4 cuentas nuevas que solicitaron crearlas, generalmente suele solicitar crear "una" sola cuenta y esta debo agregar manualmente en los 400 rubros, 2) lo de la columna H1 a H4 es un modelo nada más, podría ser en la Columna E1 a E4, solo elegí H1 a H4 para que puedas apreciar mejor la imagen 3) Así mismo Dante, el resultado es como quiero que quede en la Columna F a I pero dentro de A a DE, solo puse como ejemplo la columna F para que puedas ver el resultado deseado 4) La columna G no comprendí, pero cada rubro se compone de esta línea: CC 101101 101101 FERTILIZANTE y esta se repetirá siempre cuando haya un nuevo rubro,
Quedo atento para cualquier consulta,
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
Con gusto te ayudo, solamente responde mis dudas:
1. ¿Siempre son 4 cuentas?
2. ¿Siempre van a estar en las celdas H1 a H4?
3. ¿El resultado lo quieres en las columnas F a I?
4. En la columna G, siempre va este dato: "101101", ¿según tu ejemplo siempre va ese dato?
---
Nota importante:
Debes procurar que en la imagen se vean los números de fila de la hoja.
Ayúdanos a ayudarte proporcionando la información completa.
---
"termine "CC" y abajo diga "CTA" que ahí inserte la nueva contable"
Lo voy a tomar en cuenta para el desarrollo de la macro.
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
Lo de la columna H1 a H4 es un modelo nada más, podría ser en la Columna E1 a E4, solo elegí H1 a H4 para que puedas apreciar mejor la imagen
Pero debes tú, debes seleccionar una celda o celdas para poner las nuevas cuentas. De preferencia que no quede en la misma columna donde va el resultado (tienes muchas columnas)
Además puedes insertar más imágenes, no pongas todo en una sola imagen, porque lejos de ayudar solamente confunde.
Quiere que expliques paso a paso y con ejemplos, qué dato debe ir en la columna G. Porque en tu imagen solamente veo el mismo dato en las celdas amarillas.
![Agustin Lopez](http://blob.todoexpertos.com/avatars/sm/zmuu7hwbubb7a.jpg?v=57)
Entiendo Dante, y preferiría que las nuevas cuentas yo lo pondría en la columna E1 a e10 tipo dando lugar a 10 cuentas para que lea la macro y que el resultado sea tipo apretando un botón y que esta inserte las nuevas cuentas en cada rubro, debajo de la ultima cuenta creada anteriormente en cada rubro, las amarillas son ya las nuevas cuentas que yo inserte de forma manual para que veas como deseo que la macro reporte, en la columna G no debe ir nada debe estar vacío solo debe estar desde A a DE y las nuevas cuentas en E1 a E10,
Saludos
![Agustin Lopez](http://blob.todoexpertos.com/avatars/sm/zmuu7hwbubb7a.jpg?v=57)
Para evitar confusiones debe estar desde "A a D" y las nuevas cuentas desde "E1 A 10" y la macro debe tomar lectura la columna E y si es factible dando clic un botón, porque yo cuando me pidan las nuevas cuentas voy a tipear manualmente con el codigo nuevo en la columna E y luego le doy clic en el botón y ya desearía que la macro recorra el rango "A a D" e inserte las nuevas cuentas en cada rubro
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
Sigo sin entender qué dato va en la columna G
En la columna F pongo "Cta"
En la columna H pongo la nueva cuenta
En la columna I el nombre de la cuenta
Pero en la columna G, no explicas qué dato poner.
![Agustin Lopez](http://blob.todoexpertos.com/avatars/sm/zmuu7hwbubb7a.jpg?v=57)
No Dante, no debe haber datos en la columna G ni H, esas columnas son de ejemplo de como debe quedar una vez agregadas las nuevas cuentas, yo propuse una idea de colocar manualmente el código de la nueva contable en E1 y en F1 el nombre de la cuenta contable, ya que Ahora lo estas viendo en h2 e I2 51114002 Agua, entonces la macro debe tomar lectura lo que yo tipee en la celda E1 a F1 51114002 Agua, y cuando la macro ejecute que lo inserte en la ultima fila del rubro, por ejemplo el rubro inicial es a7 CC B7 10101 C7 10101 D7 Fertilizante ( este es el rótulo) y su última fila de la cuenta creada es a11 Cta B11 10101 D11 4113002 Ventas intracompany, y por ejemplo Ahora tengo una nueva cuenta 51114002 Agua deseo que la macro inserte en la fila A12 cta B12 101101 C12 5114002 D12 Agua y también en el siguiente rubro 101102 Fertilizante foliar el código 5114002 Agua en la fila si es que se agrega el rubro anterior sera la a17 cta b17 101102 c17 5114002 d17 Agua y asi que vaya recorriendo todas las columnas mencionadas e inserte la nueva cuenta tipeada en la columna E, Ahora que veo creo que necesitaras una columna mas donde debe ir el código del rubro verdad? O sea de los 400 rubros ya que cada rubro tiene su código si tenes alguna idea mejor puedo poner en la hoja 2 los 400 códigos de los rubro para que pueda rellenar el rango de la columna B que opinas?
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
Tu ejemplo es muy confuso, pusiste el resultado en las columnas F a I.
Por eso te pido que pongas más de una imagen, pero pones todo en una imagen y todo resulta muy confuso.
Entonces no entiendo en dónde quieres el resultado, en la columna A o en la F, si tu ejemplo dice columna F.
----
En tu ejemplo en la columna "G" solamente tienes este dato: 101101, revisa tu imagen solamente tienes un dato.
Y luego comentas esto:
Ahora tengo una nueva cuenta 51114002 Agua deseo que la macro inserte en la fila A12 cta B12 101101 C12 5114002 D12 Agua y también en el siguiente rubro 101102 Fertilizante foliar el código 5114002 Agua en la fila si es que se agrega el rubro anterior sera la a17 cta b17 101102 c17 5114002 d17 Agua
En la imagen solamente veo 101101, pero en tu descripción tienes 101101 y 101102, tu imagen no es consistente con tu descripción.
Perdona que insista, pero revisa tu ejemplo. Ya que lo tengas bien armado, regresa aquí y pones las imágenes, pero 3 imágenes:
1. Datos originales
2. Lugar donde vas a poner las nuevas cuentas
3. Resultado final
![Dante Amor](http://blob.todoexpertos.com/avatars/sm/4ozn3xagb5emg.jpg?v=40)
Pon tus datos así:
Tus datos en las columnas A a D.
Las nuevas cuentas a agregar en las columnas E a F, empezando en la celda E1.
Los resultados quedarán en las mismas columnas A a D.
La macro:
Sub InsertarCuentas() Dim lr As Long, i As Long, lr2 As Long Dim rubro As Variant ' Application.ScreenUpdating = False lr = Range("A" & Rows.Count).End(3).Row + 1 lr2 = Range("E" & Rows.Count).End(3).Row - 1 Range("A" & lr).Value = "CC" ' For i = lr To 5 Step -1 If Range("A" & i).Value = "CC" And Range("A" & i - 1).Value = "Cta" Then rubro = Range("B" & i - 1).Value Range("A" & i & ":D" & i + lr2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A" & i & ":A" & i + lr2).Value = "Cta" Range("B" & i & ":B" & i + lr2).Value = rubro Range("C" & i & ":D" & i + lr2).Value = Range("E1:F" & lr2 + 1).Value End If Next Range("A" & Rows.Count).End(3).Value = "" Application.ScreenUpdating = True End Sub
- Compartir respuesta
![](/content/images/user_nophoto_small.png)