Jump to content

96andres96

Members
  • Posts

    15
  • Joined

  • Last visited

About 96andres96

96andres96's Achievements

  1. Buenas. Tengo una hoja de excel donde se carga bastante información según el dato inicial introducido por el usuario y estaba pensando en si en lugar de que se vea cómo el excel va generando los datos poco a poco en cada celda si es posible colocar una imagen de carga y una vez que se han obtenido todos los datos pues se muestre el resultado, algo así como cuando accedes a una página web que te sale un flecha dando vueltas hasta que se carga toda la página. ¿Es posible?
  2. Perdona por no responder antes, no había podido pasarme por el foro. Me ha servido, muchas gracias ^^
  3. Buenas tardes. Tengo una macro hecha para que copie los datos de una hoja y los pegue en otra. (nombrehoja1 es una variable que recibe el nombre de la hoja en la que se desea copiar los valores) Adjunto el código: Sub Copiar() Sheets(nombrehoja1).Range("G25").Copy Sheets("Hoja administrador2").Range("A2").PasteSpecial xlValues Application.CutCopyMode = False Sheets(nombrehoja1).Range("G42").Copy Sheets("Hoja administrador2").Range("A3").PasteSpecial xlValues Application.CutCopyMode = False Sheets(nombrehoja1).Range("G59").Copy Sheets("Hoja administrador2").Range("A4").PasteSpecial xlValues Application.CutCopyMode = False Sheets(nombrehoja1).Range("G76").Copy Sheets("Hoja administrador2").Range("A5").PasteSpecial xlValues Application.CutCopyMode = False End Sub Pero tengo dos problemas. El primero es que no es muy eficiente este código, ya que más adelante me gustaría copiar más datos y tendría muchas líneas de código y, a parte, cuando ejecuto la macro puedo ver los valores que va copiando. Es decir, estoy en la hoja A, y en esa hoja tengo la macro. Al activarla veo cómo copia los valores de nombrehoja1 (aun estando en la hoja A). Espero explicarme. Entonces me gustaría saber cómo puedo realizar copias de valores de celdas disjuntas (solo valores, no fórmulas) y pegarlas en otra hoja de manera eficiente y sin que me salga ese error. Gracias de antemano.
  4. Una pregunta. ¿Hay alguna forma de tener en línea el excel o de que se actualice en el drive o algo? Es que por seguridad cuando trabajo, subo el excel al drive para no perder nada, pero no sé si hay alguna forma automática de hacer esto. Imagino que no, pero por preguntar... jajaja Sé que está la versión excel de google en el Drive, pero esa no me viene bien ya que he trabajado en el Excel y de pasarme al excel de Google se me inhabilitarían muchas cosas. Gracias.
  5. Gracias por la ayuda. De todas formas tuve que cambiar algunas cosas del código que me mandaste para que se ejecutase bien, pero gracias a él puede hacerlo. Muchas gracias.
  6. Gracias por responder, pero me sigue saliendo el mismo error. Si por ejemplo tengo una hoja llamada Hola, y al crear otra empresa le pongo el nombre de Hola me ejecuta bien el código, pero si por una segunda vez introduzco el nombre Hola me salta error en el código. Es decir, si el usuario se equivoca y repite una vez el nombre de una hoja ya creada todo bien, pero si escribe dos veces por error el nombre de una hoja repetida salta error. He probado con muchos códigos y de forma diferente, pero no consigo solucionarlo.
  7. No pasa nada. Ya logre solucionar todo con unas ideas que tuve. Duda resuelta.
  8. He logrado solucionar lo de que copie en otra hoja. Ya me copia todo correcto, pero tengo un nuevo problema y con este si que no he logrado solucionarlo: Sub GenerarNuevaEmpresa() ' ' GenerarNuevaEmpresa Macro ' Esta macro genera una nueva empresa a partir de la hoja BaseEmpresa. ' ' Acceso directo: CTRL+e ' nom = InputBox("Introduzca el nombre de la Hoja nueva", "Nombre de Hoja") For s = 1 To Sheets.Count Do While Sheets(s).Name = nom Or Sheets(s).Name = "" nom = InputBox("Ese nombre ya existe. Introduzca el nombre de la Hoja nueva", "Nombre de Hoja") Loop Next 'cierre del for Sheets("NuevaEmpresa").Copy After:=Sheets(5) ActiveSheet.Name = nom End Sub Cuando creo una empresa quiero que su nombre no esté repetido. Por eso le pido al usuario que el nombre introducido no se repita con el de ninguna otra hoja del libro, pero me surge el problema de que si deja espacio en blanco la sentencia del while no le afecta. Del mismo modo me pasa con el que si elige un nombre repetido. Por ejemplo si tengo una hoja llamada A y otra llamada B y el usuario al introducir el nombre de la nueva hoja la llama A le sale error porque está repetida, pero si luego introduce el nombre de otra hoja existente ahí el while no salta. ¿Qué puede ser?
  9. Me surge un error y una duda. Yo tengo una macro que copia una hoja base y a partir de esa hoja pues genera otras iguales. Entonces puse tu código en esa macro para que al generar una nueva hoja me salte de forma automática lo de poner su nombre: Sub GenerarNuevaEmpresa() ' ' Acceso directo: CTRL+e ' Sheets("NuevaEmpresa").Select Sheets("NuevaEmpresa").Copy After:=Sheets(5) nom = InputBox("Introduzca el nombre de la Hoja nueva", "Nombre de Hoja") ActiveSheet.Copy ActiveSheet.Name = nom End Sub El error es que cuando le pongo el nombre, efectivamente me copia la hoja, pero me la ubica en un libro aparte y yo quiero que se ubique en el mismo libro que tengo yo. A parte de esto, gracias por la ayuda, me ha servido.
  10. Buenas tardes. Tengo una macro que crea hojas copiando una ya existente, y yo quiero que cuando se creen estas nuevas hojas le salga un cuadro o algo al usuario para que escriba el nombre que quiere. Ejemplo: Tengo: HojaBase, HojaGeneradora En la HojaBase está la macro que crea nuevas hojas copiando HojaGeneradora y los nombres de estas nuevas hojas por defecto son asi: HojaGeneradora (2), HojaGeneradora (3), etc. Entonces yo quiero que cuando se cliquee en la macro para crear una nueva hoja, en lugar de que excel la renombre como HojaGeneradora (número), se le pida al usuario el nombre que quiera que tenga. ¿Es eso posible? Gracias.
  11. He pensado en poner esto, pero se me cuelga el programa, y no sé qué estoy haciendo mal. For s = 5 To Sheets.Count Do Until Sheets(s).Name <> "Gasto conjunto de empresas" If Sheets(s).Name <> "Menú principal" Then Hoja2.Range("U" & fil) = Sheets(s).Name fil = fil + 1 End If Loop Next
  12. Gracias por tu respuesta. Me ha parecido muy ingeniosa. Sin embargo, quería saber si existe la posibilidad de que en el for no me llegue a la última hoja. En el código tuyo propuesto pones que el for vaya desde la hoja s=1 y que cuente el número de hojas y llegue hasta esa. En mi excel tengo estas hojas: Menú principal, Empresas, NuevaEmpresa, Empresa1, [Aquí se generan nuevas empresas], Empresa2, Gasto conjunto de empresas, Ventas, NuevaVenta, Tienda, [Aquí se generan nuevas ventas], Venta1, Venta2, Gasto conjunto de ventas. Entonces utilizando ese código, observo que con el for puedo crear una lista que comience en s=4 (Empresa1) y quiero que llegue hasta la última empresa creada, y ese número va variando según añada empresas. Si solo tengo Empresa1 y Empresa 2 entonces llegará hasta la posición s=5, pero si añado por ejemplo 5 empresas, pues entonces en mi excel tendría estas hojas: Menú principal, Empresas, NuevaEmpresa, Empresa1, Empresa2, Empresa3, Empresa4,Gasto conjunto de empresas, Ventas, NuevaVenta, Tienda, [Aquí se generan nuevas ventas], Venta1, Venta2, Gasto conjunto de ventas. y entonces yo querría que mi for fuese desde el s=4 (Empresa1) hasta s=7. ¿Hay alguna forma de poder hacer que el for llegue hasta la hoja anterior a una con nombre específico? Si pudiese decir que el for llegase hasta la hoja anterior a 'Gasto conjunto de empresas' me serviría, ya que esta hoja es la siguiente a la última empresa generada.
  13. Gracias por responder. Revisaré lo que me has propuesto para ver si me sirve 😄
  14. Hola, Héctor. No me había salido ninguna notificación como que me habían respondido, por eso opté por seguir buscando. Revisaré lo que me han comentado ahí y lo que me comentan aquí
  15. Buenas. Tengo en un excel una hoja estilo menú en la que quiero colocar una lista que me lleve a diferentes hojas. El problema es que hay hojas que aún no están creadas y no sé cómo hacerlo. Me explico: En dicho excel se introducen gastos de empresas y beneficios de diferentes ventas. Pues bien, yo tengo dos hojas fijas: Empresa1 y Empresa2 y dos ventas fijas Venta1 y Venta2, y en el menú tengo un macro que me genera o bien una nueva empresa que se sitúa en medio de las fijas, o bien una nueva venta que se sitúa en medio de las fijas. De forma visual, las hojas de mi excel quedan así:Menú principal, Empresas, NuevaEmpresa, Empresa1, [Aquí se generan nuevas empresas], Empresa2, Gasto conjunto de empresas, Ventas, NuevaVenta, Tienda, [Aquí se generan nuevas ventas], Venta1, Venta2, Gasto conjunto de ventas. Tengo esas hojas por lo siguiente:Desde el menú puedes acceder a las otras hojas gracias a enlaces.Las hojas: Empresas y Ventas es donde quiero que se muestren todas las empresas y ventas que hay, respectivamente. Además, en estas hojas tengo los respectivos macros que generan ventas y empresas.Las hojas: NuevaEmpresa y NuevaVenta son las que mi macro copia, ya que siempre permanecerán sin datos.Y dicha macro va generando empresas o ventas según corresponda.La macro que genera empresas es bastante sencilla: Sub GenerarNuevaEmpresa() ' Sub GenerarNuevaEmpresa Macro ' Esta macro genera una nueva empresa a partir de la hoja NuevaEmpresa. ' ' Acceso directo: CTRL+e ' Sheets("NuevaEmpresa").Select Sheets("NuevaEmpresa").Copy After:=Sheets(5) End Sub Con ella copio la hoja NuevaEmpresa y la coloco siempre después de la hoja número 5 (La coloco siempre después de la Empresa1). La macro que genera ventas es así: Sub GenerarNuevaVenta() ' ' GenerarNuevaVenta Macro ' ' Sheets("NuevaVenta").Select Sheets("NuevaVenta").Copy After:=Sheets("Tienda") End Sub Con ella copio la hoja NuevaVenta y la coloco después de la hoja Tienda (Esta hoja nunca cambiará su nombre, por ello coloco las nuevas empresas después de esta hoja). Entonces como este excel lo voy a entregar, no es para mí, me gustaría que tenga una apariencia más ''bonita'' y para ello voy a ocultar el panel de hojas, por tanto en el menú me gustaría crear dos lista desplegables: una que me lleve a las empresas y otra a las ventas que yo quiero, y que se actualice según vaya añadiendo empresas o ventas.Ejemplo:Tengo dos empresas. Entonces la lista de empresas del menú me da las opciones: Empresa1, Empresa2.Y luego, si genero una Empresa3, entonces quiero que la lista de empresas del menú se actualice a: Empresa1, Empresa2, Empresa3. He pensado en darle un patrón al excel para que genere la lista. Se me ha ocurrido es decirle que haga una lista de Empresas que empieza en Empresa1 y que termina en la hoja anterior a Gasto de empresas, y para ventas otra lista que comienza en Tienda y que termina en la hoja anterior a Gasto conjunto de ventas, pero desconozco si es posible esto o cómo hacerlo...Gracias de antemano.
×
×
  • Create New...

Important Information

Privacy Policy