Jump to content

Mostrar tanto por ciento aplicado


Recommended Posts

Hola amigos, muy buenas tardes.

Excel 2003 – SP3

El maestro Macro-Antonio, me ayudó hace algunos días a solucionar un problema que tenía, y para ello, me creó este código que me funciona de maravillas.

Private Sub CMBPorcentaje_Click()

On Error Resume Next

pct = InputBox("Introduce el %", , 0)
For Each celda In Selection
celda.Value = Round(celda.Value * (1 + pct / 100), 2)
Next

End Sub[/CODE]

Como se puede comprobar, este código lo que hace es sumar un tanto por ciento optativo a las celdas seleccionadas.

Bien, ahora me he dado cuenta de un detalle, es necesario que ese tanto por ciento se muestre. Con esto, conseguimos saber qué cantidades han sido incrementadas, obviamente a todas las cantidades que se vean afectadas.

El tanto por ciento se puede mostrar por ejemplo, en el rango de la columna “F”, (a partir de la indicación de %).

No sé cómo hacer para que eso ocurra. Por favor, si alguien puede ayudarme se lo agradeceré.

Saludos

Prueba2 II.rar

Link to comment
Share on other sites

Hola "Cocinitas":

Ves añadiendo chocos y cazón adobado a la cerveza,...jajaja


Private Sub CMBPorcentaje_Click(): On Error Resume Next

pct = InputBox("Introduce el %", , 0)
For Each celda In Selection
celda.Value = Round(celda.Value * (1 + pct / 100), 2)
Range("F" & celda.Row) = CDbl(pct) '<======
Next

End Sub[/CODE]

Voy a seguir con el "apaño", que por cierto me está quedando bastante "apañao".

Link to comment
Share on other sites

Espera, que a lo mejor lo he entendido mal.

Pon el % en G7, ya te queda informado, y ademas nos ahorramos el InputBox.

Private Sub CMBPorcentaje_Click(): On Error Resume Next

For Each celda In Selection
celda.Value = Round(celda.Value * (1 + [G7] / 100), 2)
Next

End Sub


[/CODE]

A ver si esto va mejor.

Y si es esto, y además va a ser siempre el mismo rango (I11:I24), nos ahorramos la selección del rango con:

[CODE]Private Sub CMBPorcentaje_Click(): On Error Resume Next

For Each celda In Range("I11:I24")
celda.Value = Round(celda.Value * (1 + [G7] / 100), 2)
Next

End Sub


[/CODE]

Ale hasta luego

Link to comment
Share on other sites

Maaaaarchando. Oido. Aunque parezca raro, prefiero la carne, pero vale la canasta.

Genial, como siempre.

Mmmmm... me quedo con la primera de las opciones, aunque está más historiada.

Hay que tener en cuenta que la aplicación, la va a usar aquí más de uno que hay que darle las cosas mascadas, y creo que es la más adecuada.

Y con lo del apaño, pues nada. A ver si lo conseguimos, aunque visto lo visto, seguro que me apañaré perfectamente. Siempre en el buen sentido de la palabra.

Gracias Antoni

Saludos

Link to comment
Share on other sites

¿ Que guardas exactamente en la columna B ? ¿El usuario? ¿?

¿ Podría, aparte de respetar la información, añadirle mas información ?

Por ejemplo ahora contiene B11 contiene cualquier valor, ¿ Podría yo añadirle algo como /A o /M para saber si la línea ha sido introducida manualmente y por tanto el importe puede introducirse manualmente ? Es fundamental saberlo.

Otra forma de saberlo, sería basarnos en si la descripción, está o no está en la lista de muebles altos.

Decide tu, a mi me da igual, aunque es mas segura la primera.

Link to comment
Share on other sites

Bueno, a ver cómo te lo explico.

En la columna “B” lo que se guarda es el número correspondiente al grupo al que pertenecen los modelos de las puertas, y que se encuentra en la celda “T8”. Este, a su vez, se genera dependiendo del grupo que selecciones en el cuadro combinado que contiene los modelos de las puertas.

Para que se entienda mejor: si seleccionas en el cuadro combinado el primer modelo “Neva y Bolonia…”, y agregas una puerta, verás que ha aparecido un “1” en la columna “B”. Ahora seleccionas en el cuadro, por ejemplo, “Semiarco Duelas…”, agregas la misma puerta y verás que el número es un “3”, esto quiere decir que pertenece al grupo 3 y por lo tanto tomará los precios de la tarifa 3, y así con todos los modelos.

Todos los modelos tienen asignados un número para poder aplicárseles los precios correspondientes. De ahí la importancia de la columna “B”

Espero haber aclarado el asunto.

En cuanto a la descripción, la mayor parte son muebles digamos, con medidas estandars y están en "Muebles altos". Pero hay muchas veces que el cliente viene con una idea fija de un mueble especial, que vaya usted a saber dónde puñetas lo ha visto. Obviamente este mueble especial no está en la tarifa, hay que presupuestarlo haciendo un despiece del mismo, y por consiguiente hay que ponerlo manualmente.

Saludos.

Link to comment
Share on other sites

Vale, "pillao", bueno, creo, vamos a ver:

O sea, que, cualquier línea entrada de forma manual:

. La columna B debe ir en blanco, ¿Si?

. La descripción no estará en el combo de MUEBLES ALTOS ¿Si?

Quedo a la "wait"

Link to comment
Share on other sites

A ver, para cualquier entrada manual:

- En la columna "B" no se escribiría nada, porque va oculta y por lo tanto no debería contener nada.

No te entiendo bien con lo de la descripción.

La descripción de los muebles estándars, estarán todas definidas a partir del rango B21 de la Hoja "Datos". Cualquier artículo que no esté en ese rango, se tendrá que agregar manualmente y será considerado como especial. Así que habrá que valorarlo haciendo un despiece del mismo, (material que lleva, puertas especiales, horas de manipulado, etc.).

Por lo que yo entiendo como combo, en el combo no se encuentran las descripciones, en el combo están los modelos.

Edito.

Antoni, de todos modos voy a usar la primera opción que me dijiste que funciona perfectamente.

Link to comment
Share on other sites

Vale, por descripción, me refería al modelo. Pero ya está claro.

Bueno, ya que estoy en ello, lo acabo y si te gusta, bien y si no, quita los chocos y el cazón de la lista,...jajaja

Link to comment
Share on other sites

quita los chocos y el cazón de la lista,...jajaja

Ja, jajajajaja... muy bueno, como decimos por aquí "bien tirao".

Edito.

Me lo acaban de contar ahora msimo, así que te lo cuento, es un poco machista.

Sabes porqué Dios creó a la mujer ??.

Porque cuando creó al hombre, se le quedó mirando y se dijo: Ahora tengo que crear algo para encajar esa pieza que le cuelga ;).

Oye, que no se me enfade nadie que es una broma, vale ??

Link to comment
Share on other sites

Me estoy liando mas que "la pata de un romano".

Las fórmulas, los controles de hoja y los formularios, se toleran entre ellos pero no son muy buenos amigos.

Antes de seguir adelante, decirte que para terminar con el "apaño", sería necesario hacer desaparecer todas las fórmulas, por lo que sería necesario definir como se calculan los precios para incluirlos en el formulario que te adjunto para que veas cual sería la idea.

O sea en pocas palabras, haría falta replantearse la forma de introducir y guardar la información.

Ya me contarás.

MA Prueba2 III.rar

Link to comment
Share on other sites

Bueno, si te digo la verdad, el sistema de introducir los precios y la infraestructura de todo el sistema, la he copiado de una tarifa de precios que me llegó de un proveedor nuestro, acondicionándolo todo a mis necesidades.

Vamos a empezar por el principio.

Todos los precios y toda la información básica se guarda en la Hoja "Datos". Tanto las descripciones de los muebles como los precios se van poniendo a mano y cuando ya se tiene toda esta información, se las han "apañao" para que a través de las fórmulas existentes se vayan agregando automáticamente a través del botón "Agregar" a la hoja del presupuesto, tomando los datos de la Hoja "Datos".

Antoni, si tú tienes o crees que existe una idea mejor para ir introduciendo los registros automáticamente, haz lo que creas pertinente.

Carezco de los conocimientos necesarios para poder explicarme con mayor claridad, técnicamente hablando.

También decirte que el Libro, cuando esté terminada la aplicación, contendrá tantos hojas como modelos de puertas haya, puesto que cada hoja contendrá todos los datos necesarios que se irán resumiendo en la Hoja "Datos". Y todas estas hojas, incluyendo la de "Datos" irán ocultas.

Para que te hagas una idea, ta mando una de las hojas que contienen los datos de un modelo. Todos estos datos irán resumidos después en la Hoja Datos.

Esto es todo lo que puedo decirte, no sé. Si tú estás liado imagínate como estoy yo que no sé ni una "papa". Solo repetirte que si tienes un sistema mejor y más efectivo, adelante.

Todos los registros que figuran son ficticios.

PresuLince.rar

Link to comment
Share on other sites

Con mis humildes conocimientos de la materia, voy a intentar darte una explicación para el sistema que, creo yo, han empleado para la generación de precios.

Cuando se agrega un registro, siempre hablando de agregar automáticamente. El código VBA hace que la descripción del registro (AN 70 x 30), se copie en el rango de la columna “P”.

En el rango de la columna “S” existe una fórmula que hace lo siguiente:

