Saltar al contenido

Insertar fórmula en todos los valores contenidos en las pestañas


Recommended Posts

publicado

Buenas, quisiera obtener ayuda con un macro para insertar una formula que convierta el valor que tengo en litros a barriles, de la siguiente manera

Hoja original

[TABLE=class: outer_border, width: 100]

[TR]

[TD]Valor original[/TD]

[/TR]

[/TABLE]

Hoja con fórmula insertada

[TABLE=class: outer_border, width: 500]

[TR]

[TD](Valor original/1000)*6,28981[/TD]

[/TR]

[/TABLE]

Esto en todas las pestañas de la hoja de excel, adjunto el documento que necesito cambiar, muchas gracias!

Ejemplo de litros a barriles.xls

publicado

Hola:

La macro que viene a continuación, hace lo que pides, o eso creo.

Lleva un control de doble ejecución, es decir, si la ejecutas mas de 1 vez, se queja.

Saludos

Sub ConvertirLitrosABarriles()

Dim Hoja As Worksheet, I As Long, F As Long, Celda As Range


For Each Hoja In ActiveWorkbook.Sheets

If Hoja.Range("K1") = "BARRILES" Then
MsgBox Hoja.Name & " Hoja ya convertida. Se ignora."
GoTo Siguiente
End If

For X = 1 To Hoja.Range("A" & Rows.Count).End(xlUp).Row
If Trim(UCase(Hoja.Range("A" & X))) = "NACIONALES" Then I = X
Next

If I = 0 Then
Beep
MsgBox Hoja.Name & "No se donde empezar. Hoja no convertida"
GoTo Siguiente
End If

For X = Hoja.Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Trim(UCase(Hoja.Range("A" & X))) = "TOTALES" Then F = X
Next

If F = 0 Then
Beep
MsgBox Hoja.Name & " No se donde TERMINAR. Hoja no convertida"
GoTo Siguiente
End If

Hoja.Range("K1") = "BARRILES"

For Each Celda In Hoja.Range("B" & I + 1 & ":I" & F - 1)
If Not Celda.HasFormula = True Then
Celda.Value = Celda.Value * 6.28981 / 1000
End If
Next

Siguiente:
Next


End Sub


[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.