Foros del Web » Soporte técnico » Ofimática »

[SOLUCIONADO] Ordenar SOLAMENTE la columna A

Estas en el tema de Ordenar SOLAMENTE la columna A en el foro de Ofimática en Foros del Web. Espero desde aqui saludar a AlirioNaler un amigo que me ha ayudado en otros menesteres Pues eso, quiero que al Eliminar un producto SOLO ordene ...
  #1 (permalink)  
Antiguo 07/08/2014, 09:17
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Ordenar SOLAMENTE la columna A

Espero desde aqui saludar a AlirioNaler un amigo que me ha ayudado en otros menesteres

Pues eso, quiero que al Eliminar un producto SOLO ordene la columna A y no las demas ni arrastre consigo el ordenamiento.
SOLO tocar (ordenar) la columna A que trata de una numeracion continua y al Eliminar un producto, queda discontinuo la numeracion.

Dentro del libro en Hoja1 tengo ejemplo y exposicion.
h**p://www.filebig.net/files/NsgUXQzbE7
o
h**p://turbobit.net/u5t3tfi96vsq.html

Gracias por la ayuda que puedan suministrarme
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 07/08/2014 a las 09:30
  #2 (permalink)  
Antiguo 07/08/2014, 11:33
Avatar de AtilioNaler  
Fecha de Ingreso: junio-2014
Ubicación: Montevideo
Mensajes: 69
Antigüedad: 9 años, 10 meses
Puntos: 9
Respuesta: Ordenar SOLAMENTE la columna A

Indudablemente mis 214 años de edad están haciendo mella en mi capacidad de compresión. Leí atentamente tu mensaje, bajé el archivo de Excel, leí una vez más atentamente la explicación(¿?) que hay en Hoja1 y, sinceramente, no te entiendo.

Entendí que eliminarás filas y eso hace que obviamente la numeración quede salteada. Lo que no entiendo es qué pretendes expresar con "ordenar solamente la columna A". En realidad ya está ordenada antes de la eliminación de las filas.

¿Acaso lo que necesitas es que se rehaga la numeración a partir de la eliminación para que no haya saltos? Si es esto último, habrá que pensar un método para lograrlo, pero esta acción no ordena nada.

Ah, y mi nombre es Atilio, no Alirio.
__________________
Leer atenta y detenidamente los mensajes permite una mejor comprensión.

Última edición por AtilioNaler; 07/08/2014 a las 11:34 Razón: Redacción incompleta
  #3 (permalink)  
Antiguo 07/08/2014, 15:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Puedes ver en la columna A que salta del 000000002 al 000000004 porque elimine la linea que marcaba 000000003, quedo tal como la ves; 1, 2, 4, 5

Quiero que eliminando la linea 3 al presionar el boton Eliminar se ordene sucesivamente (numeracion sucesiva (seguida)). la 1 sigue 1, la 2 sigue 2, la 4 pasa a ser 3, la 5 pasa a ser 4

Elimino la 00000003 que despues de eliminar quede 1, 2, 3, 4,

Pues quiero ordenar en la pra que quede 1, 2, 3, 4 y no solo en la A que ordene sucesivamente la numeracion que el 4 pase a ser el 3 el 5 el 4 ect para que quede 1, 2, 3, 4 y no 1, 2, 4, 5

Dentro de la macro que elimina, una o unas lineas para que coloque la numeracion sucesiva y no salteada

Que dicha(s) linea(s) no muevan nada en las demas columnas, hacerlo solo en la columna A

Cita:
"ordenar solamente la columna A". En realidad ya está ordenada antes de la eliminación de las filas
La palabra no sea ordenar y si colocar la numeracion suceiva (seguido (continuo)) porque ahora mismo esta salteada
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 07/08/2014 a las 15:22
  #4 (permalink)  
Antiguo 08/08/2014, 14:55
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Con la grabadora hice esto.
LO hice de 2 formas;

Active la Grabadora

Seleccione los 2 1ªs (A2 y A3); 00000001 00000002 y arrastre hasta la ultima ocupada, si quedan continuos

Y Antes de activar la grabadora

Seleccione los 2 1ªs (A2 y A3); 00000001 00000002
Active la Grabadora y arrastre hasta la ultima ocupada, si quedan continuos

Código:
Sub Macro1()
'
' Macro1 Macro

    Selection.AutoFill Destination:=Range("A2:A5"), Type:=xlFillDefault  'AQUI PUEDE IR HASTA LA A50000, la 12 o la 1234 LA ULTIMA VARIA
    Range("A2:A5").Select
End Sub
Sub Macro2()
'
' Macro2 Macro

    Range("A2:A3").Select
    Selection.AutoFill Destination:=Range("A2:A5"), Type:=xlFillDefault 'AQUI PUEDE IR HASTA LA A50000, la 12 o la 1234 LA ULTIMA VARIA
    Range("A2:A5").Select
End Sub
pero como arreglar alguna de esta macro para meterla dentro del evento Eliminar?

Evento Eliminar
Código:
Private Sub btnElimi_Click() 'ELIMINAR PRODUCTO
Application.ScreenUpdating = False
    'ActiveSheet.Unprotect "By Jot@"
    Dim fCliente As Integer
    fCliente = nCliente(cmbEdProd.Text)
    
    If fCliente = 0 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
        
        Cells(fCliente, 1).Select
        
        ActiveCell.EntireRow.Delete
        
        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
Lo primordial es que quede arrastrando hasta la ultima ocupada. La ultima puede ser la 50000, la 12 o la 1234 y así quedo con la columna A SIEMMPRE con numeracion continua.
En esta pagina http://office.microsoft.com/es-mx/ex...001154232.aspx hay instrucciones par usar =FILA(A1) pero no se es como hacerlo. Meto =FILA(A1) en A2 ¿y luego en la macro Evento Eliminar?
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 08/08/2014 a las 15:21
  #5 (permalink)  
Antiguo 08/08/2014, 15:56
Avatar de AtilioNaler  
Fecha de Ingreso: junio-2014
Ubicación: Montevideo
Mensajes: 69
Antigüedad: 9 años, 10 meses
Puntos: 9
Respuesta: Ordenar SOLAMENTE la columna A

Bueno te paso el código para la macro que permita numerar nuevamente los datos de la columna A, de manera de que la numeración quede consecutiva luego de haber eliminado una o más filas. La he probado y funciona perfectamente, pero debes tener en cuenta dos cosas:

1) Se supone que la numeración comienza en la celda A2 porque la celda A1 contiene el encabezado de los datos.

2) Sirve siempre y cuando las filas que elimines sean desde la fila 4 en adelante, no funciona si eliminas la fila 2 o 3. La numeración se aplica exclusivamente a las celdas que tengan datos (ya sea hasta A14 o hasta A5840).

He llamado a la macro Numerar y he aquí el código:


Sub Numerar()

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

End Sub



Un abrazo desde Montevideo. Atilio
__________________
Leer atenta y detenidamente los mensajes permite una mejor comprensión.
  #6 (permalink)  
Antiguo 08/08/2014, 16:19
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Cita:
Iniciado por AtilioNaler Ver Mensaje
La he probado y funciona perfectamente, pero debes tener en cuenta dos cosas:

1) Se supone que la numeración comienza en la celda A2 porque la celda A1 contiene el encabezado de los datos.
Cierto

2) Sirve siempre y cuando las filas que elimines sean desde la fila 4 en adelante,

¿Sopone que necesito eliminar la A2? ¿me quedará en A2 00000002, debería pasar a ser 0000001. Supone que necesito eliminar la A3 que es la 00000002, pasaría a verse 00000003 y luego 00000004? entiendo ya ¿tal ves sea porque selecciona la A2 y A3 para correr hacia abajo? no funciona si eliminas la fila 2 o 3. y cuando tenga que eliminar por X causa la A2 o A3 o A4?

La numeración se aplica exclusivamente a las celdas que tengan datos (ya sea hasta A14 o hasta A5840). Si, no puede haber entre celdas vacias

He llamado a la macro Numerar

Gracias Atilio.
No estoy en casa, llegare mañana y asi llegue lo probare y dire algo.

Un abrazo desde Montevideo. Atilio
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg
  #7 (permalink)  
Antiguo 09/08/2014, 09:16
Avatar de Omura
Colaborador
 
Fecha de Ingreso: julio-2006
Ubicación: Peru
Mensajes: 3.491
Antigüedad: 17 años, 9 meses
Puntos: 185
Respuesta: Ordenar SOLAMENTE la columna A

apenas me manejo con el vba pero me voy a atrever a sugerir un pequeño cambio

Sub Numerar()
Range("A2").Value=1
Range("A3").Value=2
Range("A2:A3").Select
Selection.AutoFill Destination:=Range("A2", Range("A2").End(xlDown)), Type:=xlFillDefault
Range("A1").Select
End Sub

digo con esto ya se podrían eliminar las primeras filas de ser necesario
__________________
Mi error era de código... pero de código genético.
  #8 (permalink)  
Antiguo 09/08/2014, 09:46
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Cita:
Iniciado por Omura Ver Mensaje
apenas me manejo con el vba pero me voy a atrever a sugerir un pequeño cambio

Sub Numerar()
On Error Resume Next
Range("A2").Value=1
Range("A3").Value=2
Range("A2:A3").Select
Selection.AutoFill Destination:=Range("A2", Range("A2").End(xlDown)), Type:=xlFillDefault
Range("A1").Select
End Sub

digo con esto ya se podrían eliminar las primeras filas de ser necesario
Grcias Omura, voy probando y algo edito este mismo o agrego post

Edito:

Elimino el 00000001 en A2 funciona
Elimino el 00000002 en A3 funciona

Elimino 1º el 00000002 en A3 y sin salir del form elimino tambien el 00000001 en A2 y me manda esto



Si elimino 1º el 00000001 y luego el 00000002 sucede lo mismo
Es decir que tendria que eliminar 1º uno (el 1 o el 2 o viceversa) y luego salir del form y volver para eliminar el otro

Omura, probando le agregue al inicio de tu mmacro On Error Resume Next y dejo de mostrar nada y funciona pero ¿se podra arreglar sin tener que agregarle el On Error Resume Next ?

Arreglo? ¿se puede?

Agregame algo para que; si no existe NADA a patrir de la B2, que nada muestre a partir de la A2, ¿porque?
Al eliminar todo TODO siempre en A2 y A3 existe 00000001 y 00000002 porque la macro te esta diciendo que tiene que existir en A2 y A3 esa numeracion
Entonces al agregar el 1º proveedor (B2), este recibe la numeracion de 0000001 pero sigue ahi en A la 00000002 y 00000003 sin proveedor alguno

Gracias una ves mas omura
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 09/08/2014 a las 10:32 Razón: Agregar datos
  #9 (permalink)  
Antiguo 10/08/2014, 11:36
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Información Respuesta: Ordenar SOLAMENTE la columna A

Hola! para todos. Con un poco de suerte y viento a favor, lo siguiente podría funcionar bien:

Código PHP:
With Sheets("Prod_Entrada")
  If .[
a2] <> "" Then
    With 
.Range(.[a2], .[a1].End(xlDown))
      .
Cells(1) = 1: .DataSeries Type:=xlLinearStep:=1
    End With
  End 
If
End With 
Saludos, Cacho R.
  #10 (permalink)  
Antiguo 10/08/2014, 16:19
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Gracias mrocf (Cacho R) por tu generosidad en ayudar.

Probé tu Regalo, Si funciona para lo que yo pedía pero, ¿qué pasa?

He visto que al no existir en A2 ningún número, la caja Ultimo registro y Próximo ítem de la página Ingresar Proveedor, quedan sin contenido al NO EXISTIR nada en la columna a A2 porque de ahí toma el número para ingresar el siguiente y así con todas las líneas.
¿Entonces? me parece que dejarlo como me lo dejo omura, ¿qué te parece? si se tieen que eliminar el total de proveedores, el que lo haga tomar en cuenta que tien que dejar los 2 primeros y al agregar nuevos entonces eliminar los que antes estaban, solucion india pero algo es algo jejejejej
o
Talvez dejando un ejemplo del libro para que tengas más en cuenta lo que quiero explicar.

¿lo subo y dejo acá el enlace? dime si prefieres eso

de todos modos dejo el ejemplo
Eliminar
La llamada a tu macro (Macro1) esta en el evento Private Sub btnElimi2_Click() para Proveedor
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 10/08/2014 a las 16:39
  #11 (permalink)  
Antiguo 15/08/2014, 11:08
Avatar de Omura
Colaborador
 
Fecha de Ingreso: julio-2006
Ubicación: Peru
Mensajes: 3.491
Antigüedad: 17 años, 9 meses
Puntos: 185
Respuesta: Ordenar SOLAMENTE la columna A

le di una mirada rápida al archivo y en mi humilde opinión me parece que estas planteando mal tu solución, si bien no esta la hoja productos ni factura para ver el ejemplo completo, yo creo que en registro de proveedores solo debería figurar eso, datos del proveedor, su nombre, cedula, datos de contacto, sin incluir los productos, luego deberías tener una tabla aparte para productos, nombre, tipo, precio, otros, aquí agregar el nombre del proveedor, aparte tener otra tabla con el detalle de las compras (proveedores) y otra para el detalle de las ventas (clientes), aquí registrarías numero de factura, cliente / proveedor, producto, cantidad, precio.

Proveedores
ID - Nombre - Dirección - Ciudad - RIF / CI - Telf 1 - Telf 2 - otros

Productos
ID - Nombre - Tipo - Proveedor - Precio - otros

Factura
numero - fecha - cliente - producto - precio - otros

otros pequeños detalles...

sub algo()
Application.ScreenUpdating = false
...
Application.ScreenUpdating = True
end sub

si no me equivoco y si lo hago me corrigen, lo que hace esto es básicamente que los cambios que va haciendo la macro, por ejemplo abrir otra hoja, seleccionar un rango de celdas para copiar, etc, no se vean en pantalla, entonces debes decirle al comenzar que no muestre (false) y al terminar volver a activarlo (true).

personalmente uso algunos adicionales...

sub algo()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
...
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
end sub

por cierto, me parece bien que consideres el crédito en el código, pero lo correcto seria que en Numerar() diga... por AtilioNaler
__________________
Mi error era de código... pero de código genético.
  #12 (permalink)  
Antiguo 15/08/2014, 18:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Hola omura, gracias por el interés tuyo

No creo ser necesarias las demás hojas para encontrar una pequeña macro para el fin que solicito, para que me coloque la numeración seguida (sucesiva) en la columna A.

Si le colocas en un modulo la macro tuya o de mroxF y la llamas desde la macro
Código:
Private Sub btnElimi2_Click()
Application.ScreenUpdating = False
    'ActiveSheet.Unprotect "By Jot@"

    Dim fproveedor As Integer
    fproveedor = nproveedor(cmbEdProv.Text)
    
    If fproveedor = 0 Then
        MsgBox "Seleccione 1 proveedor para eliminar", vbInformation + vbOKOnly
        cmbEdProv.SetFocus
        Exit Sub
    End If
    
    If MsgBox("¿Seguro que quiere eliminar el proveedor; " & cmbEdProv.Text & "?", vbQuestion + vbYesNo) = vbYes Then
        
        Cells(fproveedor, 1).Select
        ActiveCell.EntireRow.Delete
        
        Numerar 'macro omura
        CargarLista2
    cmbEdProv = "": txtmoc100 = "": txtmoc20 = "": txtmoc30 = "": txtmoc40 = "": txtmoc50 = "": _
txtmoc60 = "": txtmoc70 = "": txtmoc80 = "": txtmoc200 = ""
        
        MsgBox "Proveedor eliminado", vbInformation + vbOKOnly
        cmbEdProv.SetFocus
        
   End If
    'ActiveSheet.Protect "By Jot@"
    Application.ScreenUpdating = True

End Sub
veras que hace en la columna A. Se puede eliminar hasta la ultima sin que exista algún proveedor en la hoja (solo títulos) pero al ingresar nuevo Proveedor. visualisa que en la caja de Ítem aparece la numeración 50000 que existe en algunas macros.
En virtude de eso, parece que decido quedarme con la macr oque elimine los proveedores pero en la A quedan 00000001 y 00000002.
Al ingresar nuevo proveedor, ingresa en la línea 2 porque al ingresar toma en cuenta la columna B (creo, no A ni C)

La pequeña macro tuya o la de cacho R sirve para Eliminar proveedores y también eliminar Productos, solo que no deje la hoja Entrada_Productos porque vi no necesaria para tal fin.

El libro compuesto pr Hojas Inicio, Factura, Prod_Entrada, Proveedor, Copias_Factura y Clientes.
En la hoja Proveedor el Titulo Articulos, son los principales productos (articulo) que ese proveedor puede suministrar

Para los productos existe la hoja productos, para Proveedores existe la hoja Proveedores, para ventas existe la hoja copia_Facturas donde se registra también además del numero de factura datos del cliente como; Nombre, RIF, dirección, telf., Fecha, producto comprado, cantidad de cada producto comprado por ese cliente, precio unitario de venta, Valor total de la cantidad vendida, IVA del total y valor total de la venta

En algunas macros tengo eso
Application.ScreenUpdating
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Última edición por JoaoM; 15/08/2014 a las 19:12
  #13 (permalink)  
Antiguo 23/08/2014, 16:48
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 7 meses
Puntos: 39
Respuesta: Ordenar SOLAMENTE la columna A

Gracias a todos ustedes que como siempre estan ayudando con sus conocimientos, a aquellos que así los requieren

Se puede cerrar el tema
__________________
Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas
http://i64.tinypic.com/rho40i.jpg

Etiquetas: columna, solamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:16.