macro para eliminar línea

22/04/2007 - 16:07 por Arístides Fernández | Informe spam
Hola,

Necesito realizar una macro para buscar dentro de un texto determinada
palabra o número y en función de ello eliminar o no toda la línea.
Intento usar la grabadora de macros para orientarme, pero durante la
grabación no me permite usar el botón derecho ni seleccionar líneas.

Gracias por la ayuda.

Preguntas similare

Leer las respuestas

#1 Tux
22/04/2007 - 22:38 | Informe spam
Arístides Fernández escribió:
Hola,

Necesito realizar una macro para buscar dentro de un texto determinada
palabra o número y en función de ello eliminar o no toda la línea.
Intento usar la grabadora de macros para orientarme, pero durante la
grabación no me permite usar el botón derecho ni seleccionar líneas.

Gracias por la ayuda.





Hola Arístides :)

Prueba con algo como esto:

'--
Sub Prueba1()

'borrar linea de palabra encontrada

Dim y As Variant
Dim x As Integer

y = InputBox("Buscar palabra y borra su linea:", "Mi buscador")

Selection.Find.ClearFormatting

With Selection.Find
.Text = y
.Replacement.Text = ""
.Wrap = wdFindContinue
.Forward = True
End With

If Selection.Find.Execute = True Then
x = x + 1
Selection.Collapse wdCollapseStart
ActiveDocument.Bookmarks("\Line").Select
Selection.Delete
Else
MsgBox "not, not, not ... :-P "
End If

End Sub
'--

Cualquier cosilla que le veas al codigo o que quieras añadir tu nos
comentas ok? :)

Saludos
Monica


Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))
Respuesta Responder a este mensaje
#2 Arístides Fernández
23/04/2007 - 00:27 | Informe spam
Gracias por tan rápida y buena respuesta.

A los efectos de lo que quiero hacer el código funciona bien pero no se
posiciona en el texto encontrado ni da la opción de borrarlo o no, además
para continuar la búsqueda del mismo texto hay que introducirlo nuevamente.
Comparto un código que encontré en Google que borra todas las líneas de una
sola vez, pero tampoco permite la posibilidad de elegir entre borrar o no la
línea.

Sub DeleteWholeLine()

mySearchString = InputBox("This search will find your word and do the
following:" & _
vbCr & vbCr & vbTab & "1. delete the word" & vbCr & vbCr &
vbTab & _
"2. delete the entire line " & vbCr & vbTab & "in which the
word " & _
"was found" & vbCr & vbCr & "Enter a word (or other string)
" & _
"to find:")

If mySearchString = "" Then End

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting

With Selection.Find
.Text = mySearchString
.Wrap = wdFindContinue
End With

Do While Selection.Find.Execute = True
x = x + 1

Selection.Collapse wdCollapseStart
ActiveDocument.Bookmarks("\Line").Select
Selection.Delete

If x > 10000 Then MsgBox "Possible Endless Loop. The macro has
interrupted itself automatically to prevent freezing the computer.": End
Loop

End Sub

Nuevamente gracias,

Arístides


"Tux" escribió en el mensaje
news:
Arístides Fernández escribió:
Hola,

Necesito realizar una macro para buscar dentro de un texto determinada
palabra o número y en función de ello eliminar o no toda la línea.
Intento usar la grabadora de macros para orientarme, pero durante la
grabación no me permite usar el botón derecho ni seleccionar líneas.

Gracias por la ayuda.





Hola Arístides :)

Prueba con algo como esto:

'--
Sub Prueba1()

'borrar linea de palabra encontrada

Dim y As Variant
Dim x As Integer

y = InputBox("Buscar palabra y borra su linea:", "Mi buscador")

Selection.Find.ClearFormatting

With Selection.Find
.Text = y
.Replacement.Text = ""
.Wrap = wdFindContinue
.Forward = True
End With

If Selection.Find.Execute = True Then
x = x + 1
Selection.Collapse wdCollapseStart
ActiveDocument.Bookmarks("\Line").Select
Selection.Delete
Else
MsgBox "not, not, not ... :-P "
End If

End Sub
'--

Cualquier cosilla que le veas al codigo o que quieras añadir tu nos
comentas ok? :)

Saludos
Monica


Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos y
queda muy mono :-))))






Respuesta Responder a este mensaje
#3 Tux
23/04/2007 - 16:42 | Informe spam
Arístides Fernández escribió:

Bien primero comentarte un consejo, el que te crees un Userform basico
para realizar una busqueda a tu gusto :-) te va a ser mas comodo y
practico por ejemplo :

Añades al userform [ un label, un textbox1, y dos CommandButton ]

y en el codigo del userform añadir:

Private Sub CommandButton1_Click()
'Commandbutton1 = realizar busqueda

Selection.Find.ClearFormatting
With Selection.Find
.Text = TextBox1
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute

End Sub


Private Sub CommandButton2_Click()
'comandbutton2 = Eliminar Linea

Selection.Collapse wdCollapseStart
ActiveDocument.Bookmarks("\Line").Select
Selection.Delete

End Sub

'

Luego llamas al userform mediante algun boton al que tendras que
añadirle el codigo:

Userform1.show

'--

Peroooo no obstante si quieres seguir con el tema del inputbox prueba
algo asi:

'--
Sub Prueba3()

'borrar linea de palabra encontrada

Dim y As Variant
Dim x As Integer
Dim z As String
Dim m As Integer

z = InputBox("Iniciar busqueda", "introduce palabra")
Do While (y <> "word")

y = InputBox("Buscar: ", "Mi buscador", z)

With Selection.Find

.ClearFormatting
.Forward = True

.MatchWholeWord = True
.Wrap = wdFindContinue
.Execute FindText:=y
End With
If (y = "word") Then Exit Do

If Selection.Find.Execute = True Then
Selection.Collapse wdCollapseStart
ActiveDocument.Bookmarks("\Line").Select

m = MsgBox("¿quieres eliminar?", vbOKCancel)
If m = vbOK Then Selection.Delete

End If
Loop

End Sub

'-

Nos comentas ok? :)

Saludos
Monica




Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))
Respuesta Responder a este mensaje
#4 Tux
23/04/2007 - 16:50 | Informe spam
Hola :-)

Para salir del bucle loop escribe :

word

Nos comentas ok? :-)

Saludos
Monica



Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos
y queda muy mono :-))))
Respuesta Responder a este mensaje
#5 Arístides Fernández
23/04/2007 - 18:33 | Informe spam
Muchas gracias.

Los dos métodos funcionan perfecto.

Arístides


"Tux" escribió en el mensaje
news:
Hola :-)

Para salir del bucle loop escribe :

word

Nos comentas ok? :-)

Saludos
Monica



Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com



Anotacion: Si por los foros veis Spam masivo sobre temas que nada tienen
que ver con el foro en cuestion,
Deciros que es un << Troll/s >> que unas veces usurpan el nombre e
identidad de gente profesional en la materia,
y otras veces usurpan el nombre e identidad de aquel o aquellos que
contestan a su Spam, su verdadero nombre es:

Pablito "Alias el Cuervo" y Compañia [payasos de circo ]

Lo mejor que podeis hacer, es o bien ignorarlos como si no existieran o
hacer seguimiento de las NEws de microsoft,

a traves de por ejemplo entre otros:

Outloock Express o Mesnews [con opcion a suprimirlos ]

Y Si utilizais el Thunderbird podeis utilizardo como Separador de hilos y
queda muy mono :-))))






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida