ID | Asunto | Fecha | Nick | |
57200 | repetir macro en execl | 13/09/13 22:15 | mendezhugo | | |
buenas programadores del foro del guille, tengo una hoja de excel con una macro que me ayuda a acumular valores en una celda, sin embargo requiero repetir esta programacion de la macro para que afecte a casi 300 celdas según se vallan acumulado valores en alguna de ellas, es con la intención de manejar una especie de inventario, la programacion es la siguiente:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Range("B1").Value = Range("B1").Value + Range("A1").Value End If End Sub
Esto me permite acumular valores escritos en A1 acumularlos en B1, pero requiero repetir esta programación para que la macro afecte desde la Celda A1 y B1, hasta la celda A300 y B300.
qué lineas de programacion se requieren para logar esto? no se rian de mi, pero les comento, opté por escribir la programacion de esta macro 300 veces, jajaja y al final el me manda un error que dice que el procedimiento es demasiado largo, jajaja. Perdonen mi inexperiencia en programación. espero me apoyen, saludos... |
|
ID | Asunto | Fecha | Nick | |
57262 | Re: repetir macro en execl (Resp: 57200) | 18/10/13 12:59 | Pipe[hgjfkdls] | | |
hugo,
pues claramente repetir cualquier código 300 veces no esta bien, te envio un codigo que espero resuelva lo que deseas...
Private Sub Worksheet_Change(ByVal Target As Range) Dim desde As Range Dim hasta As Range Dim iD As Integer Dim iT As Integer Dim iR As Integer Set desde = Range("A1:A300") Set hasta = Range("B1:B300") iD = desde.Cells(1, 1).Row If (Union(desde, Target).Address = desde.Address) Then iT = Target.Cells(1, 1).Row iR = iT - iD + 1 hasta.Cells(iR, 1).Value = Val(hasta.Cells(iR, 1).Value) + Val(Target.Value) End If End Sub
cualquier duda lo comentas =).
Saludos,
[hgjfkdls]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |