Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

For Each VBA

| 4 comentarios

El uso de “FOR EACH” en VBA nos permite controlar objetos dentro del conjunto de elementos por ejemplo una hoja de libro o una celda.

Se usa de la siguiente manera:

Sub xxx()

For each (objetos dentro del conjunto)

Se escribe el objetivo que quiere que se realice en ese conjunto

Next Se finaliza la función For Each

End sub()

 

Como por ejemplo, en la siguiente fórmula podemos obtener el promedio de de las ventas trimestrales de un año en un rango seleccionado.

Sub PROMEDIOVENTAS()

Dim ULT As Integer

For Each cell In Range("b3:b6").cells

sum = sum + cell.Value

cant = cant + 1

Next

prom = sum / cant

Range("E5").Select

ActiveCell.Value = prom

End Sub

FOR EACH 300x169 For Each VBA

 

En la formula, se evalúa el promedio del rango b3 hasta el b6 y coloca el valor en la celda E5

Descargar ejemplo de For Each en VBA: For Each en VBA

4 comentarios

  1. hola tengo un excel los datos de una venta pero gustaria que si aparece el -1
    buscarlo e eliminarlo eliminar la cantidad correspondiente de productos.

    TE EXCELSIOR 100BO 1 1252 1252
    F.CAROZZI 400 GRS. 2 504 1008
    TE MILDRED 250 GRS 1 1790 1790
    AZUCAR PATRONA 1KG 2 445 890
    PECH.POLLO SUPER 0.615 1672 1029
    TE MILDRED 250 GRS -1 1790 1790

  2. me parece sencillo pero muy bueno tu ejemplo, gracias por compartirlo

  3. Buenas, tengo una tabla de datos ingresados a través de un userform, necesito un código que me busque en la tabla la fila que cumpla con tres condiciones, en dado caso, me sume en la misma fila una cantidad. Quien pueda ayudarme le agradezco.. paso lo que tengo hasta ahora..

    Private Sub Agregar_Click()

    ult = Cells(Rows.Count, 1).End(xlUp).Row
    a = ult + 1

    Cells(a, 1) = TextFecha.Text
    Cells(a, 3) = ComboClient.Text
    Cells(a, 4) = ComboCom.Text
    Cells(a, 5) = TextBult.Value

    TextFecha = Empty
    ComboClient = Empty
    ComboCom = Empty
    TextBult = Empty

    TextFecha.Text = Format$(Date, "dd/mm/yyyy")

    If OptMañana.Value = True Then
    Cells(a, 2).Value = "Mañana"
    End If

    If OptTarde.Value = True Then
    Cells(a, 2).Value = "Tarde"
    End If

    Dim a, b, c As String
    Dim d As Integer

    For i = 8 To ult
    a = Cells(i, 1)
    b = Cells(i, 3)
    c = Cells(i, 4)
    d = Cells(i, 5)

  4. Buenas, tengo una tabla de valores con for each ejecutado por un botón que seleccione la y las casillas y me saque el descuento 10% y el resultado lo ponga en la casilla al lado de donde se encuentra dicho valor, no se si me hago entender. Y gracias.

Deja una respuesta

Los campos requeridos estan marcados con *.