Ingresar Valores a Base datos excel en formato num

Hola:
Espero me puedan ayudar, tengo la siguiente macro que me ayuda a llenar una base de datos a partir de un formulario en excel, sin embargo la información que corresponde a valores $, me los ingresa en formato de texto, lo que me complica, puesto que después cuando deseo hacer resumen de valores como saber cuanto gaste en el mes en compras, no se logra realizar la suma, puesto que los números están en formato de texo.
Aquí va la macro:
With Sheets("BD OC Generadas").Range("A65536").End(xlUp)
.Offset(1, 0) = Sheets("OC").Range("E2") 'OC
.Offset(1, 1) = Sheets("OC").Range("D5") 'Fecha
.Offset(1, 2) = Sheets("OC").Range("B12") 'Proveedor
.Offset(1, 3) = Sheets("OC").Range("D15") 'Cotización Asociada
.Offset(1, 4) = Sheets("OC").Range("B20") 'Motivo OC
.Offset(1, 7) = Sheets("OC").Range("E41") 'Subtotal
.Offset(1, 8) = Sheets("OC").Range("E42") 'Iva 19%
.Offset(1, 9) = Sheets("OC").Range("E43") 'Total
.Offset(1, 10) = Sheets("OC").Range("D17") 'Desc Aplicado
.Offset(1, 11) = Sheets("OC").Range("E44") 'Descuento
.Offset(1, 12) = Sheets("OC").Range("E45") 'Total a Pagar
.Offset(1, 15) = Sheets("OC").Range("B1") 'Comprador
End With
Urgente please

1 respuesta

Respuesta
1
Porque antes de ejecutar la macro seleccionas todo el rango que tu deseas que sea número y le pones ese formato a las celdas.
Mira a ver si te vale
>Un saludo
>Julio
Gracias julio por tu respuesta, sin embargo, no me resulta, pues aunque coloco las celdas en formato de numero, de igual manera al ejecutar la macro, me convierte los números a texo.
Antes de empezar con las lineas de tu código pones estas cambiando el rango por el tuyo, si compruebas que te lo cambia por texto, lo pones al final después de hacer tu importación.
Range("D1:D18").Select
Selection.NumberFormat = "0"
Esto es para números enteros sin decimales, y esta es para formato de moneda para $ de Chile con 2 decimales
Range("F1:F6").Select
Selection.NumberFormat = "[$-340A] #,##0.00"
Ya me contarás
>Un saludo
>Julio
Hola yo denuvo, te cuento que me sirvió, pero sinceramente no era lo que buscaba, por allí encontré esta macro, pero me quita los ceros es decir si hay un valor de 119.000, me lo deja en 119...
De todas formas muchas gracias por tu tiempo, si puedes hacer algo con esta macro seria ideal.
Sub Enter_Values()
For Each xCell In Selection
xCell.Value = xCell.Value
Next xCell
End Sub
Ahora, aprovechándome de tu buena disposición me gustaría hacerte otra pregunta, tengo esta macro para abrir un archivo PDF, desde excel, que son las ordenes de compra que ya he realizado, sin embargo, en alguna oportunidad voy a querer abrir una Orden de compra inexistente (por error)... sin embargo este mensaje de error me sale en ambos casos, o cea, si me cuentra el archivo y si no lo encuentra también.. si pudieras hacer algo con esto te lo agradecería.
aqui va la macro :
Private Sub CommandButton1_Click()
Unload UserForm16
On Error GoTo noencontro
retval = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\OC\" + Range("C81") + ".pdf""", vbNormalFocus)
noencontro:
MsgBox ("OC no se Encuentra en los Registros, Asegurese de que se haya Generado correctamente, de lo contrario pongase en contacto con los demas compradores para corroborar Información")
End Sub
En la segunda pregunta, el nombre del archivo pdf tienes que pasarlo a una variable por ejemplo:
archivo = Range("C81").Value
Y ahora ponerlo en la linea de apertura del archivo:
RetVal = Shell("C:\Archivos de programa\Adobe\Reader 8.0\Reader\AcroRd32.exe C:\OC" + archivo + ".pdf", vbNormalFocus)
En lo referente a la primera pregunta, el formato de las celdas es indispensable ponerlo porque si no la macro siempre te los colocará como formato general, debes de poner formato numero con separador de miles, o moneda con formato de la que te interese.
>Un saludo
>Julio
¿Sabes lo que pasa Julio?, que el archivo siempre va a variar, pues va a depender del numero de orden de compra... pues si te fijas el archivo se llamara OC... y el numero que corresponde.. y ese numero siempre varia... ahora te cuento que cuando el archivo existe, es decir si yo le pido abrir la "OC20", el archivo se abre perfectamente, sin embargo igual me arroja el mensaje el error.. yo quiero que ese mensaje salga solo cuando el archivo no exista.
Gracias de antemano..
Pues pones al principio esta linea de código
On error resume Next
Y ya no te arrojará error si no lo encuentra
Respecto a pasar el dato a una variable tendrás que ingeniártelas para ver de donde puede coger el dato si es del nombre del libro o de donde. Explicate como se genera el nombre y vemos la forma, también pudiera ser que te mostrara un inputbox para que tu pongas el nombre del archivo que quieres abrir, y del inputbox tome la variable... dios mío de algún sitio tiene que coger el nombre si no estamos listos... jajajajaja.
>Un saludo
>Julio
Hola, te cuento que ya encontré la solución, resulta perfecta.. la dejo en la web, para compartirla con todos, epero le sirva a alguien más... de todas formas gracias por tu tiempo y disponibilidad.
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("C:\OC\" + Range("C81") + ".pdf") Then
retval = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\OC\" + Range("C81") + ".pdf""", vbNormalFocus)
Else
MsgBox ("OC no se Encuentra en los Registros, Asegurese de que se haya Generado correctamente, de lo contrario pongase en contacto con los demas compradores para corroborar Información")
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas