Excel - FORMULAS CON MACRO

   
Vista:

FORMULAS CON MACRO

Publicado por Libia escorpionllch@gmail.com (6 intervenciones) el 18/03/2015 02:59:44
Hola

buenas noches

por favor suapoyo en brindarme un orientación, tengo un tabla en excel que actualmente lo trabajo con fórmula directo en el libro, pero como tengo problemas porque muchas veces por error lo borran deseo que ahora dichas fórmulas estén en visual.

* en la columna E uso la fórmula: =SI(Y(G4 <> 0, H4 <> 0, I4 <> 0), (G4 * H4 * I4) / 5000, 0), que toma los valores de las columnas G, H e I para calcular el volumen.

* en la columna F uso la fórmula: = =SI(D4 - C4 > E4 - C4, D4 - C4, E4 - C4), en el cual hallo el mayor peso entre la diferencia de las columnas D con C , E con C.

Generé este módulo

Public Sub volumen()
Range("E4:E500").Formula = "=SI(Y(G4 <> 0, H4 <> 0, I4 <> 0), (G4 * H4 * I4) / 5000, 0)"
Range("F4:F500").Formula = "=SI(D4 - C4 > E4 - C4, D4 - C4, E4 - C4)"
End Sub


la otra consulta es que cuando lo ejecuto sale: #¿NOMBRE?, pero cuando le doy F2 y luego enter aparece el valor, pero la fórmula se sigue apreciando.

Cómo hago para que ya no se vea la fórmula en la columna E y F y de inmediato aparezca el valor númerico sin necesidad de dar F2 a cada celda y luego enter para que aprezca el valor.

saludos cordiales
Libia Linares
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

FORMULAS CON MACRO

Publicado por Juanjo (494 intervenciones) el 18/03/2015 08:12:35
Muy buenas.

No te aseguro que sea eso, pero prueba a utilizar en lugar de "Formula" "FormulaLocal". En mi caso tengo que utilizar el separador de ";", no sé en el tuyo y queda así:


Public Sub volumen()
Range("E4:E500").FormulaLocal = "=SI(Y(G4 <> 0; H4 <> 0; I4 <> 0); (G4 * H4 * I4) / 5000; 0)"
Range("F4:F500").FormulaLocal = "=SI(D4 - C4 > E4 - C4; D4 - C4; E4 - C4)"
End Sub

Un saludo. Juanjo.
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

FORMULAS CON MACRO

Publicado por CoquitoPe (58 intervenciones) el 18/03/2015 16:23:29
Un saludo :
si estas con macro.... sugiero...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub volumen()
Dim sinFila As Single
sinFila = 4 'Inicio
Do
If Cells(sinFila, "G") > 0 And Cells(sinFila, "H") > 0 And Cells(sinFila, "I") > 0 Then
    Cells(sinFila, "E") = Round(Cells(sinFila, "G") * Cells(sinFila, "H") * Cells(sinFila, "I") / 5000, 2) ' redondeo a 2 decimales
    If (Cells(sinFila, "D") - Cells(sinFila, "C")) > (Cells(sinFila, "D") - Cells(sinFila, "C")) Then
        Cells(sinFila, "F") = (Cells(sinFila, "D") - Cells(sinFila, "C"))
    Else
       Cells(sinFila, "F") = (Cells(sinFila, "D") - Cells(sinFila, "C"))
    End If
ElseIf Cells(sinFila, "G") + Cells(sinFila, "H") + Cells(sinFila, "I") > 0 Then
        Cells(sinFila, "G").Select: Stop: End  ' Falta datos en una de las columnas
End If
sinFila = sinFila + 1
Loop While Cells(sinFila, "G") <> "" And Cells(sinFila + 1, "G") <> ""
End Sub

por si acaso... no revise resultados... ni columnas... tu tarea...
termina si encuentra dos celdas vacias y continuas en la columna "G",
puse las columnas con letras... es mejor utilizarlo con numeros...

bye...

comentas saludos
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

FORMULAS CON MACRO

Publicado por Libia (6 intervenciones) el 22/03/2015 04:29:40
Hola CoquitoPe

buenas noches

gracias, solo hice unos pequeñísimos cambios de acuerdo a mi necesidad:

esto cambié en LOop: Loop While Cells(sinFila, "A") <> "" And Cells(sinFila, "B") <> ""

lo que necesito es que cuando llegue al LOOP y las columnas A o B estén vacías me de el mensaje que la columna "A" o en su defecto "B", o en ambos casos se encuentre vacía me salga el mensaje, lo hice pero el mensaje me sale a pesar que ambas columnas estén llenas.

y lo otro como hago que la macro se ejecute directamente sin necesidad de entrar al visual.

Es necesario que la programación lo coloque dentro del WOORKBOOK, paraque se cargue directamente?

saludos cordiales,

Libia Linares
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