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

1 Respuesta

Respuesta
1

La macro está bien, este número "42010", es el número correspondiente a una fecha. Excel maneja números para las fechas y en la celda los presenta con un formato de fecha: 06/ene/2014.

Lo único que tienes que hacer es formatear la columna, en formato de celdas y escoge Fecha, también puedes seleccionar el forma to de fecha que quieras 06/01/2014 ó 06-ene-2014, etc.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas