Visual Basic para Aplicaciones - Suma Acumulador en una misma celda

Life is soft - evento anual de software empresarial
   
Vista:

Suma Acumulador en una misma celda

Publicado por miguel rodrguezm30@yahoo.es (4 intervenciones) el 27/06/2016 07:08:04
De nuevo les saludo, intente enviar el programa que me ha dado cierto problemita y que no he podido solucionar desde hace como 5 meses.
Al correrlo en las columnas J Y K me da un ERROR DE COMPILACION, e indica tambien PROGRAMA DEMASIADO LARGO.
He buscado ayuda y no la he podido encontrar, hasta que ingrese a su pagina, quiero decirles que conozco algo de excel pero no soy un experto.
Les adjunto el programa y les pido que me puedan ayudar, gracias.
Los seguire ya que me interesa aprender más.
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
Imágen de perfil de Antoni Masana

Suma Acumulador en una misma celda

Publicado por Antoni Masana (48 intervenciones) el 27/06/2016 12:43:43
Reemplaza la macro por esta.

Es más simple y hace lo mismo, Si quieres más columnas modifica la variable Letras.

Si quieres que funcione de la columna B hasta la columna I pon

1
Letras="BCDEFGHI"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Option Explicit
 
Dim valor As Long, Letras As String, Col As Integer, Lin As Integer, Celda As String
Dim cantidadveces As Integer
 
' </> --------------------------------------------------------------------- </>
' </> ---&---  Lee el valor de la celda                            ---& --- </>
' </> --------------------------------------------------------------------- </>
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    valor = 0
    cantidadveces = 0
 
    Letras = "BCDEF"
 
    For Col = 1 To 5
        For Lin = 10 To 29
            Celda = "$" + Mid$(Letras, Col, 1) + "$" + Mid$(Str$(Lin), 2)
 
            If Target.Address = Celda Then
               valor = Sheets("SNB").Range(Celda).Value
            End If
        Next
    Next
End Sub
 
' </> --------------------------------------------------------------------- </>
' </> ---&---  Suma el valor entrado al valor anterior de la celda ---& --- </>
' </> --------------------------------------------------------------------- </>
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Letras = "BCDEF"
 
    For Col = 1 To 5
        For Lin = 10 To 29
            Celda = "$" + Mid$(Letras, Col, 1) + "$" + Mid$(Str$(Lin), 2)
 
            If Target.Address = Celda Then
               cantidadveces = cantidadveces + 1
               If Sheets("SNB").Range(Celda).Value = "a" Then
                  Sheets("SNB").Range(Celda).Value = 0
                  Exit Sub
               End If
 
               If cantidadveces > 1 Then Exit For
 
               valor = valor + Sheets("SNB").Range(Celda).Value
               Sheets("SNB").Range(Celda).Value = valor
            End If
        Next
    Next
End Sub
 
' </> --------------------------------------------------------------------- </>
' </> ---&---  Fin MACRO                                           ---& --- </>
' </> --------------------------------------------------------------------- </>

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Suma Acumulador en una misma celda

Publicado por miguel (4 intervenciones) el 28/06/2016 02:11:46
Buenas tardes Antoni, te agradezco la ayuda que me estas bindando, pero tengo un problemita con la macro que me enviaste y que la cambiara por la que tu creaste, solo que no me corre, me da error y me dice limpiar el depurador, ya he realizado el programa alrededor de 5 veces y no me corre, me podria hacer el favor de revisarlo por si se paso algun dato. Muchas gracias por tu ayuda.
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
Imágen de perfil de Antoni Masana

Suma Acumulador en una misma celda

Publicado por Antoni Masana amasana@hotmail.com (48 intervenciones) el 28/06/2016 10:04:18
Te adjunto el Excel con la nueva macro.

Si te sigue saliendo error captura el mensaje y dime que versión de Excel tienes para poder arreglarlo.

Si te va mejor puedes enviarlo a mi correo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Suma Acumulador en una misma celda

Publicado por miguel (4 intervenciones) el 29/06/2016 03:03:08
Ahora si Antoni, si me funciona muy bien, te agradezco tu ayuda, excelente trabajo, sigue adelante ayudando a otros como yo, que sabes un poco y que nos gustaria aprender más. Me has salvado, ya que este programa es para llevar una estadistica en mi trabajo. Te estoy muy agradecido.
Que Dios te bendiga y muchisimo.


EXCELENTE, ANTONI.
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