Saltar al contenido

Agregar registros a Base de Datos


Recommended Posts

publicado

Buen día!!! Presento el siguiente archivo el cual presenta 3 hojas; Compras, Ventas y Clientes. Por medio de una macro de evento en la hoja Ventas se despliega un Userform para seleccionar el nombre del cliente en la columna "D" y en la Columna "E" a través de un BuscarV se adiciona el número de RIF (Identificacion Fiscal del Cliente). Quisiera que si el registro no existe en la Base de Datos de la hoja Clientes lo pueda incluir para futuras consultas. Se aceptan mejoras en este proceso (de consultar e incluir datos). Gracias de antemano. Mi PC no me deja adjuntar archivos, no sé si será una falla en el navegador ó en el Sistema Operativo. No me despliega la ventana de cargar archivos no sólo para esta sitio sino en general. Si alguien tiene esta solución de este problema mucho sabría agradecer, aunque sé que no forma parte de este siti ni del foro. Saludos!!!!  https://onedrive.live.com/?id=F7AF0ABB18A3053D!113&cid=F7AF0ABB18A3053D

publicado

Hola @tierra_pampa En el anterior userform a medida que tipeaba los nombres me ofrecía las coincidencias y de esa manera podía saber si el cliente aparecia en la Base de Datos, por lo tanto me gustaría que funcionara de esa manera, ya que hay clientes con el mismo nombre pero son sucursales, por ejemplo, Matelca, C.A., Matelca I, C.A., Matelca II, C.A. y al tipear en cualquier momento siempre y cuando coincidiera el nombre sólo tenía que apretar "intro" y se reflejaba en la respectiva celda. Puedes modificar la macro original que envié fusionandola con tu propuesta? Agradecido...

publicado
Hace 31 minutos , PedroJSuarez dijo:

a medida que tipeaba los nombres me ofrecía las coincidencias y de esa manera podía saber si el cliente aparecia en la Base de Datos, por lo tanto me gustaría que funcionara de esa manera

Hola de nuevo @PedroJSuarez!

Perdón por el cambio! Para volver a escribir los nombres en la forma que deseas, simplemente debes desactivar el posicionamiento en el botón "ACEPTAR", cada vez que cambia el valor del Combobox1

Eso lo puedes hacer de la siguiente manera: anteponer un apóstrofo a la frase, la palabra "Rem" o, si prefieres, borrar la fila donde dice: "CommandButton2.SetFocus".

Private Sub ComboBox1_Change()
Rem CommandButton2.SetFocus
fila6 = 0: fila6 = ComboBox1.ListIndex + 2
cliente_nuevo = Me.ComboBox1.Value
rif_nuevo = Hoja6.Range("A" & fila6).Offset(0, 1).Value
End Sub

Si te causa algún problema, avisa y te remito el archivo modificado.

Abrazo!

publicado

Hola @tierra_pampa!! Funciona muy bien!! Deseo agregarle otras funcionalidades pero por ahora estoy un poco ocupado. Déjame revisarlo con un poco más de tiempo y te consulto nuevamente el día lunes antes de cerrar el tema. Nuevamente agradecido. Saludos desde Venezuela!!!

publicado

Hola @tierra_pampa!! Otras consideraciones para automatizar con VBA: 1.-La numeración de Factura y No. de Control (Columna B y C) las tengo con fórmulas para el correlativo. Cuál sería el código en VBA para sustituir las fórmulas? 2.- Si tengo que anexar otro cuadro pero sin datos (para rellenar ya que es una plantilla), lo hago con una macro grabada que se llama "CopiarCuadro" pero tiene las referencias relativas, si necesito anexar un tercer cuadro no me funciona ésta. 3.- Manipulé los Userform y los llevé por error a la esquina superior izquierda y deben estar en el centro de la pantalla. Cuál es la posición (qué dato de las propiedades hay que modificar?). Gracias por tu atencion!! Saludos!!! 

https://1drv.ms/x/s!Aj0Foxi7Cq_3kUB2DVEj_w7Gthlo

publicado

Hola @PedroJSuarez

Bajé de nuevo tu archivo y permíteme proponerte algunas modificaciones.

Se hace muy difícil (en base de datos), realizar cortes de registros con títulos; y continuar por debajo; tal como está ambientada la planilla (todos los registros deberían estar juntos, sin filas en blanco entre ellos)

Efectué una modificación para que en la hoja "VENTAS" solo carguen datos de facturas y, par el momento en que deseen imprimir para resguardo, deberás ingresar en la hoja "impventas" y digitar en la celda "B11" el número de factura desde el cuál deseas imprimir.

Solucionadas quedan también la solicitud #1 (al hacer click en la columna "D" se completarán ambas en forma automática) y la solicitud #3. Para modificar la posición del formulario, click en el formulario, aparecen las propiedades en el marco de la izquierda y revisa la propiedad "StartUpPosition" (estaban ambos en posición -Manual-).

Como siempre, te pido si puedes probar y comentar tus apreciaciones.

Que tengas una buena jornada!

 

 

ae20160823Agregar registros a BD.xlsm

publicado

Hola de nuevo @tierra_pampa!!

Hace 7 horas, PedroJSuarez dijo:

Otras consideraciones para automatizar con VBA: 1.-La numeración de Factura y No. de Control (Columna B y C) las tengo con fórmulas para el correlativo.

 

Hace 3 horas, tierra_pampa dijo:

Solucionadas quedan también la solicitud #1 (al hacer click en la columna "D" se completarán ambas en forma automática)

Columna "B" y "C", lo de la columna "D" lo solucionaste en la primera oportunidad y quedó genial!! Por favor revisa el último archivo que envié para ver las fórmulas de las columnas B y C. En el archivo modificado según tu propuesta (que me gustó enormemente) #1.- falta agregar totales en la hoja "impventas"   #2.- Es posible seleccionar el rango de facturas?? (5, 10 ó 13) que se llevan a esta hoja?? #3.- Cómo se ajusta el rango de celdas visible?? Se vé muy bien la presentación/vista de esta hoja!! Disculpa tanta molestia con las preguntas pero está quedando genial!!!

 

publicado

Hola @PedroJSuarez, cómo estas? Ante todo te eximo de pedirme disculpas, estamos aquí para ayudarnos mutuamente.