Si la celda “P11” contiene algo, busca en el rango” “TODO” (Todo es un nombre que le han dado a un rango), en la primera columna (Columna "B" de la hoja DATOS), y muestra el precio dependiendo del grupo que se muestre en la celda “T8”.

Vamos a la siguiente fórmula. Rango de la columna “R”:

Si “S11” contiene algo, suma el rango V11:AV11, multiplica “A11” por “S11” y le sumas “F11”.

Y por último está la fórmula del rango de la coulmna “I”:

Si “S11” contiene algo, suma el rango V11:AV11, multiplica “A11” por “S11” le sumas “F11” y le añades el tanto por ciento de la celda “P3”.

No sé Antoni, espero que esta explicación pueda ayudarte.

Edito.

Todo esto es con el sistema que tengo, no tiene nada que ver con lo que tú has hecho, que por cierto , es estupendo me encanta. Sería una maravilla si pudiéramos acoplarlo.

Link to comment
Share on other sites

Antoni, tengo una de las aplicaciones ya bastante avanzada, a falta de retoques y por supuesto el asunto de agregar registros manualmente.

Si quieres te la puedo enviar, el problema es que pesa mucho, cerca de 3 megas, intentaré eliminar cosas poco relevantes y la reduciré al máximo, pero aún así me quedaría muy grande, a ver cómo me las apaño para enviártela. He pensado subirla a un servidor público pero no sé si aquí se admite poner links externos.

Pero va a tener que ser mañana.

Link to comment
Share on other sites

Hola:

Si, puedes utilizar servidores públicos sin problemas, el único problema es que lo pones al alcance de todo el mundo.

Te envío un privado con mi e-mail.

En cuanto al apaño, está claro que he subestimado el tema por falta de conocimientos funcionales sobre el proyecto.

Lástima que estemos a mas de 1.000 km de distancia porqué se requeriría de varias reuniones in situ para hablar del asunto.

Lamento haberte puesto la miel en los labios y luego tener que decirte que no hay mas.

No obstante, me comprometo a ayudarte en lo que te queda y hacer pruebas y revisiones de lo que ya llevas hecho.

Saludos

Link to comment
Share on other sites

Buenos días, Antoni.

Al final he eliminado varias cosas y he alviado bastante el peso del archivo.

Más o menos así es como tenía pensado terminar la aplicación.

Como puedes comprobar en la Hoja "Datos", este tipo de muebles tiene 36 modelos, 36 hojas que llevará. Sólo te he dejado una, la Hoja 2, para que te puedas documentar mejor. Si te das cuenta, también se utiliza mucho el nombre para rangos, muy importante en esta estructura. Con esto y las explicaciones anteriores espero haberte aclarado las cosas un poquito más.

A partir de aquí, haz lo que creas oportuno. Por supuesto, admito todo tipo de sugerencias y mejoras. Por favor, todo esto si quieres y puedes, claro. No faltaría más.

Ya me contarás algo :).

Saludos

Edito.

Vaya !!. Mientras me mandabas tu último mensaje te estaba yo manadando el mío.

Tu mail no puedo verlo, dice que sólo está visible para moderadores.

Antoni, lo único que me quedaba pendiente era el poder agregar registros manualmente, sin que sobreescribiera las líneas ya escritas. Si tienes alguna idea de cómo poder hacerlo, bien, y si no, pues nada, no pasa nada.

Lince1.part01.rar

Lince1.part02.rar

Lince1.part03.rar

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Crear macros Excel

  • Posts

    • Hola a ambos, @gonzalomadrid, en Word de M365 sí funciona. Basta con que escribas =rand() para que te aparezca el texto. Si eliges =rand(2,3) te aparecerá un texto con 2 párrafos y 5 operaciones. En Excel, hasta donde yo sé, es diferente. Tal como te comenta @Abraham Valencia, dispones de =ALEATORIO() y =ALEATORIO.ENTRE() para generar números aleatorios. El propio 'Help' de Excel explica muy bien argumento y sintaxis de ambas funciones. Saludos,  
    • Hola, descargar mejor la versión (2). Saludos. MImgUrl(2).xlsm
    • Hola Medio enredado lo que escribes, pero creo que en realidad lo que buscas es ALEATORIO.ENTRE o RANDBETWEEN si usas Excel en inglés.    
    • Muchas gracias a todos por sus aportes, me han resultado de mucha utilidad, al final lo pude resolver utilizando temporalmente la funcion de reemplazar para sacar la operacion requerida y despues de eso lo volvi a dejar como estaba. Un saludo para todos
    • aquel famoso - y antiguo-    = Rand (8,5)   ¿funciona en    en excel 2019? y de paso ¿funciona en word 2019 y demás office? A mi no me funciona ni a tiros, ni ese ni   = Rand () ni Lorem Ipsum() ni nada parecido para meter texto dummy o aleatorio. ¿alguien  sabe algo?  
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy