La macro no vuelca correctamente los datos a la hoja a partir de la segunda aplicación
De nuevo por tu apoyo con esta macro… cuando la inserté al formulario funcionó bien, ahora que estoy haciendo pruebas generales me falla en la última aplicación. La operación normal es capturar en el TxBx8 el No. De factura y en el TxBx6 el importe de ésta. Al oprimir el botón “Aplicar” los vuelca correctamente a la hoja, pero a partir de la segunda captura de estos dos datos (que pueden ser varias aplicaciones), en vez de colocar la fecha en su lugar, coloca la cantidad de “42010”, Agradezco tus atenciones y de nuevo muchas gracias por tus prontas y atinadas respuestas.
Private Sub CommandButton1_Click() ' aplicar importe y forma de pago
'Por.Dante Amor
Application.ScreenUpdating = False
For Each h In Sheets
n = h.Name
If UCase(h.Name) = UCase(ComboBox1) Then
existe = True
Exit For
End If
Next
If existe = False Then
MsgBox "La hoja seleccionada no existe", vbCritical, "SELECCIONAR OBRA"
Exit Sub
ComboBox1.SetFocus
End If
' Identifica datos generales de la obra seleccionada
Set h1 = Sheets(ComboBox1.Value)
h1.Unprotect
TextBox1 = h1.Range("d3") 'Obra
' TextBox2 = h1.Range("d4") 'Localización
' TextBox3 = h1.Range("d5") 'Mpio
' Busca la partida " o concepto de Gto." seleccionada en CbBx3 y destina
' el contenido del TxBx6 en la última celda vacía.
' xxxxxxxxxx
' Esta fracción es para aplicar la cantidad a la partida seleccionada
Set b = h1.Columns("B").Find(ComboBox3, lookat:=xlWhole)
If Not b Is Nothing Then
If uc < 7 Then uc = 7
' H1. Cells(b. Row, "I") = Val(TextBox6)'si queda esta línea repite la misma cantidad
uc = h1.Cells(b.Row, Columns.Count).End(xlToLeft).Column + 1 '= Val(TextBox6)
h1.Cells(b.Row, uc) = Val(TextBox6) ' Aplica el Importe
End If
'xxxxxxxxxxxxxx......
' Identifica el proveedor y aplica en la hoja seleccionada, Fecha; el # de fact y el importe
Set b = h1.Columns("A").Find(ComboBox2, lookat:=xlWhole)
If Not b Is Nothing Then
uc = h1.Cells(b.Row, Columns.Count).End(xlToLeft).Column + 1
If uc < 7 Then uc = 7
h1.Cells(b.Row, uc) = Date
h1.Cells(b.Row, uc + 1) = (TextBox8) ' # de Fact
h1.Cells(b.Row, uc + 2) = Val(TextBox6) ' Importe
With TextBox11
.Value = Format(.Value, "$ #,##0;[Rojo]-$ #,#0")
End With
End If
MsgBox "Importe insertado"
h1.Protect
'xxxxxxxxxx
Sheets("Hoja1").Select
End Sub