Lo que quise decir en el post anterior (con respecto a la solicitud #1), es que cuando hagas click en cualquier celda de la columna "D", se deben completar automáticamente las columnas "B" y "C", tal cómo solicitaste y con el formato del registro/fila anterior. Pruébalo!

Con respecto a la solicitud #2, prueba el nuevo código para ver si te entendí correctamente y te agrada la posible solución.

Con respecto a la solicitud #3 del útlimo post, yo siempre "trato" de no modificar la estructura de la planila, por lo tanto: tu decide que cantidad de registros quieres hacer visible y adaptamos el código a ello. Lo único que hice fue copiar tu estructura en una nueva hoja. Revisa y verás que la cantidad de filas es la misma de tu archivo origen.

Prueba, critica, y seguimos en contacto.

Abrazo! 

 

 

ae20160824Agregar registros a BD.xlsm

publicado

Hola @tierra_pampa!!! Me permití hacer una modificacion a tu último archivo para agregar un segundo cuadro. En tu anterior modificación con el evento Worksheet_Change en la celda G2 se activa la macro "rellena_base". Que se debe hacer para la celda G5 para llamar a la macro "rellena_base2", Tengo entendido que los eventos son únicos para cada objeto, en este caso para la celda G5. Sólo puedo llamarla con el botón de imprimir. Agradecido por tu paciencia!!!

https://1drv.ms/x/s!Aj0Foxi7Cq_3kUU3SNFzLaJ45sY_

publicado

Hola @PedroJSuarez! Me alegro que la modificación sea de tu agrado...!

Ahora, viendo tu necesidad de que sean dos cuadros y no uno solo para imprimir, modifiqué el archivo agregando un formulario, que te brinde la posibilidad de elegir el cuadro a imprimir (1 ó 2), el número de factura desde el cual se imprimirá y la cantidad de registros (por defecto traerá el máximo permitido en cada cuadro: 27 en el #1 y 26 en el #2).

Con respecto a tu pregunta, y para que no te quedes con la duda:

Hace 6 horas, PedroJSuarez dijo:

Que se debe hacer para la celda G5 para llamar a la macro "rellena_base2"

El evento "Worksheet.Change", se produce cuando el "usuario o un vínculo externo cambia las celdas de la hoja de cálculo" (https://msdn.microsoft.com/es-es/), o sea, que al modificar el valor de la celda se ejecuta la macro. Fijate el código en la hoja y reemplaza el valor de la variable "celda" por el valor que tu deseas (en el ejemplo "G5").

Private Sub Worksheet_Change(ByVal Target As Range)
celda = Hoja99.Range("G5").Address
If Not Application.Intersect(Target, Range(celda)) Is Nothing Then Call mi_macro
End Sub

En el archivo actual no lo necesitarás, puesto que se modificó el código y podrás hacerlo desde el formulario,

Nuevamente, prueba y comenta por favor!

Que tengas una buena jornada!

https://www.dropbox.com/s/o9s7zyxdc3by5or/ae20160827Agregar registros a BD.xlsm?dl=0

publicado
Hace 3 horas, tierra_pampa dijo:

Con respecto a tu pregunta, y para que no te quedes con la duda:

Hace 9 horas, PedroJSuarez dijo:

Que se debe hacer para la celda G5 para llamar a la macro "rellena_base2"

El evento "Worksheet.Change", se produce cuando el "usuario o un vínculo externo cambia las celdas de la hoja de cálculo" (https://msdn.microsoft.com/es-es/), o sea, que al modificar el valor de la celda se ejecuta la macro. Fijate el código en la hoja y reemplaza el valor de la variable "celda" por el valor que tu deseas (en el ejemplo "G5")

Hola nuevamente @tierra_pampa!! En realidad me quedé con la duda que en realidad es: en el archivo anterior mi intención era si se puede agregar otra variable "celda2" en el evento Worksheet.Change y que ésta celda fuese la "G5" y la variable "celda" la "G2". Esto es para fines informativos.. El concepto lo tengo claro en teoría más no en la práctica. (El enlace me lleva a una página índice y no al evento Worksheet,Change). Con cada consulta que leo y estudio en otros casos del foro aprendo cada día más y gracias a personas desinteresadas como Uds. mejoro día a día. El archivo va quedando espectacular y estoy desarrollando un Userform para reducir los tipeos y el tiempo empleado al introducir los datos en las hojas "Ventas" y "Compras", por lo tanto tendrán mas noticias y dudas de mí para pulir el archivo. Espero que resuelvas mi duda con el Worksheet.Change.. Un gran abrazo desde la "Tierra de los Crepusculos" Barquisimeto Estado Lara Venezuela!!! Con respecto a este tema lo doy por solucionado!!!

publicado

Aquí estamos de nuevo @PedroJSuarez, jajaja

Ante todo, y como citaste tu lugar de residencia, estuve espiando a la pasada paisajes de tu tierra: hermoso lugar, te felicito! :D

Vamos al tema: el link a la página del evento "change" es este click aquí, pero en realidad entrando al sitio principal, puedes realizar la  búsqueda que desees y que necesites según la duda (busca filtrando por "Desarrollo de soluciones Office").

Con respecto a la impresión, es una costumbre mía observar lo que se va a imprimir por cualquier error que pudiese existir en la planilla. Si quieres imprimir sin pasar por la vista previa, pues modifica la siguiente línea en los procedimientos "imprime_c1" e "imprime_c2".

Hoja99.PrintOut preview:=True

por

Hoja99.PrintOut preview:=False

Entiendo que con esta modificación, no necesitarás pulsar la tecla "ESC" pero, al igual que en el post anterior te paso el link al método SendKey: click aquí

Nuevamente te felicito por tu esfuerzo, y que tengas éxito!

Abrazo desde La Pampa!

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.