............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

LIO EN LA MACRO

Ver el tema anterior Ver el tema siguiente Ir abajo

LIO EN LA MACRO

Mensaje por GENESIS7 el Mar Jun 23, 2009 7:01 am

Estoy intentando hacer una macro en la que en una columna cuando escriba la palabra SUMA se ejecute la macro haciendo que sume dos celdas hacia la derecha un rango de
valores.
Ejemplo imaginemos que tengo en la celda D10 la palabra SUMA Entonces se comprobara
que hay valor en la celda F9 si hay valor entonces sigue comprobando que hay valor en
F8 asi hasta que compruebe que no hay mas valores entonces selecciona todas la celdas
con valor y las suma dando el resultado en la celda F10 que esta en la misma fila que la D10.

Hasta hora no tengo casi nada no se muy bien por donde empezar:

Código:
Sub SubTotal()

    Dim Condicion As String
    Dim Sumas As String
    Dim R As Range
   
    Set R = Selection.End(xlUp).Select 'El problema aquí es que seleccionaría la celda actual hasta la última celda no vacía hacia arriba.
    Condicion = ActiveCell.Range = ("D1:D100")
    Sumas = "SUMA"
   
    If Condicion = Sumas Then
                R
    End If
   
End Sub


Vamos que creo que no voy por buen camino

GENESIS7

Masculino Cantidad de envíos : 6
Edad : 42
Ciudad - Pais : MADRID - ESPAÑA
Version de Excel : EXCEL 2007
Fecha de inscripción : 19/06/2009

Volver arriba Ir abajo

Re: LIO EN LA MACRO

Mensaje por GalileoGali el Mar Jun 23, 2009 8:27 am

Suena a jercicio de tutorial, pero bueno, creo que si es asi, deberas recorrer muchas paginas aun...
este codigo iria en el modulo de la Hoja donde esperas que "al poner la palabra SUMA" sume.

Código:
Option Explicit

Sub SubTotal(rngTarget As Range)
Dim rngBase As Range, rngSuma As Range
Set rngBase = rngTarget.Offset(0, 2)
If rngBase.Value = "" Then Exit Sub
Set rngSuma = Range(rngBase.End(xlUp), rngBase)
MsgBox Application.Sum(rngSuma)
   
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Or Target.Column > Columns.Count - 2 Or UCase(Target.Value) <> "SUMA" Then Exit Sub
SubTotal Target
End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: LIO EN LA MACRO

Mensaje por GENESIS7 el Mar Jun 23, 2009 10:56 am

Gracias pero podrías explicarme un poco el código que va en el modulo del libro?

Quizás suene como un tutorial de echo como comente en otro post reciente estoy buscando tutoriales de VBA y los que me encontrado por la red son copias de copias y la mayoría están enfocados a los principios de Hola Mundo ya sabes a que me refiero.

Me gustaría ir aprendiendo y publicar mis propios tutoriales sobre lo que vaya aprendiendo pero dándole un enfoque mas practico y tocando temas que no se hayan tocado o casi no haya referencias sobre ellos en todos los tutoriales que he visto hasta hora.

Estoy intentando hacer lo que pongo en este hilo una vez que lo haya probado y funcione como yo quiero construiré un pdf explicando cada punto y desmenuzando todo su código para que la gente que este en misma situación entienda su funcionamiento.

Lógicamente en esto de la programación en VBA estoy muy verde pero se como crear en papel una especie de diagrama de flujo o seudocodigo para desarrollar la idea lo que falta es aprender a pasar ese seudocodigo o diagramas de flujo al lenguaje de VBA.

Un saludo y espero colaborar en todo lo que pueda en este foro y agradecerte la aportación que das con este foro.

GENESIS7

Masculino Cantidad de envíos : 6
Edad : 42
Ciudad - Pais : MADRID - ESPAÑA
Version de Excel : EXCEL 2007
Fecha de inscripción : 19/06/2009

Volver arriba Ir abajo

Re: LIO EN LA MACRO

Mensaje por Contenido patrocinado Hoy a las 3:14 pm


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.