Visual Basic para Aplicaciones - Suma Acumulador en una misma celda

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Suma Acumulador en una misma celda

Publicado por miguel (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
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma Acumulador en una misma celda

Publicado por Antoni Masana (498 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
sin imagen de perfil

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
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma Acumulador en una misma celda

Publicado por Antoni Masana (498 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
sin imagen de perfil

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