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
Hola muy buenas a todos me llamo Álvaro y soy estudiante de ingeniería técnica electrónica en prácticas ya
Es genial que haya este tipo de foros para ayudarnos a los que tenemos algún problemilla con este programa,
asique muchas gracias por estar ahí y ofrecernos vuestra ayuda.
Un saludo a todos y nos vemos por los foros