Jump to content

dogwall

Members
  • Content Count

    153
  • Joined

  • Last visited

About dogwall

  • Rank
    Advanced Member

Profile information

  • Gender Array

Converted

  • Campos Array

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hola, Prueba con esto: Sub Send_Selection_Or_ActiveSheet_with_MailEnvelope() 'Working in Excel 2002-2016 Dim Sendrng As Range Dim rangotitulos As Range Dim rangoglobal As Range On Error GoTo StopMacro With Application .ScreenUpdating = False .EnableEvents = False End With 'Rango de los títulos Set rangotitulos = Sheets("Automoviles").Range("A1:J3") 'Note: if the selection is one cell it will send the whole worksheet Set Sendrng = Selection Set rangoglobal = Union(rangotitulos, Sendrng) 'Create the mail and send it With rangoglobal ActiveWorkbook.EnvelopeVisible = True With .Parent.MailEnvelope ' Set the optional introduction field thats adds ' some header text to the email body. .Introduction = "Estimados" + vbNewLine + "A continuación remitimos el listado de propuestas a ser entregadas para su emisión" + vbNewLine + "Quedamos atentos ante cualquier duda o consulta" With .Item .To = "vfretes@yacyreta.com.py" .CC = "" .BCC = "" .Subject = "Remisión de Propuestas " & Range("B3") '.Send End With End With End With StopMacro: With Application .ScreenUpdating = True .EnableEvents = True End With ActiveWorkbook.EnvelopeVisible = False End Sub Debes tener en cuenta que si no seleccionas bien el rango con los datos saldrán cosas raras. He puesto '.Send para que veas como se genera el mensaje de correo antes de enviarlo. Quita la coma si quieres que se envíe directamente.
  2. Me puede servir. Gracias por el aporte, puede cerrarse el hilo.
  3. Buenas tardes a todos, hacía tiempo que no pasaba por aquí y espero que todos sigan bien Voy al grano: tengo tres columnas con datos (usuario, tiempo,clave) en un número indeterminado de filas. Necesito recorrer cada una de esas filas y añadirla a un array pero, tengo que comprobar si el usuario ya se ha añadido al array y si lo está tengo que comparar sus tiempos. Si el tiempo que estoy evaluando es mayor que el que existe en el array tengo que actualizar la fila completa eliminando la anterior y añadiendo la fila que estoy evaluando. Adjunto un fichero con un pequeño ejemplo inicial y otro de cómo me gustaría que quedara. A ver si alguien tiene alguna idea de como hacerlo porque yo me quedo rellenando el array de datos y ya no sé cómo seguir. Libro1.zip
  4. Muy buenas tardes, Tengo un formulario con un listbox que toma datos de una hoja. Según selecciono un elemento u otro en el listbox los valores de un grupo de checkboxes (guardados también en la misma hoja) muestran su valor (true/false). Necesito alguna ayuda para lo siguiente: Quiero que antes de cambiar de un elemento a otro en el listbox se compruebe si alguno de los checkbox ha cambiado su valor. Esa comprobación es sencilla, lo que no logro dominar es que una vez he comprobado que si se ha cambiado el valor de algún checkbox no pueda pasarse a otro item del listbox... No logro hacerlo. Antes de pasar a otro item hay que ejecutar otro paso pero no logro dar con la clave para que no cambie de item sin antes yo controlarlo. No he podido subir un ejemplo porque lo tengo en el trabajo. Si es necesario el próximo lunes saco un rato y subo un ejemplo. Gracias.
  5. Acabo de probar lo que comentáis y funciona perfecto. Muchas gracias a ambos @Antoni; @Riddle Tema solucionado.
  6. Gracias a los dos. Mañana pruebo y comento el resultado. Gracias
  7. Buenos días, Llevo unos días intentando resolver un problema y no doy con la solución. Tengo un libro excel conectado a una base de datos access en el que necesito cargar datos diariamente. Los datos que cargo van asociados a una fecha dentro del propio fichero y necesito comprobar que la fecha incluida en el fichero no existe ya en la base de datos para no duplicar registros. Obtengo la fecha del fichero (FechaArchivo = Cells(1, 3).Value) y mi idea es ejecutar una orden SQL para comprobar si esa fecha existe en la tabla: strSQL = "SELECT * FROM vtas_cajas WHERE (((vtas_cajas.FECHA)= " & FechaArchivo & "))" Pero no consigo nada útil... Y no sé qué más intentar para comprobar si existe o no esa fecha en la tabla utilizando ADO. Lo estaba intentando con Recordset.GetString pero luego he visto que únicamente sirve para comprobar si hay o no conexión. ¿Alguna idea sobre cómo hacerlo? Gracias.
  8. Buenos días, Trabajo con un libro compartido con macros al que he tenido que conectar una lista de datos externa (lista Sharepoint). La conexión la tengo configurada para que se actualicen los datos cada vez que se abra el fichero pero no funciona. Si el libro deja de estar compartido la conexión se actualiza sin problemas pero al estar compartido no funciona. Cómo alternativa se me había ocurrido esto: Sub Actualiza_Datos_Promos() Application.DisplayAlerts = False If ActiveWorkbook.MultiUserEditing Then ActiveWorkbook.ExclusiveAccess End If 'Actualizo los datos ActiveWorkbook.Connections("Conexión").Refresh Application.Wait (Now + TimeValue("00:00:05")) ‘Aquí incluso he dejado unos segundos por si la conexión tarda en actualizarse, pero la lista son pocos registros y no debería. Application.DisplayAlerts = True 'Lanzo la rutina principal Call Carga_Fichero Application.DisplayAlerts = False If Not ActiveWorkbook.MultiUserEditing Then ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, _ accessMode:=xlShared End If Application.DisplayAlerts = True MsgBox "Proceso Finalizado" End Sub El caso es que sigue sin funcionar... Tengo que volver a dejar el libro sin compartir y actualizar la conexión a mano para que se actualicen los datos... ¿Alguna idea de lo que pasa? ¿Puede solucionarse? Gracias.
  9. Ambas soluciones me parecen muy acertadas. Podemos dar por resuelto el tema. Muchas gracias a los dos.
  10. Ahora dándole otra vuelta se me ocurre abrir todos los ficheros seleccionados y buscar cual de ellos contiene la palabra MAESTRO y procesarlo primero. Pero no se si es la mejor solución...
  11. Buenos días, A ver si podéis darme algo de luz porque no consigo salir de aquí... Necesito leer una serie de ficheros (seleccionados por el usuario) para luego cargar datos de esos ficheros en una hoja. El problema que se me presenta es que necesito imperiosamente que, de todos los ficheros seleccionados por el usuario, se procese siempre primero uno en concreto. Yo vengo utilizando este código para seleccionar ficheros: Sub SelecionFichero() Dim fd As Office.FileDialog Dim wk_tmp As Workbook Dim solonombre as string Dim nombrefichero As Variant Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = True .Title = "Seleccionar Maestro Ubicados GSA RF" .Filters.Add "Excel", "*.xlsx" '.Filters.Add "All", "*.*" If .Show = True Then For Each nombrefichero In .SelectedItems solonombre = GetFilenameFromPath(nombrefichero) If Contains(UCase(solonombre), "MAESTRO") Then 'Rutina para fichero MAESTRO ElseIf Contains(UCase(solonombre), "REPOSIC") Then 'Rutina para fichero REPOS End If Next Set fd = Nothing End Sub Pero claro, así voy leyendo los ficheros sin ningún orden y necesito que primero se procese el fichero que contiene la palabra "maestro". ¿Alguna idea? Muchísimas gracias.
  12. @Macro Antonio está perfecto. Puede cerrarse el tema. Muchas gracias.
  13. Gracias Macro Antonio. Mañana le daré un buen vistazo, pero a simple vista está perfecto. Un saludo.
  14. Buenas tardes, Tengo dos hojas en las que el único elemento en común es la fecha. Necesito, desde la hoja ORIGEN copiar el valor total (fila TOTALES) de esa fecha (indicada en PICOS) en la hoja DESTINO (Fila 30 - PICADAS PROMOCIONES). El proceso hay que repetirlo para cada una de las fechas con datos en ORIGEN. En el fichero adjunto va también la hoja RESULTADO en la que indico lo voy buscando. En la hoja ORIGEN marco en rojo los valores necesarios. Muchas gracias. Copia_Datos.xlsx
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5