Saltar al contenido

Eliminar solo unas imágenes otras no, con macro


Invitado Juan Pelfort

Recommended Posts

Invitado Juan Pelfort

Hola, no tengo el programa todavía pero al empezarlo, necesito saber como borrar imágenes de una Hoja, pero no todas,

eso sí, están en la misma línea, pero solo eliminar imágenes, no el contenido de las líneas, puede ser ?

Porque al grabar una macro y eliminarlas, luego al ejecutar la macro no se eliminan ?

Gracias por atenderme

Enlace a comentario
Compartir con otras webs

Hola 

No queda muy claro tu problema, quizá si lo explicas con más detalles y/o compartes esa macro que has grabado se pueda entender mejor. Solo no olvides algo: Las imágenes en realidad no se insertan en las celdas como mucha gente cree sino que están en lo que Microsoft llama "Capa de dibujo", por lo que ubicar una de ellas por su posición encima de una celda, pues no es tan fácil como suena. Ah, eso sí, las imágenes también tienen nombres que sí pueden ser ubicados a través de VBA, es decir, si sabes sus nombres pues solo eliminas  esas.

Enlace a comentario
Compartir con otras webs

Esta macro elimina las imágenes que empiezan en una determinada fila.

Sub ElimnarFotosFila()
fila = 7 '<--- Fila en la que se eliminarán las imágenes
For Each imagen In ActiveSheet.Pictures
   If imagen.TopLeftCell.Row = fila Then imagen.Delete
Next
ActiveCell.Select
End Sub

 

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Hola Antoni, gracias, ahora me estaba preparando una Hoja para lo que he comentado y de paso alguna pregunta más,

tomo nota de lo que me dices, y subiré una Hoja con lo que me gustaría, <<creo que no se puede hacer pero...>>

Gracias

Enlace a comentario
Compartir con otras webs

Hola Juan

Quiero comenzar mencionando que Excel no es el programa ideal para lo que estás intentando hacer, entiendo que a muchos se les hace más fácil manejar dicho programa, pero no debemos olvidar que Excel es una Hoja de Cálculo. Dicho eso, y ya sobre tu dilema y archivo, quiero comentarte que al no haber macros y/o algún otro tipo de avance, más que una ayuda necesitas alguien que se dé tiempo de programar varias cosas y por lo menos en mi caso eso va más allá de los pocos minutos (libres) que yo con mucho gusto doy aquí y en otros foros. Espero me entiendas y a ver si Antoni quizá tiene un poco más de tiempo. Saludos.

 

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Hola Abraham, claro que lo entiendo, es que mira, yo lo que me gusta es aprender Excel y vi en esto un reto, igual que he hecho juegos

(con vuestra ayuda) y demás soluciones de VBA, y os agradezco inmensamente toda la ayuda que me aportáis, 

sois Excel-lentes

Gracias

Enlace a comentario
Compartir con otras webs

Es importante la programación, pero es mucho más importante el análisis y el diseño.

En el adjunto, verás que está planteada tu idea pero de otra forma.

Las imágenes de los platos son fijas, tienes hasta 40 platos distintos.

Debes asegurarte que si añades imágenes, o autoformas para que pese menos el archivo, deben tener un nombre único, no importa cual, pero no debe repetirse.

También es muy importante que la imagen esté contenida dentro del rango remarcado y ajustada a la primera celda.

A todas las imágenes se les debe asignar la macro Platos.

Puedes llevar hasta 10 mesas en tiempo real, incluso podrías utilizar la comanda para pasarla directamente a cocina y al bar.

Por supuesto, se trata de un ejercicio, no de un proyecto funcional, por lo que debe valorarse desde ese punto de vista, ya que sufre de multitud de carencias.

También lleva el registro de cobro que podría utilizarse de caja diaria y como base de datos estadística.

Verás que el código VBA utilizado es mínimo comparado con lo que en principio cabría suponer.

Ya comentarás que te parece.

 

 

 

 

Pantalla de restaurant.xlsm

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Hola Antoni, EEEHHHHHHH!!!!      no se que decir, esto funciona de maravilla, me funciona muy muy bien, 

Pero no entiendo eso de "si añado imágenes deben tener el mismo nombre, pero no deben repetirse"

no puedo cambiar el nombre a las imágenes, si tengo por ejemplo:  imágen2 y añado imágen 3 al intentar cambiar el nombre

(supongo que es en el cuadro a la izquierda de la barra de fórmulas) a la 3 le digo imágen2, se selecciona imágen2 pero la 3 no cambia, 

bueno lo he hecho con nombres distintos de momento, 

Luego me tengo que preparar para consultar sobre la Hoja "Registro" para realizar totales y estadística, pero me lo tengo que trabajar aún.

Ya te diré. Ha! lo del GOLF  muy guay

Muchas gracias Antoni.

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Sigo: en la Hoja "Registro" que hace AC3 en D3 ?

Porqué pasar datos a AA3 y columnas siguientes ?

Como hago en "Registro" para poner fecha o columna A en el centro ? (no lo veo)

Como puedo sumar totales, de columna C, (como se añaden filas se me va mi fórmula)

Como hago para contar estadística mente cantidad de platos iguales (para poder comparar) ?

Como puedo poner estos totales, resumen en otra Hoja? sería de "mes" y al borrar datos del día no se me borren ?

Donde puedo poner en Hoja "Registro" un o dos botones (macros) para ir a otras Hojas sin que se me vaya de la pantalla ?

Antoni, GRACIAS 

Enlace a comentario
Compartir con otras webs

Cita

Pero no entiendo eso de "si añado imágenes deben tener el mismo nombre, pero no deben repetirse"

Vamos por partes, cuando hablo de "nombre único" de las imágenes me refiero a que ese nombre no debe estar repetido, no que todas tengan el mismo nombre, el número de tu DNI es "único", es decir, solo hay uno.

Para cambiar el nombre a un objeto se hace, como tu bien dices, en el cuadro de texto a la izquierda de la barra de fórmulas, pero debes dar ENTER después de cambiar el nombre, de lo contrario lo deja como estaba.

Cita

Sigo: en la Hoja "Registro" que hace AC3 en D3 ?

Porqué pasar datos a AA3 y columnas siguientes ?

En D3 guardamos la dirección del rango correspondiente a la "mesa activa" para ir actualizando los datos de esa mesa si cambiamos de una a otra y así no perder la información.

 

Cita

Como hago en "Registro" para poner fecha o columna A en el centro ? (no lo veo)

No entiendo la pregunta.

Cita

Como puedo sumar totales, de columna C, (como se añaden filas se me va mi fórmula)

¿De que filas hablas? cuando dices "se añaden filas", donde y cuando.

 

El resto de tus preguntas requieren un ejemplo de lo que pretendes hacer.

 

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Hola Antoni, 

Me refiero en la Hoja "Registro" en la columna A se graban fecha y hora pero sale en la posición derecha de la celda, aunque yo la cambie a centro de las celdas los próximos datos (fecha y hora) vuelven a salir a la derecha de la celda.

Cuando me preguntas "de que filas hablas ? se añaden filas donde y cuando ?

me refiero a que, en la Hoja "Registro" si ya se han grabado varias líneas, yo voy a una mesa, relleno el pedido, al "cobrar" va a la Hoja "Registro" pero se añade no a la última fila o primera sin datos, sino que crea una fila nueva (fila2) y las demás filas se desplazan hacia abajo, si lo vuelvo a  hacer se añade otra fila 2 y las demás se desplazan hacia abajo.

Por eso digo donde poner un botón (macro) porque las entradas en el registro me va desplazando las filas hacia abajo.

Me refería que como hago para tener los totales del día, como se desplazan hacia abajo, nuca me suma la fila2.

Al final me refería para pasar totales a una Hoja (que sería datos del mes) y a otra (que sería datos del año)

Espero me haya sabido explicar

GRACIAS ANTONI

Enlace a comentario
Compartir con otras webs

Invitado Juan Pelfort

Es un ejercicio, mi hija y yerno han montado un bar de tapas y vi esta pantalla para pedidos etc 

y les dije: esto lo hago yo, con Excel.

Si quieres te mando el archivo, pero es el que tu me hiciste y enviaste,  y me refiero a la hoja "Registro"

Gracias

Enlace a comentario
Compartir con otras webs

Adjunto la nueva versión de  Pantalla de Restaurant, en ella se ha añadido lo siguiente:

  • Ampliación a 50 platos
  • Ampliación a 23 ubicaciones
  • Cantidad y precio en el ticket
  • Estadísticas diarias, mensuales y anuales por ticket y por plato (1)

Salvo mal funcionamiento, damos por terminada esta consulta, abre una nueva para cualquier nuevo requerimiento.

(1) A ver si alguien se anima a hacerlas con tablas dinámicas. 

Pantalla de restaurant III.xlsm

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 97 ¿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

    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
    • Prueba este código. Sin el archivo no te puedo ajustar más. Private Sub btnCargaBancos_Click() 'El tipo de dato debe especificase para cada variable Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double Dim TasaActual As Double 'Hay que comprobar que los textbox tienen contenido numérico 'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir If Not IsNumeric(txtInverBanesco) Or _ Not IsNumeric(txtInverVzla) Or _ Not IsNumeric(txtTasaCompra) Or _ Not IsNumeric(txtTasaVenta) Then MsgBox "Los datos deben ser numéricos", vbCritical Exit Sub End If InvBanesco = CDbl(txtInverBanesco) InvVzla = CDbl(txtInverVzla) TasaCompra = CDbl(txtTasaCompra) TasaVenta = CDbl(txtTasaVenta) 'Los datos de los divisores no pueden ser 0 (Indeterminación matemática) If TasaCompra = 0 Or _ InvBanesco = 0 Or _ InvVzla = 0 Then MsgBox "Los datos no admiten valor cero", vbCritical Exit Sub End If MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055) TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then TasaActual = TasaDiaBan Else TasaActual = TasaDiaVzla End If 'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas, 'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) 'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) 'TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco = MontoBanesco txtBcoVenezuela = MontoVzla txtTasaDiaria = TasaActual End Sub  
  • 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.