Excel - Ayuda con esta macro

 
Vista:
sin imagen de perfil
Val: 44
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda con esta macro

Publicado por santi (24 intervenciones) el 06/11/2018 12:57:49
Hola, Buenos días,

Tengo esta macro que elimina filas si tiene el valor ! en la columna A. La macro es:

1
2
3
4
5
6
7
8
9
Sub eliminar_filas()
Application.ScreenUpdating = False
  Application.Calculation = xlManual
  ActiveSheet.Range("A11").CurrentRegion.AutoFilter Field:=1, Criteria1:="!"
  Range("A11").CurrentRegion.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
  ActiveSheet.AutoFilterMode = False
  Application.Calculation = xlAutomatic
  Application.ScreenUpdating = True
End Sub


En principio la macro funciona, pero si encuentra una fila en blanco se para y si lanzo varias veces la macro seguidas (presionando el botón repetidamente) llega al final del documento borrando las filas que debe, pero también las que están en blanco.

Lo que me gustaría es modificar esta macro para:

Que las filas en blanco no paren la macro y no las elimine.
Que la macro actúe solo en un rango determinado, por ejemplo (A10:A150).
Necesitaría así mismo una macro igual, pero que no elimine las celdas con el símbolo !, solo que las esconda.

Muchas gracias por vuestra ayuda.
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
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda con esta macro

Publicado por Andres Leonardo (1583 intervenciones) el 06/11/2018 15:12:23
No te recomiendo lo indicado ... te recomiendo algo asi ...

seleccionas de la columna A desde cual quieres....(de la A1 : A150) o seleccionas lo que quieras....

y ejecutas esta macro


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub RangoSeleccionado()
    ' variable de tipo Range para hacer referencia a las celdas
    Dim Celda As Range
     Dim X As Long
     X = 1
    'Recorrer todas las celdas seleccionadas en el rango actual
    For Each Celda In Selection.Cells
                  'valido el valor de la celda.. dijiste que tenia ! vacios u otro valor... me avisas
        With Celda
            .Select
            If .Value = "" Then
                Selection.Delete Shift:=xlUp
            Else
                If .Value = "!" Then
                    Selection.EntireRow.Hidden = True
                End If
            End If
        End With
    Next
 
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
sin imagen de perfil
Val: 44
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda con esta macro

Publicado por santi (24 intervenciones) el 06/11/2018 15:22:03
Hola,

Gracias por la ayuda.

Lo que necesito es que las celdas de la columna A que tengan el valor ! (osea, donde aparece el símbolo !) las borre y las que tengan otro valor o en blanco no las borre.

También etra macro donde haga lo mismo que en la anterior pero en vez de borrar, que esconda las celdas con el símbolo !..

Disculpa, no me he explicado bien.

Un saludo
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda con esta macro

Publicado por Andres Leonardo (1583 intervenciones) el 06/11/2018 15:42:27
Pues la macro hace lo que pides solo una consulta .. que Contenga el valor ! es decir que puede ser dfshdksh!jsfsdf o aa!bb 11!224 !456 osea pueyde tener o solo el valor !

quedo atento


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub RangoSeleccionado()
    ' variable de tipo Range para hacer referencia a las celdas
    Dim Celda As Range
     Dim X As Long
     X = 1
    'Recorrer todas las celdas seleccionadas en el rango actual
    For Each Celda In Selection.Cells
                  'valido el valor de la celda.. dijiste que tenia ! vacios u otro valor... me avisas
        With Celda
            .Select
            If InStr(1, .Value, "!") > 0 Then
                Selection.Delete Shift:=xlUp
            End If
        End With
    Next
 
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
sin imagen de perfil
Val: 44
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda con esta macro

Publicado por santi (24 intervenciones) el 06/11/2018 15:47:02
Hola

Solo tiene el valor !. O aparece texto o aparece el valor !.

Gracias
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Ayuda con esta macro

Publicado por Andres Leonardo (1583 intervenciones) el 06/11/2018 15:47:26
Intenta asi


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub RangoSeleccionado()
    ' variable de tipo Range para hacer referencia a las celdas
    Dim Celda As Range
     Dim X As Long
     X = 1
    'Recorrer todas las celdas seleccionadas en el rango actual
    For Each Celda In Selection.Cells
                  'valido el valor de la celda.. dijiste que tenia ! vacios u otro valor... me avisas
        With Celda
            .Select
            If InStr(1, .Value, "!") > 0 Then
                Selection.Delete Shift:=xlUp
            End If
        End With
    Next
 
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