For Each en excel ayuda

Hola:
Tengo una base de datos de 6 columnas y aproximadamente 600 filas, en la sexta columna tengo números que varían desde menos 100 hasta 100.
Necesito en una tabla aparte en la misma hoja de la base de datos exponer los datos que más se acercan a 100 (los 20 más cercanos), pero con todos los datos de la fila en la que se encuentran dichos datos. Estoy utilizando Visual para otras funciones en este libro y pensé en usar un For Each para este caso pero mis conocimientos no llegan a hasta este comando.
Gracias por su atención.

1 respuesta

Respuesta
Te paso un ejemplo.
'recorro los 600 registros
For i = 0 to 600
  'me posiciono en cada registro y selecciono la columna 6.(F)
    Range("F"+ TRIM(I)).Select
    if ActiveCell.FormulaR1C1 > 90 Then 'Si el valor es mayor de 90 lo añadimos
Range("G"+ TRIM(I)).Select 'En la columna 7 ponemos un 1 los que nos interesan
ActiveCell.FormulaR1C1 = 1
   Endif
Next i
Una vez finalizado con un autofiltro, fitlramos la columna G para que salgan los que tienen 1, lo copias y lo pegas en otra hoja.
Hola:
Gracias por tu pronta respuesta
Me gustaría que ese paso de copiar y pegar también sea automático por que debo repetir el procedimiento para otras 9 hojas.
tal vez con otra condicional If?
If Range("G"+ TRIM(I)).Value = 1 Then
ActiveCell.EntireRow.Copy
Range("I").Paste
algo asi?
Con esto te funcionará!
'ejemplo completo
Dim a as Integer
a = 1
For i = 0 to 600
  'me posiciono en cada registro y selecciono la columna 6.(F)
    Range("F"+ TRIM(I)).Select
    if ActiveCell.FormulaR1C1 > 90 Then 'Si el valor es mayor de 90 lo añadimos
           Rows(trim(i) + ":" + trim(i)").Select 'seleccionamos fila
            Selection.Copy 'copiamos a memoria
'para moverte a otra Hoja sería:
Sheets("Datos").Select
'pegamos en la hoja
    Range("A"+ trim(a)). Select donde pegar, por ejemplo:
    ActiveSheet. Paste
  a = a + 1
   Endif
Next i
No me funciona dice error en el método Range del objeto _Global y resalta esta linea Range("F" + Trim(i)). Select
Prueba a depurar el código con F8 y dime si da siempre o solo al final

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas