UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

borboleta85


Hola gente¡

Me gustaria hacer una condicion para que las celdas que estan en blanco hagan el promedio de el valor de encima y el de abajo y lo pongan en la celda en blanco.

Primero tengo el problema que no se como marcar celda en blanco ya probe con poner si(" ") para señalar la celda en blanco y me dio error.
y el otro problema que tengo es que igual tengo 3 o mas celdas en blanco seguidas , lo que me gustaria hacer suponiendo que tengo la celda a1=3 y luego las celdas a2,a3,a4 en blanco y la celda a5=6, lo que quisiera hacer es que en la celda a2 calculara el promedio entre a1 y a5(las celdas con dato) pero en la celda a3 que me hiciera el promedio del resultado obtenido en la celda a2 y el valor de la celda a5.
No se si me explique bien o no, adjunto un ejemplo si teneis dudas aqui estoy¡

Muchas gracias
Archivos
ejemplo.xlsx
No tienes los permisos para descargar los archivos.
(10 KB)

railar


Hola borboleta85

Te paso una macro para tu petición, 

Revisa el adjunto, Dale clic al botón  y comentas

Saludos
Archivos
Promediar en los espacios.xlsm
No tienes los permisos para descargar los archivos.
(18 KB)

borboleta85


Hola¡

Pues muchas gracias voy a ponerme a ello porque nunca trabaje con macros... pero  con los tutoriales y demas creo que dare como hacerlo.

Lo unico que deberia cambiar en la macro seria el rango de las celdas no? para aplicarlo a mi base de datos y luego para aplicarla con dar a la macro creada ya me lo aplicaria a todo no?

Siento mis preguntas de principiante, muchas gracias por la respuesta¡

railar


Hola borboletas85,
te explico la macro
Código:
Sub promediar()
Application.ScreenUpdating = False 'Evita los parpadeos de pantalla
i = 3 'fila inicial donde comienzan tus calculos
filafin = Range("A65536").End(xlUp).Row 'Esta variable nos da la última fila con dato
For i = 3 To filafin 'Con este bucle se recorre todos los datos hasta la última fila averiguada
If Cells(i, 1) <> "" And Cells(i, 2) <> "" Then 'Condicionamos si la celda i representa la fila y los números obedecen a las columnas, entonces si existe dato que pase al siguiente
Cells(i, 1).Offset(1, 0).Select  'Seleccionamos el siguiente dato
If Selection = "" Then 'si la celda seleccionada es igual a nada entonces
Selection.Value = (Selection.Offset(-1, 0).Value + Selection.End(xlDown).Value) / 2 'la celda seleccionada toma un valor = a la celda anterior + la celda con dato siguiente dividido por 2
Selection.Offset(0, 1).Select 'pasamos a la celda de la otra columna y le aplicamos la misma formula
Selection.Value = (Selection.Offset(-1, 0).Value + Selection.End(xlDown).Value) / 2
End If
End If
Next i
Application.ScreenUpdating = True 'Activamos los parpadeos de la pantalla
End Sub

Por lo anterior si te fijas, tienes que tener en cuenta la columna inicial que en este caso es la A que es la que esta referenciada con el Rango: A65536 es decir la última celda para este caso y que la columna siguiente sea continua, en caso que no lo sea tienes que cambiarles los valores en el offset.

Saludos

borboleta85


Si ya lo hice y me funciono¡ esta muy bien esto de las macros seguire investigando.

Muchas gracias por tu tiempo, saludo.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.