Macro(s) VBA Excel que hacen trampa

Talñvez el titulo no este adecuado pero se trata de lo siguiente:

Inserto datos y, cuando voy por determinada línea, la macro en ves de insertar en la siguiente vacía, inserta en la línea donde tengo los títulos reemplazando estos por la inserción.

Unas veces cuando llevo 5, otras 10, 20 etc, nunca es llegando a cierta cantidad, si no que varia.

Esta ultima ves, llevaba yo ya 34 líneas listas y ZAAASSSSSSSSSSSSSSS inserto en la línea de títulos, ¿por qué? No lo se a pesar de que revise código pero como mi condición de experto es nula.

En la hoja también tengo alguna información sobre lo que pasa

Te envío el libro (tu conocido) a ver si cuando tengas un tiempito le pasas los ojos y si algo tiene que ser, 3pasarle los dedos también jejejejejjeje.

Desde ya agradecido Dante

1 Respuesta

Respuesta
1

H o l a:

En esta línea se obtiene el número de fila en la hoja de excel que se va a modificar:

u = ComboBox1.ListIndex + 11

Si borras el dato del combo, el listindex está en -1, entonces

u = -1 + 11

u = 10

Por eso te escribe los datos en la fila 10.

Cómo se soluciona, cada vez que se borre el dato del combo, se deberá limpiar los textbox:

Private Sub ComboBox1_Change()
'Por.Dante Amor
    'Llenar textbox
    Dim f
    If ComboBox1.ListIndex = -1 Then
        TextBox1 = ""
        TextBox2 = ""
        TextBox3 = ""
        TextBox4 = ""
        TextBox5 = ""
        Exit Sub
    End If
    f = ComboBox1.ListIndex + 11
    TextBox1 = Cells(f, "B")
    TextBox2 = Cells(f, "C")
    TextBox3 = Cells(f, "D")
    TextBox4 = Cells(f, "J")
    TextBox5 = Cells(f, "K")
End Sub

De esa forma si intentas insertar, te validará que te faltan datos en los textbox.

Sal u dos

Hola Dante

Aun no echo nada, voy a comer y luego le doy a ver que tal y como tal te agradezco tu gesto.

Quiero decirte que el detalle descripto, no sucede cuando edito, pero si al insertar.

Se usa el ComboBox SOLO para editar algún dato (línea), fuera eso el combo esta Enabled False, al marcar el CheckBox1, es cuándo entra en True.

La línea

u = ComboBox1.ListIndex + 11

esta y ha estado intacta, sin modificacion, las demas no existen

Prueba con el archivo que te envíe, el problema se corrige tal y como lo comenté.

Antes probé con el de acá y lo mismo sucedió aunque le metí en ComboBox1_Change lo que me dejaste arriba sucedió lo mismo cuando ya llevaba 20 líneas

    If ComboBox1.ListIndex = -1 Then
        TextBox1 = ""
        TextBox2 = ""
        TextBox3 = ""
        TextBox4 = ""
        TextBox5 = ""
        Exit Sub
    End If

Probé con el que me envías y todo cierto.

Verificando, vi que otras cosas habían en el código y por eso el detalle no volvió

Gracias Dante.

Abriendo yo nueva pregunta para:

Al insertar llega a cierto punto que ya no se ve en la hoja lo que está insertando, ¡¿Alguna forma (código) para que cuando llegue a ultima línea VISIBLE vaya subiendo la hoja para poder visualizar lo que inserta? Por si algún error que no puede visualizarse

Claro que no quisiera tener el form en ShowModal False

Busca en donde poner:

Application.screenupdating = true

Es decir, en alguna línea de tu código lo pusiste en False, ahora lo tienes que poner en True.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas