¿Programar excel especificando un rango donde quiero que automáticamente me de un valor consecutivo?

De que manera puedo hacer para programar un rango especifico de una hoja de excel, para que cuando yo meta información en un campo y excel detecte que hay datos en ese campo, de manera automática y sin formulas me aparezca el número consecutivo.

Agradezco el apoyo que me puedan ofrecer.

Saludos

1 Respuesta

Respuesta

Es algo confuso lo que pides... pero me arriesgo a responderte.

Necesitaría el siguiente código a incluir en la hoja de trabajo del Explorador de VBA... ojo por que es un evento change que entra en rutina, por lo que debemos emplear Application.EnableEvents = True

Application.EnableEvents = False

El código sería:

Sub Worksheet_Change(ByVal Target As Range)
'www.excelforo.com
Dim celda As Object
For Each celda In Range("A1:E10")
If celda.Value <> "" Then celda.Value = celda.Value + 1
Application.EnableEvents = False
Next celda
Application.EnableEvents = True
End Sub


Este código cada vez que cambia algo en la hoja para recorrer el rango A1:E10 (el que tu quieras) y para las celdas no vacías (entiendo que son todas numéricas si quieres aparezca el número consecutivo) las incrementa en 1 (esto es, el siguiente). Esto lo hace para todas las celdas del rango!

Si sólo quieres incrementar la celda cambiada (la última) el código a insertar en el mismo lugar sería:

Private Sub Worksheet_Change(ByVal Target As Range)
'www.excelforo.com
Application.EnableEvents = False
Dim celda As Object
If Target.Value <> "" Then
Target.Value = Target.Value + 1
End If
Application.EnableEvents = True
End Sub


Espero te sirva.

Slds

P.D.: Por favor, no olvides valorar y cerrar la pregunta si la información te fué útil.

Gracias por atender mi solicitud, lamento si no logre explicarme bien.

Voy a hacer un esfuerzo por explicarlo de mejor manera a través de un ejemplo

Una de las cosas que me gustan mucho es que mi trabajo en excel sea muy limpio, creativo, y mas automatizado, es así como me nace la inquietud de solicitar apoyo para lograr este objetivo, de la misma manera me gusta retroalimentar a aquellos a quienes me lo requieran.

Volviendo al tema, lo que a mi me interesa es concentrar mi atención en un rango definido en una sola columna, es decir, normalmente elijo la columna "A" o "B" para ingresar números consecutivos que me den la idea de la cantidad de datos que tengo.

columna

fila "A" "B" "C"

1 No. Insumo Cantidad

2 1 m 10

3 2 n 20

4 3 o 30

5 4 p 40

Este es un ejemplo.

Lo que yo quiero evitar es estar colocando manualmente los números consecutivos; o colocar una formula aunque sea oculta, porque cuando eliminas una fila también se elimina con su formula y ya no sigue la numeración consecutiva y tendrías nuevamente que arrastrar lo valores de una fila anterior, quiero evitarme todo ese tipo de cuestiones.
Espero haberme expresado de mejor manera con este ejemplo, de tal manera que, pueda ser posible encontrar la manera mas adecuada de resolverlo.

Gracias Experto ExcelForo

Algo más claro.

Quizá te pueda servir entonces el siguiente código:

Private Sub Worksheet_selectionChange(ByVal Target As Range)
Dim celdaactiva As Object
Dim numfila As Variant
numfila = ActiveCell.Row
If Not Intersect(Target, Range("A:A")) Is Nothing Then
If numfila > 2 Then
If Cells(numfila, "B").Value <> "" Or Cells(numfila, "C").Value <> "" Then
Target.Value = Target.Offset(-1, 0).Value + 1
End If
Else
If numfila = 2 Then Target.Value = 1
If numfila = 1 Then Target.Value = Target.Value
End If
End If
End Sub


Para insertar en la hoja de trabajo dentro del explorador de proyectos en VBA.

La macro da el número siguiente en la columna A, sólo cuando en la columna B o en la columna C hay algún dato. Requiere seleccionar la celda en cuestión!.

Slds

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas