** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Repetir bucle en varias columnas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRepetir bucle en varias columnas

 Responder Responder
Autor
Mensaje
Redneckman Ver desplegable
Nuevo
Nuevo


Unido: 12/Junio/2006
Localización: España
Estado: Sin conexión
Puntos: 8
Enlace directo a este mensaje Tema: Repetir bucle en varias columnas
    Enviado: 22/Enero/2011 a las 12:53
Hola, muy buenas a todos.

Se me plantea una duda que seguro tiene una respuesta muy fácil, pero mis conocimientos de VBA son todavía muy escasos.

He realizado una macro que chequea el contenido de las celdas y quita espacios en blanco al principio y al final de las mismas. Además, añade puntos al final de las celdas que no acaban ni en "." ni en "!" ni en "?".

Este es el código:

For x = 15 To 30 'Las filas que se cumplimentan son solo de la 15 a la 30.
'Elimina los espacios en blanco al principio y al final de celda.
Range("A" & x).Value = Trim(Range("A" & x).Value)
'Comprueba si lleva punto al final.
If Right(Range("A" & x), 1) <> "." And Right(Range("A" & x), 1) <> "!" And Right(Range("A" & x), 1) <> "?" Then
Range("A" & x).Value = Range("A" & x).Value & "."
End If
Next x


Hasta aquí, todo pefecto. La macro funciona sin problemas en la columna "A". El problema es que yo quiero que me chequee desde la "A" hasta la "P", sin tener que repetir el código x veces cambiando a Range("B" & x) y así sucesivamente hasta la columna "P".

¿Es posible hacerlo con un bucle para no repetir el código tantas veces como columnas quiera chequear?

Gracias de antemano.
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18819
Enlace directo a este mensaje Enviado: 22/Enero/2011 a las 13:05
Hola!
 
prueba así
 
Dim Celda As Range
For Each Celda In ActiveSheet.Range("A1:P30")
   'Elimina los espacios en blanco al principio y al final de celda.
   Celda.Value = Trim(Celda.Value)
   'Comprueba si lleva punto al final.
   If Right(Celda, 1) <> "." And Right(Celda, 1) <> "!" And Right(Celda, 1) <> "?" Then
      Celda.Value = Celda.Value & "."
   End If
Next Celda
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
Redneckman Ver desplegable
Nuevo
Nuevo


Unido: 12/Junio/2006
Localización: España
Estado: Sin conexión
Puntos: 8
Enlace directo a este mensaje Enviado: 22/Enero/2011 a las 13:59
¡Muchísimas gracias, Emilio!

Funciona perfectamente.
Por mi, podemos cerrar el hilo.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable