Crear nueva función en VBa que cuente un valor y se reinicie al salir un valor diferente

Como se puede crear una nueva función en VBa que cuente un valor y se reinicie al salir un valor diferente

En este caso se considera 1 u 0 pero la idea es la misma contar el mismo valor hasta que salga uno diferente y el conteo empiece de nuevo, la celda D17 varia de acuerdo al ingreso de datos en D11

La celda d11 se actualizara de acuerdo a los datos que se vayan ingresando y den resultado 1 o 0.

Tratando de buscar una solución pensé en colocarle ceros a una nueva tabla para poder contarlos sin embargo pienso que mejor seria creando una función

1 respuesta

Respuesta
1

No entiendo bien en dónde vas a capturar los 1s y los 0s.

En cuáles celdas tienes fórmulas y pon aquí esas fórmulas.

O si puedes compartir tu archivo en google drive. Comparte para cualquiera que tenga el archivo, copia el enlace y lo pegas aquí.

También explica con un ejemplo qué quieres de resultados. Es decir, capturas 1. 1. 1

El conteo es 3, luego capturas 0 el conteo empieza de nuevo.

¿Pero qué quieres hacer con el 3?

Gracias estimado el archivo no tiene formulas pero el 3 viene a ser el conteo de "0" las veces que sea ingresado lo que busco es de las celdas F17:F21 mostrar la idea de como crear una función en VBa para eso.

En una serie de :

1.- 000000001/000000

2.- 00001/0000000000

3.- 001/0001/000000001/00000000000001/00

en la primera salieron 8 ceros luego salió 1 y al final solo hay 6 entonces se mostraría 6

en la segunda salieron 4 ceros luego salió 1 y al final solo hay 10 entonces se mostraría 10

en la tercera se mostraría 2 ya que AL SALIR UN UNO REINICIA LA CUENTA ENTONCES hay dos ceros después de un 1

LOS RESULTADOS 1 Y 0 VIENEN A SER INGRESADO AUTOMATICAMENTA POR CADA REGISTRO QUE YO GENERE LAS CELDAS DEL D17:D21 SOLO ES UN IGUAL 

D17=D11

D18=E11

D19=F11

D20=G11

D21=H11

Voy a empezar de nuevo con una sola duda, para que me respondas solamente esta duda.

En cuáles celdas vas a capturar los 1s y los 0s.

¡Gracias!

los 1 y ceros solo aparecen en d17:d21 cada vez que ingreso un nuevo registro con una macro en otra hoja se van modificando los datos 

quisiera capturar en la C17:C21

quisiera aplicar una nueva función como algo así

Function CalculaImpuesto(Valor As Double) As Double
Dim calculo As Double
calculo = Valor * 0.13
CalculaImpuesto = calculo
End Function

solo que en vez de realizar eso cuente los 0 que parecen hasta que salga 1 luego reiniciar la cuenta

soy nuevo en VBa pero seria de gran ayuda ya que estoy por terminar mi proyecto

Sigo sin entender en cuáles celdas capturar los 1 y los 0.

Podrías explicar una secuencia.

Es decir, en la celda D17 capturas un 0

¿Qué quieres que aparezca en la celda C17?

Luego en la celda D18 capturas un 0

¿Qué quieres que aparezca en la celda C17 y qué en la celda C18?

Luego en la celda D19 capturas un 0

¿Qué quieres que aparezca en la celda C17, qué en la celda C18 y qué en la celda C19?

Luego en la celda D20 capturas un 1

¿Qué quieres que aparezca en la celda C17, qué C18, qué C19 y qué en C20?


Luego explica otra secuencia empezando con 1 y cambiando a 0.

O explica varias secuencias para entender qué necesitas.

Si es correcto, ok, esta imagen muestra 4 secuencias al final muestro un pequeño cuadro explicando lo deseado

En tu imagen dices:

"estos datos se actualizan con un botón con macro..."

Puedes poner la macro aquí.

Si quieres, en esa misma macro actualizo los contadores. Pero necesito ver la macro para saber si actualiza una celda o varias al mismo tiempo.

Muchas gracias Dante,

Esta es la macro que asigne a un botón

Sub Macro5()
'
' Macro5 Macro
'

'
Sheets("Datos").Select
Range("C9:G9").Select
Selection.Copy
Sheets("Estadistica (2)").Select
Range("D13:H13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Copy
Range("D19").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Range("C15").Select
End Sub

Espero sirva, copio un rango de la hoja "datos" y lo pego en la hoja "estadística 2" de manera especial solo valores en D13:H13 y al ultimo copio el rango D13:H13 en hoja "estadística 2" lo pego de manera especial de horizontal a vertical en el rango D19:D23

Requiero una función que me permita:

Cada vez que salga un 1 -----> valor de celda 0

Cada vez que salga un cero ------> el valor de la celda más 1

En este caso la celda que va a a ser afectada por la función es "C19" y la celda que albergará los 0 y 1 es "D19"

Al final hacer clic sostenido en "c19" hasta "c23" para que pueda copiar la función en las demás celdas.

Cave recalcar que en mi proyecto tengo muchas más columnas que cuentan probabilidades y la función seria genial ya que solo tendría que cambiar las columnas o celdas que estén involucradas en otras hojas

´ Si se requiere adicionar algo que muestre que es un nuevo registro como un contador de registros o etc no dudes en decirme ´

Mil gracias

La función seria genial

No puede ser una función, quieres poner la función en la celda C19 y al mismo tiempo al valor de la celda C19 incrementarlo o regresarlo a 0.

Es necesario hacerlo con una macro, para dejar fijo el valor en la celda C19 y sobre ese valor ya puedes incrementarlo o regresarlo a 0.

Te pasé la macro en tu otra pregunta.

Contar con VBA "0" hasta que aparezca "1" luego reinicia la cuenta cuando aparece "1" empezara a contar desde 0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas