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

Esta es la macro que asigne a un botón y agrega resultados a la hoja

Sub Macro5()
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 ´

Mil

1 respuesta

Respuesta
1

No puedes poner una función en la celda C19, porque necesitas tomar el mismo valor de la celda C19 para sumarle 1 o bien para regresarlo a 0.

Debes hacerlo con una macro. Incluso la siguiente propuesta es con tu mismo código que copia de la hoja "Datos" y pega en la hoja "Estadística (2)".

Si vas a utilizar la macro para actualizar los valores de la hoja "Estadística (2)", entonces en esa misma macro se puede realizar el conteo de la secuencia.

Hice ajustes a tu macro y le agregué la parte para el conteo de la secuencia.

Lo que hace la macro es: Primero, copia "C9:G9" y pega en "D19" (con transponer). Después de pegar, se ejecuta el código para actualizar las celdas de C19 a C23.

Sub Contar_Secuencia()
'Por Dante Amor
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim c As Range
  '
  Application.ScreenUpdating = False
  '
  Set sh1 = Sheets("Datos")
  Set sh2 = Sheets("Estadistica (2)")
  sh1.Range("C9:G9").Copy
  sh2.Range("D13").PasteSpecial xlPasteValues
  sh2.Range("D19").PasteSpecial xlPasteValues, , , True
  '
  'Contar secuencia y actualiza los valores de la izquierda
  For Each c In sh2.Range("D19:D23")
    With c.Offset(, -1)
      If c.Value = 1 Then .Value = 0 Else .Value = .Value + 1
    End With
  Next
  Application.CutCopyMode = False
  Application.ScreenUpdating = True
End Sub

[Avísame cualquier duda sobre la macro. No olvides valorar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas