estimado @pinoji
la verdad sin archivo es dificil de hacer pruebas, deberias de adjuntar aunque sea un pequeño ejemplo:
te mando el codigo corregido, (Nota: sin realizar pruebas)
Sub InsertarCuentaOrdenada()
Dim wsCatalogo As Worksheet
Dim ultimaFila As Long
Dim nivelCuenta As String
Dim nuevaCuenta As String
Dim tituloCuenta As String
Dim naturalezaCuenta As String
Dim i As Long
Dim filaInsertar As Long
Dim cuentaEncontrada As Boolean
Set wsCatalogo = ThisWorkbook.Sheets("Plan de Cuentas")
ultimaFila = wsCatalogo.Cells(wsCatalogo.Rows.Count, 1).End(xlUp).Row
' Pedir datos
nivelCuenta = InputBox("Ingrese la categoría jerárquica de la cuenta:")
nuevaCuenta = InputBox("Ingrese el código de la nueva cuenta (ej: 102-03):")
tituloCuenta = InputBox("Ingrese el Título de la cuenta:")
naturalezaCuenta = InputBox("Ingrese la Naturaleza de la cuenta (D/H):")
cuentaEncontrada = False
filaInsertar = ultimaFila + 1 ' Por defecto, al final
' Buscar dónde insertar
For i = 3 To ultimaFila
If wsCatalogo.Cells(i, 1).Value = nivelCuenta Then
If wsCatalogo.Cells(i, 2).Value > nuevaCuenta Then
filaInsertar = i
cuentaEncontrada = True
Exit For
End If
End If
Next i
' Insertar fila y datos
wsCatalogo.Rows(filaInsertar).Insert Shift:=xlDown
wsCatalogo.Cells(filaInsertar, 1).Value = nivelCuenta
wsCatalogo.Cells(filaInsertar, 2).Value = nuevaCuenta
wsCatalogo.Cells(filaInsertar, 3).Value = tituloCuenta
wsCatalogo.Cells(filaInsertar, 4).Value = naturalezaCuenta
MsgBox "Cuenta insertada correctamente y ordenada.", vbInformation
End Sub
Código original
Insertaba la nueva cuenta justo debajo de la primera coincidencia de jerarquía (columna A).
No respetaba el orden numérico de los códigos de cuenta (columna B).
Resultado: cuentas nuevas podían quedar fuera de orden lógico (ej: 102-03 podía quedar arriba de 102-02).
Código corregido
Busca todas las cuentas con la jerarquía indicada.
Compara el código de la nueva cuenta con los existentes y encuentra su posición correcta dentro de esa jerarquía.
Inserta la cuenta en ese punto, manteniendo el orden numérico.
Espero haberte ayudado,
Saludos,
Por
DiegoLG , · publicado el sábado a las 20:26 4 días
Estimados Amigos:
Dentro de las muchas cosas que sabemos de excel, ya sea formulas y programar en V.B.. el otro dia me pregunte si en excel erxisten mas trucos de teclado, aparte de los tipicos, como
Ctrl + C = Copiar
Ctrl + V = Pegar
Ctrl + X = Cortar
Ctrl + Z = Deshacer
Ctrl + N = Negrita
Y muchas Mas
Espero sus aportes
yo me se uno que aprendi el otro dia, intruceando por excel que es para no usar el Mouse para hacer un auto filtro
era Alt + Flecja Abajo En El Titulo Del Auto Filtro
Saludos