............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Numeracion en A sucesiva

Ver el tema anterior Ver el tema siguiente Ir abajo

Numeracion en A sucesiva

Mensaje por JoaoM el Sáb Ago 09, 2014 12:23 pm

La idea es la siguiente:
Una base tengo en una hoja. En la columna A una numeración que puede ir el 00000001 hasta 00050000

Un formulario en el cual tengo una macro con un botón "Eliminar". En el form por medio de un ComboBox selecciono el proveedor 00000002 y por medio del botón Eliminar acciono el evento Private Sub btnElimi2_Click() desde la cual llamo la macro Numerar y elimino el Proveedor numerado en A3 00000002, no me coloca la numeración sucesiva porque elimine una de las 2 A2 o A3 que hacen falta para que proceda exitosamente la macro Numerar si elimino de la A4 (00000003) hacia adelante, si me coloca la numeración sucesiva (seguido (continuo))

Esta la macro que me sale de la grabadora
Código:
Sub Macro1()
' Macro1 Macro

    Range("A2:A3").Select
    Selection.AutoFill Destination:=Range("A2:A5"), Type:=xlFillDefault
    Range("A2:A5").Select
End Sub

Esta la macro compuesta, le agregue lo de rojo
Código:
Sub Numerar()

    Range("A2:A3").Select
    Selection.AutoFill Destination:=Range("A2", Range("A2")[b][color=#0033ff].End(xlDown))[/color][/b], Type:=xlFillDefault
    Range("A1").Select

End Sub

Mi solicitud es poder eliminar cuando lo necesite, la A2 o A3 y que me coloque la numeración sucesiva (seguida (continua)).

La macro Numerar está en que primero selecciona las 2 celdas A2 y A3 y haciendo esto al eliminar una de las 2 no funciona porque elimine precisamente una de las necesarias para el evento Numerar. ¿Una solución por favor?

Parece haber una solución aquí [Tienes que estar registrado y conectado para ver este vínculo] pero no se aplicarla para que funcione

Gracias

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por rolano el Jue Oct 22, 2015 4:57 pm

Código:

Sub Numerar()
uf = Range("A" & Cells.Rows.Count).End(xlUp).Row
    Range("A2") = "000001"
   
Range("A2").AutoFill Destination:=Range("A2:A" & uf), Type:=xlFillSeries
Range("A1").Select

End Sub


_________________
Saludos,
César Tirado
M.A.P. 2012-2014
Microsoft Active Professional
Blog
avatar
rolano
Moderador
Moderador

Masculino Cantidad de envíos : 53
Edad : 43
Fecha de inscripción : 14/04/2009

http://excelilove.blogspot.com/

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por JoaoM el Jue Oct 22, 2015 6:55 pm

Hola rolano, gracias por tu respuesta.
Quiero decirte que resolvi esto así:
Código:
Sub Numerar()
'Por Dante amor
    u = Range("B" & Rows.Count).End(xlUp).Row
    If Range("B2") <> "" Then Range("A2") = 1
    If Range("B3") <> "" Then Range("A3") = 2
    If u > 3 Then
        Range("A2:A3").AutoFill Destination:=Range("A2:A" & u), Type:=xlFillDefault
    End If
End Sub
Como sea, bien venida tu opcion que funciona bien, hasta la eliminacion del item 3 (A4).
Te muestro imagenes consecuenciales;
Esta imagen es eliminando hasta solo quedaren 2 itens y seleccionar el # 2 (A3) que se ve ya en el formulario. Puedo seleccionar el 2 o el 1, sucede lo mismo con cualquier de ellos. Sopuniendo que tengo 5, 12, 150, 10000 itens, tengo que eliminar uno o mas que uno entre tantos y lo que pretendo es precisamente eso, lo que hace la macro pero, sin el error si solo tengo unos pocos (5, 3, 10, 2) y quiero eliminarlos todos tal como la macro que tengo, la que te mustre arriba


Como puedes apreciar, la imagen del error. Despues que le doy al boton Depurar o Finalisar se nota que el item # 2 aun así es eliminado pero yo digo que deveria eliminar sin error hasta el item # 1 dejando la columna A sin Itens tal como puedes observar en la ultima imagen


La siguiente muestra despues del error y eliminar el Iten #2, com oqueda la columna A en especial en A1 me reemplasa la palabra Item por lo que ves


La ultima que mencione arriba, ves como te deja todo, todo en orden perfecta para que al insertar comience del 000001
[Tienes que estar registrado y conectado para ver este vínculo]

El caso no es tener 1200 Itens y querer eliminarlos todos, NO, si no que si al tener 3 o 6 o 2 y querer eliminar de 5, 4 o los 5, sucede lo que te muestro y comento. Prueba la que te mustre arriba

Dirias tu; Pero si ya tiene una que le funciona, ¿porque quiere seguir con esto? bueno sigo contigo en mi comentario para que si quieres perfeccionarla, estare a tu dispor para darte mi aporte en la(s) pruebas porque para la creacion, no soy ni estoy capacitado

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por rolano el Jue Oct 22, 2015 7:41 pm

Prueba así:
Código:

Sub Numerar()

uf = Range("A" & Cells.Rows.Count).End(xlUp).Row
 
        If (Cells(uf, 1)) = "Item" Then
            Range("A2") = 1
          Else
        If Range("B2") <> "" Then Range("A2") = 1
            If uf > 2 Then
            Range("A2").AutoFill Destination:=Range("A2:A" & uf), Type:=xlFillSeries
            Range("A1").Select
            End If
        End If
End Sub

_________________
Saludos,
César Tirado
M.A.P. 2012-2014
Microsoft Active Professional
Blog
avatar
rolano
Moderador
Moderador

Masculino Cantidad de envíos : 53
Edad : 43
Fecha de inscripción : 14/04/2009

http://excelilove.blogspot.com/

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por JoaoM el Jue Oct 22, 2015 9:36 pm

Hola rolano, nuevamente te doy las gracias.
Esta casi casi (como dicen por acá.

La macro funciona sin ningun error pero;
La imagen inicial para seleccionar el 1º a eliminar (soponiendo que quiero eliminarlos todos


Esta representa ya la eliminacion del unico item existente


Despues de eliminado el unico iten existente, me deja en A2 esto


Deveria dejarme así


Asi para que al insertar inserta en A2 iten 000001. Tal como está la macro, al existir en A2 el iten 000001, va y inserta en linea A2 el 1ª iten pero en A3 pasa a existir 000002 y sucesivamente con las demas y no puede por el contador que tengo que al insertar me dice que existe el Producto 000002 y va a insertar el 000003 y no puede porque va ia insertar el producto 000002


Última edición por JoaoM el Vie Oct 23, 2015 1:33 pm, editado 1 vez

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por rolano el Vie Oct 23, 2015 9:35 am

Tu lo tienes mas claro con el archivo, seria bueno que adjunte dicho archivo para hacer prueba y error.

_________________
Saludos,
César Tirado
M.A.P. 2012-2014
Microsoft Active Professional
Blog
avatar
rolano
Moderador
Moderador

Masculino Cantidad de envíos : 53
Edad : 43
Fecha de inscripción : 14/04/2009

http://excelilove.blogspot.com/

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por JoaoM el Vie Oct 23, 2015 1:41 pm

Ok rolano, si te lo estoy dejando.
Ve como esta la ultima imagen, así tiene que quedar, solo titulos

Para abrir el formulario, pisas en INGRESO Y EDICION PROV/PROD y abres la pestaña Edicion de Productos
Seleciona un producto en el Combo y usa el boton Eliminar

No me pemite subir el archivo, me dice que agote el espacio.
No es posible subir el archivo : has sobrepasado el tamaño total del espacio de almacenaje.(Espacio libre : 0 KB)

Voy a mi pwerfil a archivos y tengo esto
Almacenaje (Utilizado: 0 Mb sobre 2.93 Mb)

Dejame ver como enviartelo

Aqui esta
Archivo

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por rolano el Vie Oct 23, 2015 2:56 pm

Prueba con estos códigos...
Código:

Private Sub btnElimi_Click() 'ELIMINAR PRODUCTO
Application.ScreenUpdating = False
    'ActiveSheet.Unprotect "By Jot@"
    'Para no borrar la fila de descripción
    If cmbEdProd.Text = "Descripcion Producto" Then
    MsgBox "No borrar"
    Exit Sub
    End If
   
    If cmbEdProd.Text = "" Then
   
        MsgBox "Seleccione 1 producto para eliminar", vbInformation + vbOKOnly
        cmbEdProd.SetFocus
        Exit Sub
    End If
   
    If MsgBox("¿Seguro que quiere eliminar el producto; " & cmbEdProd.Text & "?", vbQuestion + vbYesNo) = vbYes Then
       
        ActiveCell.EntireRow.Delete
       
        Numerar
        CargarLista
    cmbEdProd = "": txtcli10 = "": txtcli20 = "": txtcli30 = "": txtcli40 = "": txtcli50 = "": _
    txtcli60 = "": txtcli70 = "": txtcli80 = ""
       
        MsgBox "Producto eliminado", vbInformation + vbOKOnly
        cmbEdProd.SetFocus
       
  End If
    'ActiveSheet.Protect "By Jot@"
    Application.ScreenUpdating = True

End Sub
Código:

Sub Numerar() 'sirve. Numera sucesivo. Al eliminar todos datos de la hoja
'Por DAM
uf = Range("B" & Cells.Rows.Count).End(xlUp).Row
 
        If (Cells(uf, 1)) = "Item" Then
          'colocar lo que desees
          Else
        If Range("B2") <> "" Then Range("A2") = 1
            If uf > 2 Then
            Range("A2").AutoFill Destination:=Range("A2:A" & uf), Type:=xlFillSeries
            Range("A1").Select
            End If
        End If

End Sub
el programa no corre falta procedimientos, borre todo y quise ingresar con el userform no se efectuo.

_________________
Saludos,
César Tirado
M.A.P. 2012-2014
Microsoft Active Professional
Blog
avatar
rolano
Moderador
Moderador

Masculino Cantidad de envíos : 53
Edad : 43
Fecha de inscripción : 14/04/2009

http://excelilove.blogspot.com/

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por JoaoM el Vie Oct 23, 2015 4:27 pm

Aqui si me corria aunque tuve que quitarle hojas y formularios, asi mismo Módulos pero probe antes de dejartelo y funciona, aun lo tengo aqui el que te envie, por eso te digo, a mi si

Es de sentirse bien con alguien que se empeña en ayudar y que el usuario se sienta satisfecho.

Aunque te dije que la macro inicial del post #3 funciona tal como la final tuya, no te amilanaste en seguir buscando otra vía, otra macro, otra manera de que hiciera lo mismo.
Talvez otr@ pudiera decir; si esa te funciona para que buscar alas si ya las tienes? pero tu, quisiste hacerte mas grande en conocimiento de la materia de lo que ya eres, buscaste unas allas para reforzar tu vuelo.

Gracias rolano por tu solución, está perfecta.


Si algún comentario pudiera agregar a o las macros que me dejas, te agradecería, aunque no tengo la experiencia ni la inteligencia para crear líneas de código, me gustaría saber que hace cada línea o cada conjunto de líneas.

Mis más sinceros agradecimientos por tu tiempo

Me queda entrar a tu blog para conocerlo, alla voy

Probando algo por aqui, en el evento
Código:
Private Sub btnElimi_Click() 'ELIMINAR PRODUCTO
Application.ScreenUpdating = False
    'ActiveSheet.Unprotect "By Jot@"
[b]    'Para no borrar la fila de descripción
    If cmbEdProd.Text = "Descripcion Producto" Then[/b]

Código:
Sub Numerar() 'sirve. Numera sucesivo. Al eliminar todos datos de la hoja
'Por DAM
uf = Range("B" & Cells.Rows.Count).End(xlUp).Row
 
        [b]If (Cells(uf, 1)) = "Item" Then[/b]

cambie en la hoja la palabra Item por otro titulo cualquier y  Descripcion de producto tambien, esto con la finalidad de saber si al eliminar, cambiaria algo en dichos titulos pero nada cambio, ¿que hacen esas lineas?

Le desactive esto a Sub Numerar()
'' If (Cells(uf, 1)) = "Item" Then
'colocar lo que desees
'' Else
y a esto
' If cmbEdProd.Text = "Descripcion Producto" Then
' MsgBox "No borrar"
' Exit Sub
' End If y me funciono de bien, es decir, deje el evento Private Sub btnElimi_Click() como estaba anteriormente


Última edición por JoaoM el Vie Oct 23, 2015 5:01 pm, editado 1 vez (Razón : que a mi si)

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por rolano el Vie Oct 23, 2015 4:52 pm

'Para no borrar la fila de descripción
'si el combobox es igual a Descripcion Producto no se pueda borrar esa fila
If cmbEdProd.Text = "Descripcion Producto" Then

'Es casi lo mismo cuando el valor del rango A1 es igual a "Item" puedes colocar un MsgBox
If (Cells(uf, 1)) = "Item" Then

_________________
Saludos,
César Tirado
M.A.P. 2012-2014
Microsoft Active Professional
Blog
avatar
rolano
Moderador
Moderador

Masculino Cantidad de envíos : 53
Edad : 43
Fecha de inscripción : 14/04/2009

http://excelilove.blogspot.com/

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por JoaoM el Vie Oct 23, 2015 6:25 pm

Solucionado

JoaoM

Masculino Cantidad de envíos : 38
Edad : 97
Ciudad - Pais : venez
Version de Excel : 2007-2010
Fecha de inscripción : 16/12/2011

Volver arriba Ir abajo

Re: Numeracion en A sucesiva

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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