Excel - Copiar e Insertar filas automáticamente con un condicional

 
Vista:
Imágen de perfil de Felipe
Val: 6
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar e Insertar filas automáticamente con un condicional

Publicado por Felipe (3 intervenciones) el 10/05/2020 01:19:42
Saludos, recién estoy empezando en esto de las macros y agradecería cualquier ayuda a mi problema, va así:

Tengo una tabla en excel, en la columna E (times) de la tabla hay números en un orden específico y quisiera que cada vez que en la columna de times aparezca el número 7000, se inserte debajo una nueva fila que contenga exactamente los mismos datos que la fila de abajo, pero que el nuevo valor de la celda de times sea cero (0).

Adjunto unos pantallazos para que se entienda mejor, aquí se puede ver el número 7000


Screenshot_1


Lo que quiero es que se agregue una fila nueva debajo del 7000, que sea igual a la que está debajo de esta, y que el valor para la celda en E sea igual a 0.


Screenshot_2


También adjunto un fragmento de la tabla original ya que es demasiado extensa como para pasarla toda, es un .txt delimitado por tabulaciones.

De antemano agradezco la atención prestada y estoy atento a cualquier respuesta! :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar e Insertar filas automáticamente con un condicional

Publicado por Antoni Masana (2489 intervenciones) el 10/05/2020 10:20:31
No voy a preguntar el porque de esto ni que sentido tienen.

Lo que si voy a preguntar es en que momento se ha de agregar las filas.

¿En el momento de importar el TXT?
¿Ya lo tienes importado?
¿Necesitas una macro que recorra la tabla para insertar las nueva filas?

Dependiendo la casuística necesitas una macro u otra.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Felipe
Val: 6
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar e Insertar filas automáticamente con un condicional

Publicado por Felipe (3 intervenciones) el 10/05/2020 19:44:57
Hola! Gracias por responder, quizá no me expliqué del todo bien, lo siento...

Lo que creo que puede solucionar mi problema es una macro que lea ta tabla en excel y que cada vez que en la columna E apareza el número 7000, se inserte debajo una nueva fila que sea una copia de la fila de abajo, pero que el nuevo valor para la celda en la columna en E sea de cero...

Es un poco confuso y por eso adjunté los screenshots de arriba, el primer ss es la tabla normal, se ve la celda con el valor de 7000, en la fila 36; y en el segundo ss, se ve la fila insertada debajo de esta, que es la 37, una copia exacta de la 38 (que en el primer ss era la 37) donde el valor que se modifica es el "578" que ahora pasa a ser "0".

Espero haberme hecho entender y lamento las molestias.

Estoy atento, un abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar e Insertar filas automáticamente con un condicional

Publicado por Antoni Masana (2489 intervenciones) el 10/05/2020 22:37:50
Te adjunto la macro en un Modulo y aquí.

La macro solo inserta UNA VEZ la fila con el CERO si se ejecuta una segunda vez verifica que ya se ejecuto y no vuelve a insertar la linea ( Revisa todos los 7000) Si después de ejecutar la macro se añaden nuevas líneas con 7000 solo añade la lineas de cero a los nuevos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub Insertar_Fila()
    Dim Fila As Long
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    ActiveSheet.DisplayPageBreaks = False
 
    Fila = 2
    While Cells(Fila, "A") <> ""
        If Cells(Fila, "E") = 7000 Then             ' --- Busca la línea del 7000
            If Cells(Fila + 1, "E") <> 0 Then       ' --- Verifica que la siguiente linea no tiene 0
                Call Insertar(Fila + 1, Fila + 2)   ' --- Inserta la linea
            End If
        End If
        Fila = Fila + 1
    Wend
 
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    ActiveSheet.DisplayPageBreaks = True
    Application.CutCopyMode = False
End Sub
 
Sub Insertar(F1, F2)
    Rows(F1 & ":" & F1).Select
    Selection.Insert Shift:=xlDown
    Range("A" & F2 & ":F" & F2 & "").Select
    Selection.Copy
    Range("A" & F1).Select
    ActiveSheet.Paste
    Range("E" & F1).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "0"
    Range("E" & F2).Select
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Felipe
Val: 6
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar e Insertar filas automáticamente con un condicional

Publicado por Felipe (3 intervenciones) el 11/05/2020 04:17:33
Muchísimas gracias! es la primera vez que intento acudir a un foro para intentar solucionar un problema de este estilo y estoy sorprendido con lo maravillosa que puede ser la comunidad de internet, infinitas gracias Antoni!!

Mis conocimientos en programación son cortos ya que en mi universidad no nos hacen énfasis en ello, pero ahora que tengo que avanzar con mi tésis noto que este tipo de conocimientos son una herramienta enorme y estoy aprendiendo más sobre ello.

De nuevo muchas gracias por la ayuda y espero le pueda ser de utilidad a más personas, un abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Copiar e Insertar filas automáticamente con un condicional

Publicado por WILSON ESPITIA (1 intervención) el 21/10/2021 23:29:34
Hola buenas tardes
Estoy creando una macro, casi que de las mismas carcteristicas.
Necisto una macro que me lea una tabla de exel, y en la fila L, replique insertando las filas el numero que este en la fila, me explico, Si la celda L11 tiene un numero 3, necesito que me inserte dos filas adicionales y que me replique la informacion las filas.
Sin embargo al modificar el codigo para usarlo, al codigo al ser sub insertar, y no sub macro, no tengo una macro creada para asignar y que me corra para leer la tabla.
Como hago para que me corra la macro sin tener Sub macro

Agradezco me puedan responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar