Ofimática - Crear nueva hoja si esta llego a 2500 líneas

 
Vista:
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 16/09/2017 15:37:17
Tengo una macro con la cual Válido un Nuevo Registro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub cbtNueClien_Click()
'Entrada_Salida = Clear
    On Error Resume Next
    Dim fila As Integer
    Set ws = ActiveSheet
'xxxxxxxxxxxx
'Verifica si ya existe el nombre en data
Set busco = ws.Range("B:B").Find(txtProd.Text, LookIn:=xlValues, lookat:=xlWhole)
If Not busco Is Nothing Then    'significa que lo encontró
    MsgBox ("Este nombre ya está registrado. Verifica y corrige...."), vbInformation, "Existe"
    Exit Sub 'Si existe sale sin guardar
End If
'xxxxxxxxx
'Inserta datos de nuevo cliente
    With ws
       fila = .Range("A2:A2500").Find(txtCod, lookat:=xlWhole).Row
       If Err.Number = 91 Then
          fila = .Range("b" & .Rows.Count).End(xlUp)(2).Row
          Call ingresar_datos(fila) 'Macro que inserta el registro
          Exit Sub
       End If
       Call ingresar_datos(fila) 'Macro que inserta el registro
    End With
End Sub

Abro el formulario estoy insertando en hoja Productos, CAT, John Deere, Silverado o otra. La hoja en uso llego a las 2500 lineas llenas.

Que al llegar a la 2500, mande aviso y auto-crie nueva hoja; Productos, CAT, John Deere, Silverado o otra, (según la hoja que este en uso actual, con el mismo nombre pero con número correlativo, ej. Productos-1, CAT-1, John Deere-1, Silverado-1, si se trata de la 2ª hoja del mismo articulo, ya si se trata de la 3ª hoja seria Productos-2, CAT-2, John Deere-2, Silverado-2 y así sucesivamente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 23
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por Antoni Masana (11 intervenciones) el 18/09/2017 07:28:43
Muy bien ¿Y la pregunta es...?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 18/09/2017 12:55:57
Disculpame pero para loguearme fue algo trabajoso ya que me daba como no segura la pagina.
La pregunta es:

¿Qué líneas agregar a esta macro para que eso suceda?
Que al llegar a llenar 2500 líneas crie nueva hoja de nombre igual a la que estaba pero con numero correlativo (¿asi se dice?
Ej.: si estoy en la Productos y llego a 2500 pero tengo que seguir en esa, que crie nueva Productos-1 y con las demás igual

Gracias Antoni

Me esta dificultoso entrar a la pagina y loguearme por decirme que no es segura, ¿Cómo tengo que hacer? no entiendo eso para configurar que ponga la pagina como segura.
Tengo W10 1607
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 23
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por Antoni Masana (11 intervenciones) el 19/09/2017 09:04:17
Añadir una hoja no es tan trivial como puede parecer. De momento esta rutina te añade una hoja.

¿Como funciona? Cuando añades el cliente de la línea 2500 añade una nueva hoja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub cbtNueClien_Click()
    ' --- Entrada_Salida = Clear
    On Error Resume Next
    Dim fila As Integer
    Set ws = ActiveSheet
    '
    ' --- Verifica si ya existe el nombre en data
    Set busco = ws.Range("B:B").Find(txtProd.Text, LookIn:=xlValues, lookat:=xlWhole)
    If Not busco Is Nothing Then    'significa que lo encontró
        MsgBox ("Este nombre ya está registrado. Verifica y corrige...."), vbInformation, "Existe"
        Exit Sub 'Si existe sale sin guardar
    End If
    '
    ' --- Inserta datos de nuevo cliente
    With ws
        fila = .Range("A2:A2500").Find(txtCod, lookat:=xlWhole).Row
        If Err.Number = 91 Then
            fila = .Range("B" & .Rows.Count).End(xlUp)(2).Row
        End If    
        Call ingresar_datos(fila) 'Macro que inserta el registro
 
        If fila=2500 Then Call HojaNueva()
    End With
End Sub

Añadir una nueva hoja:
04 - Toma el nombre de la hoja actual
05 - Mira si tiene un guion para cambiar el nombre
07 - No tiene guión es la opción CAT a CAT-1
09 - Tiene guión es la opción CAT-1 a CAT-2
11 - Añade una hoja
12 - toma el nombre por defecto de la nueva hoja
13 - Cambia el nombre a la nueva hoja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Hoja_Nueva()
    Dim fila As Integer, Old_Name As String, New_Hoja As String, _
        posi As Integer, New_Name As String
    Old_Name = ActiveSheet.Name
    posi = InStr(Old_Name, "-")
    If posi = 0 Then
        New_Name = Old_Name & "-1"
    Else
        New_Name = Left$(Old_Name, posi) & Val(Mid$(Old_Name, posi + 1)) + 1
    End If
    Sheets.Add
    New_Hoja = ActiveSheet.Name
    Sheets(New_Hoja).Name = New_Name
End Sub

Hasta todo correcto.

Pero hay más: ¿Donde quieres añadir la hoja?

1.- A la izquierda de todas las hojas.
2.- A la izquierda de la hoja activa.
3.- A la derecha de la hoja activa.

Las dos primeras son bastante simples, aqui esta el ejemplo, la tercera es un poco más complicado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
' --- OPCION - 1 -- Añadir hoja al final
    ' --- Antes   -> | CAT /|Productos /| Silverado /
    ' --- Despues -> | CAT /|Productos /| Silverado /| CAT-1 /
    
    Sheets.Add After:=Sheets(Sheets.Count)
    
    ' --- OPCION - 2 -- Añadir hoja a la izquierda de la actual
    '
    ' --- Antes   -> | CAT /|Productos /| Silverado /
    ' --- Despues -> | CAT-1 /| CAT /|Productos /| Silverado /
    
    Sheets.Add
    
    ' --- OPCION - 3 -- Añadir hoja a la derecha de la actual
    '
    ' --- Antes   -> | CAT /|Productos /| Silverado /
    ' --- Despues -> | CAT /| CAT-1 /|Productos /| Silverado /

Otro problema:
- Añade un cliente y tiene la hoja activa CAT, crea CAT-1 y no hay problemas.

- Añade un cliente y tiene la hoja activa CAT-1, crea CAT-2 y no hay problemas.

- Añade un cliente y tiene la hoja activa CAT y ya existe CAT-1 y CAT-2, esto causa un error a menos que e verifique, tome la ultima CAT y cree, en este caso CAT-3. Además hay otro problema y es que en este caso al intentar insertar la primera línea libre será la 2501 y no funcionara.

Preguntas pendientes:

¿Donde se añade la nueva hoja?
¿Quien o cuando se selecciona la hoja donde añadir el cliente?
¿Con que criterio se selecciona la hoja activa?

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 19/09/2017 21:18:00
Antoni, muchas gracias.

Este punto s correcta tu apreciación
- Añade un cliente y tiene la hoja activa CAT y ya existe CAT-1 y CAT-2, esto causa un error a menos que e verifique, tome la última CAT LLENA y cree, en este caso CAT-3. Además hay otro problema y es que en este caso al intentar insertar la primera línea libre será la 2501 y no funcionara.
En este caso tomaría la CAT-3 acabada de crear, COMO ACTIVA, PARA INGRESAR datos (artículos) en la 1ª libre a2 de la activa (CAT-3)

Pero hay más: ¿Dónde quieres añadir la hoja?
3.- A la derecha de la hoja activa. Ej.: ' --- Después -> | Productos /| Productos-1 /| CAT /| CAT-1 /| John Deere /| Silverado /| Internacional/| Internacional-1/| Entrada/| Salida/|
Lo anterior puede servir como ejemplo

1º- ¿Dónde se añade la nueva hoja? AL LADO DE SU PROGENITORA, a seguir a su progenitora; CAT, al lado (a seguir) CAT-1 etc.

2º- ¿Quién o cuando se selecciona la hoja CAT-1 donde añadir el cliente? NO SE PUEDE HABLAR DE CLIENTE si no d ARTICULO o producto
La nueva hoja se selecciona (.Select, .Activat) al crearla porque la anterior se llenó, para seguir ingresando datos(articulo)

3º- ¿Con que criterio se selecciona la hoja activa? el criterio es el punto 2º y:
Si la hoja progenitora, la progenitora-1, progenitora-2 etc. están ya con 2500 líneas llenas, se trabaja en la hoja siguiente progenitora-3

Hay varias hojas (nombres), estas son y el orden de hojas EN EL LIBRO es:
With cboHojas
.List = Array("PRODUCTOS", "CAT", "JOHN DEERE", "SILVERADO", "INTERNACIONAL", "ENTRADA", "SALIDA")
Luego veré como auto-ingresar la nueva hoja a la macro (no creo ser posible) para que el combo la tome, a menos que en una hoja (Inicio) en un rango Ej. A partir de M1 se coloque los nombres de las hojas, se cree una tabla y se asigne la tabla a la carga del combo, ya veré como hacer

Llamo progenitora a la hoja anterior, la que acaba de llenarse

LLenarse es;ya ocupadas 2500 lineas, llenas

Perdoname si no me hice entender mejor. Alguna duda no escatimes palabras para preguntar.
Como dice Cacho, mi español es portoñol, siempre el aciento y la expresion de habla (idioma) queda, auque este 100 años en pais diferente al donde naciste y te creaste durante 27 años, unos mas que otros pero yo lo siento así

No logro loguearme arriba a derecha, con Firfox o EDGE o tambien IE, es lo mismo con las 3

lwp-1778620
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 19/09/2017 21:36:49
lwp2-1778621

Sea en esta maquina, sea en otra es lo mismo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Crear nueva hoja si esta llego a 2500 líneas

Publicado por xve (4 intervenciones) el 20/09/2017 07:44:43
JoaoM... las imágenes son muy pequeñas!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 20/09/2017 14:52:47
Hola xve
A ver si con esto se ve mejor

La 1ª dice que la pagina no es segura y Firefox le impide conetarse (loguearse)
[IMG=https://www.subeimagenes.com/thumb/lwp2-1778901.jpg][/IMG] Subido en subir imagenes

La 2ª da la informacion por que no es segura
[IMG=https://www.subeimagenes.com/thumb/lwp-1778902.jpg][/IMG] Subido en subir imagenes

Creo que por aqui si se ve bien
y aqui la informacion sobre el detalle
https://support.mozilla.org/es/kb/advertencia-de-contrasena-no-segura-en-firefox?as=u&utm_source=inproduct
Recuerdo que en Mozilla, IE o EDGE sucede lo mismo, en esta o cualquier otra de mis maquinas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 23
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por Antoni Masana (11 intervenciones) el 20/09/2017 09:01:07
Creo entender lo que cuentas pero de forma fragmentada, es como un puzle y tengo que encajar las piezas, intentare ir por partes.

En tu primer mensaje dices que “ Abro el formulario estoy insertando en hoja Productos, CAT, John Deere, Silverado u otra. La hoja en uso llego a las 2500 líneas llenas.” de lo que deduzco:

Primero: tienes siete tipos de hoja diferentes:

1
2
3
4
5
6
7
1.- PRODUCTOS
2.- CAT
3.- JOHN DEERE
4.- SILVERADO
5.- INTERNACIONAL
6.- ENTRADA
7.- SALIDA

¿El mismo formulario escribe en todas o varias de las hojas?

¿Hay un formulario para cada hoja?

Hablaba de CLIENTE porque por el nombre del evento deduzco “boton Nuevo Cliente” pero es igual dejémoslo en genérico y digamos un registro.

1
2
3
4
5
Private Sub cbtNueClien_Click()
    ' --- Entrada_Salida = Clear
    On Error Resume Next
    Dim fila As Integer
    Set ws = ActiveSheet

Cuando añades dices que lo haces en la hoja activa ¿Cómo te aseguras que la hoja activa es la que debe ser?

¿Qué hace que grabes en PRODUCTOS y no en ENTRADA o en CAT? Creo que la respuesta a esta pregunta es la solución a parte del problema. Veamos porque:

Si tengo esta estructura de hojas en el libro:

1
2
3
4
5
6
7
8
9
10
PRODUCTOS
PRODUCTOS-1
CAT
CAT-1
CAT-2
JOHN DEERE
SILVERADO
NTERNACIONAL
ENTRADA
SALIDA

Si en el momento de grabar el registro, es decir cuando entra en cbtNueClie sabe que la hoja donde ha de guardar es la CAT, lo primero que hace es buscar la última hoja de CAT, en este caso sería CAT-2, mira si la celda A2500

SI hay datos

Crea CAT-3 (y se podría rellenar la línea 1) y graba en la línea 2.

NO hay datos

Realiza la búsqueda de la primera línea libre.

Pensabas que era facíl, pues NO. Veo este trozo de código:

1
2
3
4
5
6
' --- Verifica si ya existe el nombre en data
    Set busco = ws.Range("B:B").Find(txtProd.Text, LookIn:=xlValues, lookat:=xlWhole)
    If Not busco Is Nothing Then    'significa que lo encontró
        MsgBox ("Este nombre ya está registrado. Verifica y corrige...."), vbInformation, "Existe"
        Exit Sub 'Si existe sale sin guardar
    End If

De lo cual deduzco que en el caso anterior deberá:

En el momento de grabar el registro, es decir cuando entra en cbtNueClie sabe que la hoja donde ha de guardar es la CAT, lo primero que hace es buscar la última hoja de CAT, en este caso sería CAT-2 y en cada una de ellas verificar si en nombre está registrado y si no lo está, mira la celda A2500 de la hoja CAT-2

SI hay datos

Crea CAT-3 (y se podría rellenar la línea 1) y graba en la línea 2.

NO hay datos

Realiza la búsqueda de la primera línea libre.

Otro detalle, ¿Cómo se hace para añadir CAT-3 y quede así?

1
2
3
4
5
6
7
8
9
10
11
PRODUCTOS
PRODUCTOS-1
CAT
CAT-1
CAT-2
CAT-3
JOHN DEERE
SILVERADO
NTERNACIONAL
ENTRADA
SALIDA

Instrucciones (New_Name sería igual a “CAT-3”)

1
2
3
4
5
Sheets(“JOHN DEERE”).select
Sheets.add
New_Hoja = ActiveSheet.Name
Sheets(New_Hoja).Name = New_Name
Sheets(New_Name).Select

Siempre hay que seleccionar la siguiente hoja para añadir (opción 2), excepto la hoja SALIDA que se añade al final (opción 1).

Para esto puedo buscar en el array o en las hojas del libro.

1
.List = Array("PRODUCTOS", "CAT", "JOHN DEERE", "SILVERADO", "INTERNACIONAL", "ENTRADA", "SALIDA")

Si es el ARRAY busco en qué posición es CAT, en este caso la 2, pues tomo la 3 y selecciono esta hoja.

La segunda opción es recorrer las hojas con un for each hasta que encuentre CAT y en este caso se para en la primera que no sea CAT.

Espero me haya explicado con claridad, para mi es complejo porque no se de tu trabajo, que debe hacer, que no es lo mismo que “que hace”, como debe funcionar, que datos se introducen ni con qué criterios. Esto es muy simple de hacer lo único que necesito es saber los criterios usados.

Ahora una gran pregunta que me ha surgido:

¿Por qué limitas 2500 líneas en la hoja cuando en una misma hoja tienes 1.048.576 líneas lo equivalente a 419 hojas de 2500 líneas?

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 20/09/2017 15:54:46
Antoni, quiero pedirte que del evento Initialize del form frmProd, le elimines la linea Call BuscaCambio y la pegues en el evento Private Sub cboHojas_Change()
1
2
3
4
lista.RowSource = hojaRow.Address
 
    Call BuscaCambio 
    Call contador
Porque me estaba dando error al editar o ingresar nuevo

Para diferenciar escribo mayúsculas, no tomen a mal
1º- Primero: tienes siete tipos de hoja diferentes: = SI, 7 HOJAS EN EL LIBRO, cada una con su propósito pero el mismo fin, almacenar artículos

2º- ¿El mismo formulario escribe en todas o varias de las hojas? = SI, UNA A LA VES, MENOS EN LAS ENTRADA Y SALIDA. Si necesito ingresar o editar en X hoja desde la hoja Inicio, abro el form y por vía del desplegable selecciono la hoja para trabajar en ella

3º- ¿Hay un formulario para cada hoja? NO. ANES LO QUE HACIA ERA DEPENDIENDO DE LA HOJA QUE QUERIA TRABAJAR, IBA AL CODIGO Y LE CAMBIABA EL NOMBRE DE HOJA, EJ.: "PRODUCTOS" A "JOHM DEERE"y asi hacia, por eso tenia un boton en cada hoja para el mismo form

Hablaba de CLIENTE porque por el nombre del evento deduzco “botón Nuevo Cliente” pero es igual dejémoslo en genérico y digamos un registro.
Tienes razón Antoni, es que el form y casi, casi todo el código, salvo algunas correcciones, lo extraje de otra plantilla y los botones ya tenían (tienen) esos nombres

4º- Cuando añades dices que lo haces en la hoja activa ¿Cómo te aseguras que la hoja activa es la que debe ser?

¿Qué hace que grabes en PRODUCTOS y no en ENTRADA o en CAT? Creo que la respuesta a esta pregunta es la solución a parte del problema. Veamos porque:
Al seleccionar la hoja en el desplegable, va directo a dicha hoja y se carga el List con los datos de esa hoja y ahí trabajas
Por eso mencione ayer lo de crear una tabla con los nombres de las hojas en la hoja Inicio (A1 hacia abajo, variable para que cada ves que se agregue un nombre nuevo de hoja, esta sea cargada en el combo al abrir el form. Así en el combo selecciono la Silverado o la CAT-2 o la CAT-5 o la Productos-1 o la Silverado-10 a la que seleccione es la que se activa (.Select) para trabajar

5º- Si en el momento de grabar el registro, es decir cuando entra en cbtNueClie sabe que la hoja donde ha de guardar es la CAT, lo primero que hace es buscar la última hoja de CAT, en este caso sería CAT-2, mira si la celda A2500 = TENDRIAS O TENDRÁ QUE HACERLO
SI hay datos, Crea CAT-3 (y se podría rellenar la línea 1) y graba en la línea 2. NO hay datos Realiza la búsqueda de la primera línea libre. = CIERTO

6º- Pensabas que era fácil, pues NO. Veo este trozo de código: = CIERTO LO QUE MENCIONAS SOBRE ESE PUNTO Si eres detallista Antoni. Hay que tener AÑOS en ese menester para tanto detalle.

7º- Otro detalle, ¿Cómo se hace para añadir CAT-3 y quede así?
7aº- Siempre hay que seleccionar la siguiente hoja para añadir (opción 2), excepto la hoja SALIDA que se añade al final (opción 1). =
LA HOJA ENTRADA Y SALIDA, SON DE OTRO FORMULARIO. LAS METI AHÍ, PERO PUEDES QUITARLAS.
Este formulario frmEntraSale es para dar entrada o salida según el caso, ya tiene su buscador por si quiero imprimir los resultados

8º- ¿Por qué limitas 2500 líneas en la hoja cuando en una misma hoja tienes 1.048.576 líneas lo equivalente a 419 hojas de 2500 líneas? = PODRIAN SER 10.000 PERO SE VOLVERÁ MAS Y MAS PESADO EL LIBRO SU EJECUCION Y POR CONSECUENCIA, EL DESAROLLO (ejecución) DE LA(s) MACROS. Además, no son tantos artículos, así como para tener 10 hojas de cada tipo, es una plantilla para mi uso (DOMESTICA) aquí para que tenga ubicado cada artículo, no son muchos, pero aun si algo y cuando necesite alguno, (como ha sucedido) no ande pariendo en su búsqueda y hasta llegar a no encontrarlo (como ha sucedido)

Sobre esta 8º- quisiera tu opinion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 23
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por Antoni Masana (11 intervenciones) el 21/09/2017 08:53:33
Hola,

Voy a empezar por el punto 8. Si tienes 10.000 registros en una sola hoja o en cuatro, el fichero es igual de grande y pesado, y cuando me refiero a pesado es el tamaño del fichero xls. Si al guardarlo lo haces como xlsb en lugar de xlsm lo lee y graba mucho más rápido y mantiene las macros.

La mejoría en la ejecución de las macros no está en poner 1 o 4 hojas, hay otros parámetros que optimizan las macros.

Si hay una cosa que ralentiza son las búsquedas.

El FIND del Excel no sé qué tan optimo es pero se puede hacer de otra forma mucho mejor pero se debe programar y para ello es necesario que la tabla este ordenada, entonces se puede buscar cualquier código entre 16000 registros y mirando como máximo 14 celdas se puede saber si existe.

La proporción es exponencial: 15 celdas para 32000 registros, 16 celdas para 64000 registros, 17 celdas para 128000 registros, etc.

Si no está ordenado hay que leer todas todos los registros hasta encontrarlo, y a partir de la posición 16 cuanto más abajo este más tiempo en encontrarla y si resulta que está en la posición 15999 ha tenido que leer 15999 celdas a 14 del caso anterior el tiempo de búsqueda se multiplica por 1000.

Para expresarlo de forma gráfica de tiempos, si se busca cada uno de los código por el sistema ordenado representa un línea recta que va oscilando entre 1 y 14 en el otro caso sería una curva que va subiendo hacia el infinito.

Si además hay varias hojas se ralentiza más, y no le veo ninguna ventaja.

Si concretamos lo de una varias hojas podremos seguir. Necesitas código según la opción escogida:
Varias hojas Codigo para insertar las nuevas hojas. En este caso el desplegable debe tener solo el nombre de los hojas padre ( CAT ) y el código selecciona y crea los hijos (CAT-1, CAT-2, ..)

Una hoja Código para buscar e insertar registros manteniendo el orden. Si has de hacer un SORT cada vez que entras un registro lo que se gana por un lado se pierde por otro.

Me hablas del código pero no veo el libro ¿puede ser que este en los enlaces del post anterior? Ahora no puedo acceder, por la tarde lo miro.
Si lo puedes enviar como adjunto al post de este foro o a mi correo personal.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 21/09/2017 19:53:51
¿Cual es tu mail? te enviaré el completo. Este tiene un boton en cada hoja que era como lo usaba anteriormente (hasta ahora que pensdaba en el desplegable seleccion de hoja, pero quedo como dices, UNA HOJA quedamos con los padres DEJEMOS LOS HIJOS.

En una hoja Funcionamiento estan otras informaciones
Estoy con Office 2016
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 21/09/2017 23:00:13
El pedazo de codigo que mencionaste
1
2
3
4
5
6
7
' --- Verifica si ya existe el nombre en data

    Set busco = ws.Range("B:B").Find(txtProd.Text, LookIn:=xlValues, lookat:=xlWhole)
    If Not busco Is Nothing Then    'significa que lo encontró
        MsgBox ("Este nombre ya está registrado. Verifica y corrige...."), vbInformation, "Existe"
        Exit Sub 'Si existe sale sin guardar
    End If
Es para ordenar por la columna B. En ingreso nuevo y editar, ordena los datos en la hoja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 23
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por Antoni Masana (11 intervenciones) el 25/09/2017 08:38:47
Buenas

Al intentar descomprimir los archivos me dio error y no pude verlos

En la cabecera esta mi correo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JoaoM
Val: 36
Ha mantenido su posición en Ofimática (en relación al último mes)
Gráfica de Ofimática

Crear nueva hoja si esta llego a 2500 líneas

Publicado por JoaoM (26 intervenciones) el 25/09/2017 22:06:54
Enviado Antoni
En la hoja INF está
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar