Los foros del Guille

elGuille.hosting: Ofertas de alojamiento
posiblemente los mejores precios
¡¡¡ Ahora con el doble de casi todo !!!

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

20/dic/2007
Cuando pegues código, fíjate de no pegar los espacios del principio, si usas copiar y pegar desde Visual Studio, seguro que esto te ayudará a saber cómo hacer selecciones de código: Cómo... Seleccionar bloques de código con Visual Studio. Gracias.

  Foro: Office.Programación Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 57200 - repetir macro en execl
IDAsuntoFechaNick 
57200 repetir macro en execl13/09/13 22:15mendezhugo   
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...
IDAsuntoFechaNick 
57262 Re: repetir macro en execl (Resp: 57200)18/10/13 12:59Pipe[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.

 
(c) Guillermo 'guille' Som, 2005-2017  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8762)
 
Usuarios activos: 186 - App. iniciada: 14/12/2017 7:42:09 GMT - La hora GMT del servidor es: 14/12/2017 21:01:24 GMT