Saltar al contenido

Numerar despues de llenar columna E


Recommended Posts

publicado

Hola buenas noches:

 

En una hoja tengo una macro que me ayuda a pegar información en la columna E a partir de la fila 17. todo esto dependiendo de la columna C. en ella celda (C17) pongo un número que trae los datos de otra hoja y los coloca en la misma fila, pero de la columna E. terminando de pegar se recorre nuevamente a la columna C. y de ahí digito un 2 (consecutivo) y vuelve hacer el mismo proceso.

Hay alguna manera de poder poner los consecutivos de manera automática, al yo poner en la celda C17 el numero 1, y donde se active la celda de la columna C, poner el consecutivo siguiente. y como limite la celda J2. en donde estará el límite ejemplo 15. esto siempre puede variar.

 

Gracias por su aporte.

 

 

 

 

 

Consecutivo en celda que se active.xlsm

publicado

Tu archivoConsecutivo en celda que se active.xlsm

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 5 Or Target.Row < 19 Then Exit Sub

    Dim hoja As Worksheet
    Set hoja = ThisWorkbook.Sheets("hoja1")

    Dim nombreActual As String
    Dim nombreAnterior As String
    Dim limiteMaximo As Long

    nombreActual = Target.Value

    If Target.Row > 18 Then
        nombreAnterior = hoja.Cells(Target.Row - 1, "E").Value
    End If

    limiteMaximo = hoja.Range("J18").Value

    If nombreActual <> nombreAnterior Then
        Dim consecutivo As Long
        consecutivo = Application.WorksheetFunction.Max(hoja.Columns(3)) + 1

        If consecutivo < limiteMaximo Then
            hoja.Cells(Target.Row, "C").Value = consecutivo
        Else
            MsgBox "El consecutivo ha alcanzado el límite máximo permitido.", vbExclamation
        End If
    End If
End Sub

 

publicado

Lo mismo  que JSDJSD:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 17 And Target.Column = 5 And Target.Cells.Count = 1 Then
   If Not Target = Target.Offset(-1) Then
      n = WorksheetFunction.Max(Columns("C")) + 1
      If Not n > Range("J18") Then
         Range("C" & Target.Row) = n
      Else
         MsgBox "Máximo superado", vbCritical
      End If
   End If
End If
End Sub

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.