Excel - AYUDA CON MACROS POR FAVOR !!!

   
Vista:

AYUDA CON MACROS POR FAVOR !!!

Publicado por Giancarlo Jose (46 intervenciones) el 29/04/2016 18:38:47
HOLA A TODOS !!!

Tengo el siguiente código que si me funciona perfectamente:

1
2
3
4
5
6
Sub Borrar_Pares()
'Elimina filas alternas (pares o impares)
For i = 2 To 1600
    Cells(i, "A").EntireRow.Delete
Next i
End Sub


El problema esta en que hay que estar cambiando hasta que fila queremos borrar los pares "1600" lo que quiero es que me aparezca una ventana que me diga DE QUE FILA QUIERES COMENZAR: y que puedan ingresar un numero y luego: HASTA QUE FILA QUIERES BORRAR: y que ingresen el numero de fila hasta que desean borrar.

O SOLAMENTE HASTA QUE FILA QUIERES BORRAR YA QUE SIEMPRE EMPEZARA DESDE LA FILA 1


ES POSIBLE ESO ????

GRACIAS !!!!!!!!!!!!!!
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 Andres Leonardo

AYUDA CON MACROS POR FAVOR !!!

Publicado por Andres Leonardo (485 intervenciones) el 29/04/2016 18:43:34
Se me ocurre Y si lo dejas el valor en unas celdas antes de que ejecutes la macro
y de ahi tienes los limites ...
1
2
desde =hoja.celda(A1).value ' 2
hasta =hoja.celda(A2).value ' 1600


SAludos
Andres

1
2
3
4
5
'Elimina filas alternas (pares o impares)
For i = desde To hasta
Cells(i, "A").EntireRow.Delete
Next i
End Sub
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

AYUDA CON MACROS POR FAVOR !!!

Publicado por Giancarlo Jose (46 intervenciones) el 29/04/2016 18:47:13
Gracias por tu respuesta !!!

Claro yo puedo ingresar al programador y cambiarlo, lo que pasa es que Estoy haciendo una plantilla para trabajadores, y me gustaría que fuese lo mas fácil posible, puedo poner 100000 como fila final pero se va a demorar demasiado siempre, Entonces si aparece un cuadro que diga: hasta que fila quieres: sería mas fácil.

Salu2 !!!


Tengo el siguiente código que encontré, pero no se como arreglarle mi código para que funcione todo correctamente, ya que esta formula sirve para rastrear y borrar filas en blanco nada más, pero tiene la opción de INGRESAR DE QUE NUMERO DE FILA HASTA QUE NUMERO DE FILA. que es lo que quiero agregar a mi código.

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
38
Sub EliminarFilasVacías()
 
'Variables y actualización de pantalla
    Dim FilaInicial As String
    Dim FilaFinal As Integer
    Dim Seguridad As Integer
    Application.ScreenUpdating = False
 
'Introducción de fila inicial de rastreo
    On Error GoTo 1
    FilaInicial = InputBox("Introduzca nº de fila inicial para rastreo", "Fila inicial de rastreo")
    ActiveSheet.Range("A" & FilaInicial).Select
 
'Introducción de fila final de rastreo
    FilaFinal = Val(InputBox("¿Hasta que nº de fila quiere rastrear?", "Última fila a rastrear"))
    If FilaFinal = 0 Then
        GoTo 1
    End If
 
'Pregunta de seguridad
    Seguridad = MsgBox("¿Está seguro de eliminar todas las filas vacías?", vbYesNo, "¡Atención!")
    If Seguridad = vbNo Then
        Exit Sub
    End If
'Rastreo y eliminación de filas vacías
    For I = ActiveCell.Row To FilaFinal
        If Application.WorksheetFunction.CountA(ActiveCell.EntireRow) <> 0 Then
            ActiveCell.Offset(1, 0).Select
        Else
            ActiveCell.EntireRow.Delete
        End If
    Next
Exit Sub
 
'Gestión de errores
1 MsgBox "Ha introducido datos erróneamente o ha cancelado un cuadro de diálogo"
 
End Sub
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

AYUDA CON MACROS POR FAVOR !!!

Publicado por agustin (149 intervenciones) el 29/04/2016 22:21:11
Usa dialogbox
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

AYUDA CON MACROS POR FAVOR !!!

Publicado por agustin (149 intervenciones) el 29/04/2016 23:36:01
Usas un InputBox y el resultado lo metes en un String, luego compruebas que sea numérico con IsNumeric y si no lo es indicas el error.
Luego haces:
If InStr(1, strVal, ".") Or InStr(1, strVal, ",") Then
Sí encuentra el punto o la coma es un número con decimales y no nos sirve así que indicas el error. Pongo ambos porque puede ser que el usuario tenga la configuración cambiada y puede ser cualquiera de los dos.
Luego usas CInt para convertir el string a Integer y ya puedes trabajar con el.
Realizas la misma operación con el otro valor del rango y listo.
Puedes crearte una función que realice todo el trabajo y desde tu función llamas dos veces a esta y te quedará un código más corto y claro.
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

AYUDA CON MACROS POR FAVOR !!!

Publicado por agustin (149 intervenciones) el 30/04/2016 00:27:39
Ser algo asi:
Esta sería la funcion:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function ObtenerEntero (ByVal msg As String, ByRef valor As Integer) As Integer
    Dim str As String
 
    str = InputBox (msg)
    If Not IsNumeric(str) Then
        ObtenerEntero = -1
        Exit Sub
    End If
    If InStr(1, strVal, ".") Or InStr(1, strVal, ",") Then
        ObtenerEntero = -2
        Exit Sub
    End If
    Valor = CINT(str)
    ObtenerEntero = 0
End Function

Y para llamarla:
1
2
3
4
5
6
7
8
9
10
11
Dim inicio, retval As Integer
retval = -1
Do Until retval = 0
    retval = ObtenerEntero ("Introduce la fila inicial", inicio)
    Select Case retval
        Case -1
              'Muestras mensaje que indica que no es un valor numérico
        Case -2
              'Muestras mensaje que indica que no se admiten número decimales
    End Select
Loop
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