Saltar al contenido

Archivo para control de Stock


Enigma25

Recommended Posts

Siii tienes razon joaoM pero esq aki en guatemala las cosas no van asi, xq no hay un porcentaje fijo d ganancia... sino que varia segun el dueño del negocio, y para este como es control interno no emite factura, sino solo controla cuanto invierte y cuanto gasta....

Enlace a comentario
Compartir con otras webs

  • Respuestas 217
  • Created
  • Última respuesta

Una de las razones que me llevo a mensionar lo de un libro para cada usuario, fue esa y imaginate.

Ademas creo me quedo por aquí porque ya se esta hablando de programar el mismo desde Access y si poco entiendo de Excel, Access nada de nada.

Gracias a todos.

Está bueno el proyecto, me quedare tal como esta hasta ahora

Enlace a comentario
Compartir con otras webs

Enigma, cual es el en que cambiaste las lineas por motivos del nombre? dime e nque pag y # de post por favor.

Pedro, sabes que es imposible, ¿porque? una de las razones ya la expuse, (esa es la de menos importancia pero, como comprenderás, tal vez me haya pasado en mi razón, discúlpenme.

Las otras razones es lo que mencione anteriormente por lo de cada uno un proyecto.

Si, estoy plenamente de acuerdo que enigma es uno de los pocos que quiere enseñar y sacar lo mayor provecho de las opiniones en conjunto, pero como comprenderás. para enigma es imposible complacer a todos, SI, pudiera hacerlo y si quiere lo hace, pues es decisión de el mismo, en ir agregando cosas y cositas para ir mejorando y adaptando el proyecto a las necesidades de todos, imposible, a menos que cree uno para cada opinión y necesidad.

Lo de seguir, puedo hacerlo, ¿Por qué no? pero fijate que yo estoy con la opinión contraria que es la de usar el proyecto para un Stock que abarque entradas y salidas de productos, entras de proveedores y Clientes.

Aquí los clientes (Salidas) serian echas en la Facturación o Recibos y estos al mandar imprimir, insertar una copia con poca presentación en una hoja para tal fin, en la cual quedaría registrada el Nombre Cliente, Dirección y teléfono, RIF/CI, Cant. Descripción Producto, CostoUnit, Costo Total.

Unas lineas abajo, Sub Total, IVA y Total, es decir.

Para gustos colores, cada cabeza un mundo, como sea, lo bueno son las mejoras y si enigma se presta para ir modificando, a gusto de cada uno, pues es su decisión, lo que pasa también es que va ir agregando código y eliminando que llegará el momento que se perderá.

Y fijate si no tengo razón por esta ultima, no sabe ni en cual hizo cierta modificación porque soy yo, eres tu (Pedro) viene otro y otro y otro, las opiniones se mezclan y se pierden en la nube del pensamiento.

Ya veremos

Enlace a comentario
Compartir con otras webs

Buen dia

Pedro14387 y joaoM

Les estoy muy agradecido por la aceptacion del trabajo que publiqué en este foro. en verdad es un honor que lo tomen como referencia para sus trabajos y demas y por tal razon contento por todo. Entiendo mucho los puntos que exponen y entiendo que lo requieren para usarlo. Sin embargo, es importante que sepan que los aportes dados no son completos por el tema de peso permitido, lo cual respetamos cada vez que adjuntamos un proyecto. Tambien porque se dejan de manera que las personas aprendan o lo usen (como ustedes) y puedan hacer sus propios trabajos. De hecho el foro está lleno de mucha informacion y en los temas abiertos se hacen preguntas puntuales sobre un codigo especifico o se intercamia informacion, etc. No obstante, si existe un archivo que no pese mucho y su ejecucion es casi completa a lo necesario, pues, se toma y cualquier mejora se pide y el que lo aportó hace las actualizaciones para que esté operativo.

humildemente estoy encantado por permitirme ser parte de lo que necesitan y nuevamente es un honor que me tomen en cuena para ello, pero como deben saber, es imporsible que se pueda atender a cada uno con una necesidad distinta ya que la forma en que operan no es igual al otro, por tanto tardariamos mucho en atenderlos. Pero siempre está esa voluntad en ayudar, tal como a mi me ayudaron tan gentilmente y tengo a muchos de este foro en la cima mas alta de mis respetos.

Pero volviendo al tema; estaré hacendo el trabajo con Access como Base de Datos para que sea mejor, cuidando siempre de no llenarlo de tanta informacion para que se pueda adjuntar al foro. Les recuerdo que la programacion en si será siempre en Excel, no en Access. Los registros, consultas, informes, etc sera por medio de Excel hacia Access. Bueno, ustedes lo verán cuando tenga los adelantos.

JoaoM

En los formularios de Entradas y Salida respectivamente en las linea

lblControl = Format(Application.WorksheetFunction.Max(Workbooks("Stock.2.0.xlsm").Worksheets("RecordEntrada").Range("A:A")) + 1, "00000")

Cambiala por esta:

lblControl = Format(Application.WorksheetFunction.Max(Hoja3.Range("A:A")) + 1, "00000")

En el de consultar_Reg cambiala por esta:

Nm = Format(Application.WorksheetFunction.Max(Hoja3.Range("A1").End(xlDown)) + 1, "00000")

Disculpen que no las coloque en etiqueta pero no me salen las opciones de los formatos para encerrar los codigos con sus respectiva etiquetas o no lo veo.

Enlace a comentario
Compartir con otras webs

enigma, a pesar de que en la pag.1 yo haber quedado un tanto molesto por haberte molestado, estoy en la expectativa a ver como queda finalmente, esperare que pedro decida y veo si el resultado me beneficia a mi también, o por lo contrario algo tengo que modificarle.

Lo que te pedia si, es que me digas a cual de las ediciones (Pg. y Post), cambiaste la línea donde esta el nombre del libro para que se pueda hacer cambio según la finalidad de este y su utilidad.

Ademas de esto, quisiera reiterarte mi pedido anterior; una formula indicada en Post 73 pag. 4

Enlace a comentario
Compartir con otras webs

Buen dia

Pedro14387 y joaoM

JoaoM

En los formularios de Entradas y Salida respectivamente en las linea

lblControl = Format(Application.WorksheetFunction.Max(Workbooks("Stock.2.0.xlsm").Worksheets("RecordEntrada").Range("A:A")) + 1, "00000")

Cambiala por esta:

lblControl = Format(Application.WorksheetFunction.Max(Hoja3.Range("A:A")) + 1, "00000")

En el de consultar_Reg cambiala por esta:

Nm = Format(Application.WorksheetFunction.Max(Hoja3.Range("A1").End(xlDown)) + 1, "00000").

Las líneas solo contienen ("Record").Range y no ("RecordEntrada").Range

Alguna diferencia?

Gracias por tu respuesta y una ves mas te pido disculpas por ocupar tu tiempo el cual estoy sumamente agradecido también por tu voluntad y dedicación para que todos quedamos contentos.

Tu proyecto inicial, El de la pág. 1 primer libro, lo estoy usando según pude hacer algo (muy poco) para que me funcionara según lo necesite. Ahora este con las modif, me viene a caer mejor aun, ¿Los datos? los paso de uno al otro y listo pero como dije anteriormente, voy a esperar por la solución que quede pedro.

La o las formulas si es que puedes hacermelas

Enlace a comentario
Compartir con otras webs

Ah ok

Ya que usas el que fué modificado, es decir, el que usa dos hojas distintas para los registros: Entrada y Salidas, entonces la liena seria asi...

Para el Formulario de Entrada

lblControl = Format(Application.WorksheetFunction.Max(Hoja3.Range("A:A")) + 1, "00000")

Para el de Salidas

lblControl = Format(Application.WorksheetFunction.Max(Hoja8.Range("A:A")) + 1, "00000")

Los de consultas de Entradas

En la lienas Sub Entradas

Nm = Format(Application.WorksheetFunction.Max(Hoja3.Range("A1").End(xlDown)) + 1, "00000").

El de consultas de Sallidas

Linea Sub Salidas

Nm = Format(Application.WorksheetFunction.Max(Hoja8.Range("A1").End(xlDown)) + 1, "00000").

Enlace a comentario
Compartir con otras webs

Bueno, no quiero confundirte ni mucho menos fastidiarte con todo esto pero,

baje el de la pag. 3 post 44 uno de estos días atrás y en el estoy y con el es que voy a estar, mientras pedro decide que hacer.

El 1ª que te dije que es de la pag 1 lo tengo ya hace bastante tiempo y no me referia a ese, si no a este de la pagina 3 Post 44, a ese es que quiero modificar dichas lineas para poder cambiar su nombre a discreción.

Originalmente Form de Entrada en evento Sub mostrar va a la hoja 5 "Proveedor"

Form Salidas Evento Clientes va a la Hoja 4 "Clientes" y

Consultar registro va a la hoja 3 "Record"

Para que atiendas lo de pedro, verifica el que te mensiono de la pag 3 Post 44

Enlace a comentario
Compartir con otras webs

Gracias amigo.

Tengo que recomendarte que uses algo que se llama Clean Proyet que es una pequeña aplicación que limpia el Codigo.

Al hacer uso continuado de la edición VBA, este se llena de basura y esta aplicación es buena para la limpiesa y te deja el código LIMPIO.

Te cuento que tu libro Stok Joao.xlsm bajado pesa 178.409 Kb, después de pasarle la aplicación, solo pesa 125.112 eliminándole el modulo que le dejaste, una reducion de 53 Kb

Se llama la aplicación CodeCleaner 5.0 (Build 5.0.32)_VBA.exe y se instala en Herramientas del editor VBA

Este enlace para bajarla Excel VBA Code Cleaner Add-in

Enlace a comentario
Compartir con otras webs

Veo un pequeñísimo cambio en el código de Entrada y Salida pequeño, ¿Cuál el motivo? será que el ultimo es mejor o mas efectivo que el de la pag. 3 post 44?

En la hoja Base tienes productos ya con Stok, funciona el formulario Entrada y Salida pero, en el ComboBox1 de código OBLIGATORIAMENTE tiene que el código ser en carácter (letra) o al menos comenzar por letra.

Aquí tanto en un formulario como en OTROS deveria de ser a descripción la colocación del código o entonces el dicho ComboBox permitir sea carácter letra o carácter numero, mezclado ect ect, es decir el código que uno vea ser mas conveniente para uno y su finalidad.

Donde modifico?

Aquí? donde y como

Private Sub ComboBox1_Change()
Dim Txt As Long
Label8.Caption = "": Label9.Caption = "": Label10.Caption = "": Label11.Caption = "": TextBox1 = "": Label12.Caption = ""
Txt = 2
Do While Hoja1.Cells(Txt, 1) <> ""
If ComboBox1 = Hoja1.Cells(Txt, 1) Then
Label8.Caption = Hoja1.Cells(Txt, 2)
Label9.Caption = Hoja1.Cells(Txt, 3)
Label10.Caption = Hoja1.Cells(Txt, 4)
Label11.Caption = Format(Hoja1.Cells(Txt, 5), "#,##0.000")
lblStock.Caption = Format(Hoja1.Cells(Txt, 6), "#,##0")
End If
Txt = Txt + 1
Loop
End Sub[/CODE]

Los comentarios en el código me ayudan pero algunos no existen comentaros y no se si es en Txt

KeyAscii = 0 'Impedir escritura (yo digo, deja eliminar, NO debería dejar tampoco)

Enlace a comentario
Compartir con otras webs

Esta nítido!! pero una cosa jejeje en el formulario de salida me pusiste el precio de venta pero me quitaste el de costo, ese de costo te decía yo que fuera bueno verlo para tener una idea de cuanto me costo y cuanto le pongo de precio final...

Enlace a comentario
Compartir con otras webs

Enigma, con la línea, no me dá porque al insertarla me la coloca en rojo y me dice SE esperaba Then o GoTo.

Voy probando agregarle Then al final

Si funciono. Porque esto? porque hay por ejemplo cemento en que el código que se usa es ceme o cemen, compresor, comp o compr y así por delante. Podiendo usar números también, es decir, es variable el codigo

Enlace a comentario
Compartir con otras webs

Claro que si amigo pedro14387

Es solo que si quieres que te ponga el costo + el precio de venta, habria que cambiar casi todo en el formulario, en la hoja donde se imprimiria, en la hoja donde se registra, en las consultas y no sabria en cual mas. Tendria que modificar mucho.

Enlace a comentario
Compartir con otras webs

Ahhh osea que no es solo deponer un textbox que refleje el precio que se ingreso en el formulario entrada??

Entonces no tengas pena, asi déjalo enigma ya con eso me has ayudado bastante

Yo crei que era fácil poner un cuadro que reflejara el precio que se ingreso en el formulario de entrada y que en el de salida apareciera como aparecia antes y que se podía ingresar el precio al que se quería vender el producto, pero esta bn si lleva demasiado trabajo no tengas pena Enigma con lo q me has ayudado es bastante

Enlace a comentario
Compartir con otras webs

descuide amigo no es pena en si. Solo que esto seria una modificacion grande del archivo para que funcione tal como esperas. Sin embargo, para que puedas sacar las diferencias entre los ingresos y egresos por medio de una consulta se pudiera hacer.

Se diseña un formulario con el que por medio de rangos de fechas se pueda consultar tantos los ingersos y egresos y se calcule (reste) para que veas cuanto obtuviste.

Enlace a comentario
Compartir con otras webs

Archivado

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


  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Si  no me he liado con los paréntesis: Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Application.Calculation = xlManual Application.EnableEvents = False If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then Range("E22") = WorksheetFunction.Sum(Range("E4:E21")) Range("E23") = WorksheetFunction.Sum(Range("E4:E19")) Range("E24") = Range("E23") - WorksheetFunction.Sum(Range("I4:I7")) Range("I22") = WorksheetFunction.Sum(Range("I4:I21")) Range("I4") = Range("E23") * 0.1 Range("I5") = Range("EN10") * Range("EN11") Range("I6") = Range("E23") * 0.0127 Range("I7") = Range("E23") * 0.006 Range("I25") = Range("E22") - Range("I22") Range("I12") = Range("E24") * 0.03 Range("C7") = Range("EQ8") - Range("EQ9") + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16") Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19") Range("E7") = Range("E4") / Range("C4") * 7 / 44 * 1.5 * Range("C7") Range("E8") = Range("E4") / Range("C4") * 7 / 44 * 0.3 * Range("C8") Range("E9") = Range("E4") / Range("C4") * 7 / 44 * 1.3 * 1.5 * Range("C9") End If Application.Calculation = xlAutomatic Application.ScreenUpdating = True Application.EnableEvents = True End Sub  
    • Hola de nuevo a ambos, @daren, tu archivo lleva excesivos datos, que creo no son necesarios para la información final que buscas. Te subo otro archivo, simplificado al máximo, que, si lo he entendido bien, con esta fórmula simplificada: =CONTAR.SI('Casos de Prueba'!I:I;"OK")*('Casos de Prueba'!I1="Resultados Ciclo "&COLUMNA(A5)) se calcularía el primer dato, que se encuentra en la columna I. Copiando la fórmula a la derecha las celdas que necesites, se completaría el rango.  Tu fórmula la coloco en D7, y esta nueva en D9, que como ves (si, repito, he interpretado bien lo que buscas), da los mismos resultados. ---------------------------------------------------------------- En cuanto a: Aquí tienes, en el mismo archivo (Hoja 3) lo que devuelve tu fórmula cuando hay un determinado dato en A1 y en B2. No llego a entender qué es lo que quieres exactamente.  Tal vez con una pequeña explicación de lo que esperas obtener, sea suficiente para poner el hilo a la aguja. ? ----------------------------------------------------------------- En el caso de que falte por añadir o evaluar alguna otra variable o parámetro (en tu primer post hablabas sólo de 'OK' y ahora veo que en el archivo figuran además 'KO' y 'BLOCK'), por favor, intenta emular el ejemplo del archivo que estoy subiendo; añade EXCLUSIVAMENTE esos datos en la hoja allá donde proceda, explicando dónde o cómo deben contarse o sumarse. Mejor trabajar siempre con datos anónimos y reducidos. Desconozco si en tu archivo alguno de esos datos puede considerarse confidencial, pero seguro que no interesan a nadie. Mucho mejor obviarlos. Saludos, Plantilla V3 (B).xlsx
    • buenas noches, quisiera saber si puedo mejorar mi macros que se encuentra en el evento change de la hoja de calculo de Excel, son códigos de cálculos básicos, además si me pudieran ayudar a reducir el código o darme algún tip para reducirlo yo mismo estaría muy agradecido.  de ante mano muchas gracias     Private Sub Worksheet_Change(ByVal Target As Range)     Application.ScreenUpdating = False     Application.Calculation = xlManual     Application.EnableEvents = False              If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then             Sub todo()          Range("E22") = WorksheetFunction.Sum(Range("E4:E21"))     Range("E23") = WorksheetFunction.Sum(Range("E4:E19"))     Range("E24") = WorksheetFunction.Sum(Range("E23") - WorksheetFunction.Sum(Range("I4:I7")))     Range("i22") = WorksheetFunction.Sum(Range("I4:I21"))     Range("I4") = Range("E23") * 0.1     Range("I6") = Range("E23") * 0.0127     Range("I5") = Range("EN10") * Range("EN11")     Range("I7") = Range("E23") * 0.006     Range("I25") = Range("E22") - Range("I22")     Range("I12") = Range("E24") * 0.03     Range("C7") = WorksheetFunction.Sum(Range("EQ8") - (Range("EQ9"))) + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16")     'Range("E7") = WorksheetFunction.Sum(Range("C7") * ((Range("E4") * 0.0077777)))     Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19")     'Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 1.3) * 1.5) * Range("C9")     'Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 0.3)) * (Range("C8"))     Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 1.3) * 1.5) * Range("C9")     Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 0.3)) * (Range("C8"))     Range("E7") = WorksheetFunction.Sum((((Range("E4") / Range("C4")) * 7) / 44) * 1.5) * Range("C7")          End Sub              End If                  Application.Calculation = xlAutomatic     Application.ScreenUpdating = True     Application.EnableEvents = True     End Sub
    • Buenas perdonad la espera adjunto el fichero Excel y explico mas detallado lo que me solicitan: Lo que me solicitan es que esos CP de la pestaña Casos de prueba los cuales tienen formulas para que cuando se copien y peguen junto a sus pasos el CP se va autoincrementando a 1,2,3 etc...., pero si copias ese CP bien solo con el primer paso o con todos sus  pasos y lo insertas entre dos CP no continua con la numeración, como se ve en la foto al hacer eso el CP insertado continua con la numeración CP2 y el de abajo pone también CP2 no se incrementa ni ese ni el valor de CU que hay a la derecha que también es incremental. Necesitaría que continuara con esa numeración aun insertándolo entre medio de 2 tanto el CP como el CU de la derecha. También me solicitan que el campo Ciclo 1 de la pestaña Resumen es auto incremental cuando copias y pegas va sumando 1, pero en las formulas referentes a Ok KO Y bloqueo al copiar y pegar se mantiene la misma formula , la idea es que cuando copies y pegues la fila donde están los ciclos se autoincremente Ciclo a 1,2,3,4 etc... y la formula de los campos OK,KO y Bloqueos se incremente también pasando de la columna I a la J  luego a la k etc... y que en Resultados Ciclo el numero de la formula también se incremente Resultados Ciclo 1 , 2 ,3 etc... que cambie la columna a la vez que el numero de Resultados Ciclo. Gracias por adelantado un saludo. Plantilla v3 Pruebas.xlsx  
    • Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo  en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia  en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv)  ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda  "F11" es  418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextBox 1, 3, 5, 7, 9, 11 y 13  para ver el resultado. Mucho les sabre agradecer la ayuda que me puedan brindar. PRUEBA.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.