Sumar en excel

Buen día.
Necesito que me ayudes con una macro que sume valores de la columna C, estando ubicado en las columnas DE o E, en cualquiera de las dos. Ejemplo:
Si estoy ubicado en la celda D7, sumar desde la celda C8 hasta donde encuentre una celda vacía. Siempre la suma comienza en la columna C una celda más abajo de la celda en que estoy ubicado. Puedo estar ubicado en la columna C o DE en cualquie fila, 10, 50, 20...
Le agradezco su colaboración.

1 Respuesta

Respuesta
1
¿Y si usa esta fórmula? :
=SUMA($C7:$C$3500)
(En la cualquier celda de la fila 6)
Luego podrá copiarla a cualquier parte y seguirá manteniendo la referencia parcial a la celda inferior y absoluta respecto de la columna.
Ni una sola línea de profgramación sería necesaria para esto.
Pruebe y dígame si le sirve.
Personalmente creo que ésta debería resolver su pregunta. Si así fuera, agradeceré un comentario y que la finalice.
Si no, pregúnteme de nuevo.
Un abrazo!
Fernando
*====================================*
La presente respuesta ha demandado un tiempo de lectura,
análisis, elaboración y redacción. A cambio, simplemente,
pretendo que se tome un minuto para FINALIZARLA, si
hubiera satisfecho -en alguna medida- su requerimiento.
En caso contrario, puede preguntarme nuevamente
aclarando qué entendí mal o qué faltó.
fejoal gracias por su atención, realmente le pones interés a las preguntas que se le hacen.
Escribí la fórmula que medio pero me da una referencia circular.
Si no es mucho pedir insisto en una Macro, me permite automatizar mucho más el documento que estoy trabajando.
Ya que ha sido tan amble con su respuesta oportuna tengo otra inquietud.
En la siguiente macro se solicita un nombre de usuario, el único problema que tengo es que al digitar la contraseña esta es visible y necesito que aparezcan asteriscos, de lo conrario la contraseña no es útil.
Podrías agregalre el código que le falta, es que soy nuevo en ésto y hay muchas cosas que no entiendo.
Muchas gracias.
Sub Ent()
With ActiveWorkbook
.RunAutoMacros xlAutoActivate
'With Selection.Interior
Dim nombreusuario As String
Dim contraseña As String
nombreusuario = InputBox("Nombre de usuario")
contraseña = InputBox("Contraseña")
If UCase(nombreusuario) = "SABOGAL" And LCase(contraseña) = "genio" Then
MsgBox "¡Suerte!"
'ElseIf UCase(nombreusuario) <> "SABOGAL" And LCase(contraseña) <> "genio" Then
Else
Application.Run "Terminar"
End If
End With
End Sub
Sub Terminar()
With SelectionInterior
MsgBox Prompt:="Acceso denegado: Nombre de usuario no coincide "
Workbooks("Contador.XLS").Close SaveChanges:=False
End With
End Sub
La única forma en que obtenga una referencia circular con esta fórmula se podría dar si en el rango C7:C3500 existiera una fórmula que usara como argumento la celda donde colocó la suma.
De todas maneras, la siguiente instrucción de Visual Basic (macro) dejará en la celda activa (la que tenga seleccionada al ejecutar la macro), el resultado de tal suma.
La ventaja de la fórmula anterior es que cualquier cambio en el rango de suma se verá reflejado en la suma. En cambio, con la macro, deberá ejecutarla para actualizar el valor. Pero, bueno, es lo que pidió.
---
Respecto a lo segundo, MS Excel no prevé el reemplazo de caracteres por asteriscos en un InputBox.
De todos modos, deberá tener en cuenta que esa protección es débil, toda vez que si el usuario decide no habilitar macros cuando aparece el mensaje de aviso (al abrir el archivo), su procedimiento de pedir password no será ejecutado, quedando libre el archivo para hacer lo que se quiera.
En realidad, MS Excel no es muy sólido en cuestiones de seguridad (¿Hay algo que los sea?).
Según su objetivo con esta protección debería considerar las opciones de protección de hoja, de libro, de archivo y de códigos de VBA que vienen incluidas en el programa. Tal vez alguna de ellas le sea útil.
Espero haberle aclarado sus dudas...
Que tenga un gran fin de semana!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas