Ealizando sumas excel

Hola amigo estoy realizando sumas excel con esta sentencia  If Target.Address = "$A$1" Then Range("C1") = Range("A1") + Range("C1"), el detalle es que quiero hacer este proceso para toda las columna A y C me podrias ayudar ya que son 670 datos ingresados y cada uno de ellos debe realizar esto que se digite en A1 y se almacene la suma en C1 ayudame porfavor gracias
Respuesta
1
Prueba esto en el evento change de la hoja en donde deseas que se aplique
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim c As String
c = Target.Address
c = Mid(c, 2, 1)
If Target.Address = "$A:$A" Then Exit Sub
If c = "A" Then
  i = Selection.Row - 1
  If Target.Address = "$A$" & i Then Range("C" & i) = Range("A" & i) + Range("C" & i)
  DoEvents
  End If
End Sub
Gracias amigazo por el aporte me sirve de mucho y quisiera que me expliques como esta trabajando la sentencia me que diste, no le entiendo muy bien es que soy nuevo en esto y quisiera que me ayudes a entender gracias por el aporte... 10 puntos
Veamos
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long  ' declaracion de variable
Dim c As String ' declaracion de variable que almacenara la referencia de posición de celda en donde ingresas el dato
c = Target.Address ' le pasamos le referencia de la celda en donde digitaste el dato
c = Mid(c, 2, 1)  ' extraemos el primer caracter de la referencia desde la posicion 2 de la cadena "$A: seria = A
If Target.Address = "$A:$A" Then Exit Sub  ' indicamos que si selecionas la columna A completa no corra el macro pues daria error al no tener un solo valor que evaluar
If c = "A" Then  ' le indicamos que si la variable c contiene A ( estariamos seguros que el dato se intorujo en esa columna, entonces continue el proceso
 i = Selection.Row - 1  ,le pasamos el número de la fila a la variable i  forzamos a tomar la fila en que se introujo el dato, ya que al dar enter el puntero se pasa a la fila siguiente a la que modificamos, pues al decrile -1 indicamos que desde la fila actual tome la anterioir
 If Target.Address = "$A$" & i Then Range("C" & i) = Range("A" & i) + Range("C" & i)
Decimos que si la celda A & i en donde i puede ser cualquier fila de 1 a 65536 entonces:
Tome la celda (c & i) y le asigne el valor de (a & i) + el valor contenido en si misma (c & i)
  DoEvents ' linea que evita que se cuelgue Excel si es que son muchas filas, ya que esta instrucción le pasa el control momentáneamente al sistema operativo de Windows
 End If   ' termina la instrucción
End Sub
Eso seria

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas