Aumento de 10% en 2 rangos de una hoja

Tal vez) o macro que me aumente el 10% de los valores que existen en la columna D, SOLO CADA 1ª ves que en el mes abra el libro.
Se trata de dos rangos D3 a D11 y D16 a D24, pero lo que pretendo seria ¿mejor una macro? Por lo siguiente, expongo:
En el mes puede que se abra el libro varias veces, pero la macro auto - ejecutarse SOLO la 1ª ves en el mes en curso que se abra el libro. (Macro en ThisWorkbook supongo)

Al abrir el libro la 1ª VES EN MES en curso auto - ejecutarse la macro >> crear una hoja llamada Copia >> copiar el contenido de los 2 rangos de la hoja Tabla2 a hoja Copia >> proceder aumentar el 10% de los valores en los 2 rangos en Tabla2. Final de la ejecucion de la amcro.

Verifico el resultado entre "Copia" y "Tabla2" y SI TODO FUE BIEN EL AUMENTO DEL 10%. Elimino yo la hoja "Copia"
Solo eso. No tengo idea sobre como programar una macro.

Gracias

Respuesta
1

Hay que crear una macro, para ello en tu libro de excel Has click en Crtl+F1, te saldrá el editor de VBA, de lado izquierdo selecciona: ThisWorkbook y pega el siguiente código:

Private Sub Workbook_Open()
Dim UltFila As Integer
MESact = Format(Date, "mmmm-yyyy")
UltFila = Sheets("Apertura").Range("A" & Rows.Count).End(xlUp).Row
If Sheets("Apertura").Range("A" & UltFila) = MESact Then
Else
Sheets("Apertura").Range("A" & UltFila + 1) = MESact
Call actualiza
End If
End Sub
Sub actualiza()
HOJA = "DATOS"
For I = 3 To 24
    If I = 12 Or I = 13 Or I = 14 Or I = 15 Then
    Else
        VALOR = Sheets("DATOS").Cells(I, 4).Value
        Sheets(HOJA).Cells(I, 4).Value = VALOR * 1.1
    End If
Next I
End Sub

Para esto tendrás que crear una hoja que se llame "apertura", ahí se crearan el registro para saber si se abrió el libro durante el mes o no.  y cambiar en el código el nombre de la Hoja donde están tus datos. 

HOJA = "DATOS"

Con esto ya actualizara en automático cuento abras el libro, guarda con compatibilidad para macros, verificarlo y me comentas como te fue.

Funciona. Sol ohay un detalle que quisiera que ejecutara com omencione en mi primer swolicitud.

En el procedimiento Workbook_Open creara una hoja "Copia" y a esta copiara todo lo de la hoja Tabla2, ANTES DE EJECUTAR EL PROCEDIMIENTO Sub actualiza(), CALL actualiza.

Solo eso para finalizar y calificarte como lo mereces

Gracias Mauricio

haaa, si no respondí antes fue porque entre a averiguar algo y me di copn esta surpresa, visto no haber recibido notificación alguna

¿

Podrías Mauricio completarme la sugerencia mía?

Gracias por tu apoio

Con el siguiente código te creara una copia con los datos originales antes de aplicar el 10%.

Private Sub Workbook_Open()
Dim UltFila As Integer
MESact = Format(Date, "mmmm-yyyy")
UltFila = Sheets("Apertura").Range("A" & Rows.Count).End(xlUp).Row
If Sheets("Apertura").Range("A" & UltFila) = MESact Then
Else
Sheets("Apertura").Range("A" & UltFila + 1) = MESact
Call actualiza
End If
End Sub
Sub actualiza()
HOJA = "DATOS"
Sheets(HOJA).Copy After:=Sheets(2)
ActiveSheet.Name = "COPIA"
For I = 3 To 24
    If I = 12 Or I = 13 Or I = 14 Or I = 15 Then
    Else
        VALOR = Sheets(HOJA).Cells(I, 4).Value
        Sheets(HOJA).Cells(I, 4).Value = VALOR * 1.1
    End If
Next I
Sheets(HOJA).select
End Sub

Verificarlo y me comentas. 

¡Gracias! Mauricio Felix Cano Rosales

Quedo muy bien. Gracias nuevamente por tu colaboración y facilitación de la macro.

Solo le elimine la hoja Apertura y coloque para la fecha de apertura en la hoja Tabla2 (donde están los datos y en H2 con el titulo Fecha

Me faltaría la línea para eliminar la hoja Copia al cerrar el libro

Y ¿cuál es la línea que crea la hoja Copia?

Gracias amigo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas