Jump to content

cottavi

Members
  • Content Count

    66
  • Joined

  • Last visited

About cottavi

  • Rank
    Advanced Member

Contact Methods

  • Yahoo Array

Profile information

  • Gender Array
  • Localización: Array

Converted

  • Campos Array

Recent Profile Visitors

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

  1. Excelente Bigpetroman, justo lo que buscaba! Muchisimas gracias a ti y al foro. Saludos.
  2. Gracias Haplox! Disculpa lo tarde de mi respuesta. Saludos.
  3. Saludos al foro. Mi problema en esta oportunidad es la codificación de documentos. Cada vez que trabajamos en un proyecto desde diferentes ciudades cometemos el error de emitir documentos con codificación errada y números repetidos, lo cual nos ha llevado a cometer errores de diferentes tipos ya que todo se vacía en la misma base de datos. Se me ocurre organizar todo en una sola tabla que me permita: 1.- Colocar el Código del cliente 2.- Identificar el lugar de procedencia del documento 3.- Identificar la Disciplina que emite el documento 4.- Identifique el Tipo de Documento 5.- Busque el Ultimo Producto Codificado 6.- Asigne el Número Correlativo al documento y 7.- Guarde estos valores en una tabla en la hoja 2 del archivo anexo Hasta ahora he cubierto los puntos 1 al 4 y el punto 6. En la columna E del archivo anexo pretendo buscar el ultimo documento existente con la codificación (por ejemplo) YPFBL-001-PSCZ-M-PG-202, para que en la columna F me asigne el número correlativo del nuevo documento (203), en este momento colocaré los nombres del documento (corto y largo) y pulsaré el botón Aprobar Código, con lo cual el código del documento y sus nombres (corto y largo) se guardarán en la ultima fila de la tabla que está en la hoja 2. He intentado varias maneras de hacerlo, la ultima vez intentando con la función buscarv, sin éxito. Espero haber descrito con claridad mi problema y esperando su pronta ayuda. Saludos. PD Después de esto, me dedicare a hacer consultas en la tabla de la página 2, pero ese es otro problema que resolveré más adelante. Gracias. 2010-Codificacion de nuevos documentos-Rev1.xlsx
  4. Gracias Haplox. Es facil de seguir, lo unico que no veo es el calculo automatico cuando modifico la duración de la actividad. Saludos.
  5. Gracias Antoni, Es lo que necesitaba, algo sencillo y practico. Saludos.
  6. Saludos al foro. De antemano agradezco la colaboración del grupo. Estoy tratando de hacer una pequeña hoja de calculo (como si fuese un cronograma de gantt) que me sirva para llevar un control de las fechas de inicio y final de los entregables de un proyecto. Solo requiero marcar en un color característico el rango de días que va desde el inicio de un entregable hasta su fecha final con el fin de mantener cierto orden y poder comprometer una fecha de entrega de dicho producto. También me gustaría que la rutina incluyera los días feriados. Anexo encontraran un archivo donde coloque un ejemplo de los que deseo hacer. Actualmente he tratado de resolverlo con formulas en cada celda, manteniendo fijas las filas y las columnas (donde convenga) para ello he utilizado in simple if, sin exito. Agradeciendo de antemano su tiempo y la ayuda prestada. Saludos. LDP-Santa Cruz-30-08-2017-Rev1.xlsx
  7. Gracias ikanni Justo lo que buscaba. Ahora me toda a mi colocar algunos botones como: Ir al inicio Regresar al anterior Cargar imágenes ramdom en un control image Pero hace justo lo que deseaba. Por mi parte el problema esta resuelto. Gracias de nuevo.
  8. Gracias ikanni por tu aporte. Lo que se muestra en el List1 es efectivamente la ruta de cada sub carpeta y archivo, pero desafortunadamente es lo que he estado evitando porque es muy difícil de leer. Saludos.
  9. Buenos días/tardes/noches al foro. Gracias por sus comentarios y aportes. Amigo ikanni en relación a tus comentarios, deseo puntualizar lo siguiente: 1.- Mi objetivo con esta rutina es buscar archivos dentro de las sub carpetas de un directorio raíz. 2.- No soy un programador de macros, para desarrollar mis ideas dedico tiempo y esfuerzo a estudiar los foros, a seguir consejos y trozos de códigos que me ayuden a desarrollar mi idea. He allí el porqué encuentras errores. 3.- En relación a la “Declaración de variable: Private Declare Function ShellExecute….”, acepto el consejo. Quizás el problema que vez es que deseo abrir “cualquier” archivo. 4.- En relación a tu segundo comentario en “Private Sub ComboBox1_Click()” donde preguntas que hace el código, pues ese es el objetivo de mi pregunta: que hacer en este caso? Más adelante explicare lo que deseo de una manera coloquial. 5.- En cuanto al tipo de extensión del archivo, deseo abrir cualquier extensión (doc, xls, dwg, ppt, txt, avi, mp3, wav, jpeg, ….), siempre y cuando el programa al que se refiere la extensión esté instalado en el ordenador, de lo contrario está claro que no se podrá abrir. 6.- Gracias por el procedimiento para abrir hojas de cálculo. A continuación, explico de forma coloquial lo que deseo hacer en el punto 4, en el evento click del combobox1, el cual pretendo resolver con un simple "if": Hasta este momento, tengo una ruta inicial (C:\Users\Usuario\Downloads\CalVarVB6N-foro) a la cual le he “pegado” un ítem seleccionado en el combobox1, aquí se presentan dos casos: a.- La selección es una sub carpeta, por ejemplo: C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad b.- La selección es un archivo, por ejemplo: C:\Users\Usuario\Downloads\CalVarVB6N-foro\dibujo.dwg Ahora bien, para saber si lo que he seleccionado es una sub carpeta o un archivo, mi idea es identificar el carácter “.” Pues el solamente aparece cuando selecciono un archivo (por ejemplo dibujo.dwg) Esta es la esencia de mi pregunta al foro: como identificar el carácter "." en una cadena de texto? Si el resultado es que hay un “.”, significa que tengo un archivo y ejecuto Sub abrir(archivo As String), Si no hay “.”, significa que tengo una nueva dirección donde buscar (C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad), lleno el combobox1 con el contenido de esta nueva dirección y repito el proceso hasta encontrar el archivo que me interesa. Espero haber aclarado las dudas al respecto. A la espera de sus oportunos comentarios y agradeciendo los realizados por ikanni Saludos.
  10. Saludos al foro. Antes que nada, deseo dar las gracias a Elsa Matilde de quien me tomado mucho del código que verán a continuación. Mi problema se refiere a como diferenciar en una cadena de texto, si esta contiene el nombre de un archivo o es simplemente la ruta de un directorio. Para ello, en el evento Click del ComboBox 1 del archivo anexo, se me ocurre utilizar alguna función para detectar el carácter "." contenido dentro de una cadena de texto asignado a una variable. Aquí se presentan dos opciones: OPCIÓN 1 Si el carácter "." no existe dentro de la variable, indica que tenemos la ruta de un directorio, por ejemplo: C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad\ En este caso, regresamos al UserForm1, cargamos el ComboBox1 desde esta ultima ruta. OPCIÓN 2 Si el carácter "." existe dentro de la variable (por ejemplo: C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad\AplicacionesCad\Lisp\ACAD.LSP), entonces estamos frente al nombre de un archivo y llamamos directamente a la sub rutina que lo abre. Como verán en el códigoo anexo, solo tengo: un UserForm1, un Botón para salir y un ComboBox1 donde realizo la selección de archivos o carpetas. Agradeciendo de antemano su apoyo, a continuación el código: 'declaración de variables Public strArchivos As String Public strNombreCarpeta As String Public ruta As String Public archivo As String 'rutina aunto_open Sub AUTO_OPEN() Load UserForm1 UserForm1.Show End Sub Sub abrir(archivo As String) 'con esta sub rutina se abre cualquier sub directorio o archivo seleccionado 'sin importar su extensión. 'esta rutina me ha dado excelentes resultados porque no requiero saber la dirección del 'ejecutable de cada aplicación en cada ordenador donde este trabajando. 'esta rutina no es de mi autoría, vino como valor añadido en un código que bajé alguna vez. ShellExecute Application.hwnd, "Open", archivo, _ vbNullString, _ vbNullString, _ SW_SHOWNORMAL End Sub Private Sub ComboBox1_Click() 'aqui añadimos la variable strNombreCarpeta lo seleccionado en el ComboBox1 strNombreCarpeta = ruta & ComboBox1.Text archivo = ComboBox1.Text'para diferenciar si dentro de la variable strNombreCarpeta 'hay un archivo o una carpeta, se me ha ocurrido utilizar alguna función 'para detectar el carácter ".", se se presentan dos opciones: 'OPCION 1 'si el carácter "." no existe dentro de strNombreCarpeta, indica que 'que tenemos en strNombreCarpeta la ruta de un directorio, por ejemplo: 'C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad\ 'en este caso, regresamos al UserForm1 y se inicia de nuevo el proceso desde 'la ruta C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad\ 'Por favor, ayúdenme con este código u otro que sea más conveniente. 'OPCION 2 'si el carácter "." existe dentro de strNombreCarpeta, por ejemplo: 'C:\Users\Usuario\Downloads\CalVarVB6N-foro\Aca-Autocad\AplicacionesCad\Lisp\ACAD.LSP 'se llama directamente a la sub rutina abrir. Call abrir(archivo) End Sub Private Sub CommandButton1_Click() Unload Me End Sub Private Sub UserForm_Activate() 'por Elsamatilde en: 'http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/onu9ao4jz3afw/combobox-con-listado-de-carpetas 'carpeta donde se hará la búsqueda inicial strNombreCarpeta = "C:\Users\Usuario\Downloads\CalVarVB6N-foro\" 'guardamos la ruta inicial para luego pegarle el directorio (o el nombre del archivo) 'seleccionado en el combobox1 ruta = strNombreCarpeta 'limpiamos el combobox1 ComboBox1.Clear 'pasamos al directorio elegido On Error Resume Next ChDir strNombreCarpeta On Error GoTo 0 'recorremos la carpeta buscando sub carpetas y archivos strArchivos = Dir(strNombreCarpeta, 16) 'recorremos los archivos de la carpeta Do While strArchivos <> "" ComboBox1.AddItem strArchivos 'obtenemos la siguiente entrada strArchivos = Dir() Loop Exit Sub End Sub sincarpeta: MsgBox "La carpeta seleccionada está vacia" & strNombreCarpeta, , "ERROR" Unload Me End Sub
  11. Gracias ikkani por tu sugerencia. Te recomiendo utilizar mi sub rutina pues te permite abrir cualquier archivo en cualquier ordenador, sin importar la ruta donde este el .exe. Deseo aclarar que esta sub rutina no es de mi autoría, estaba como parte de un archivo que baje de la red. Saludos.
  12. ComboBox que lista las sub carpetas (y archivos) de un directorio, seleccionar un item Buenos días/tardes/noches al foro. Espero que disfruten de esta semana santa y espero también que descansen. Mi problema es el siguiente: Deseo ejecutar una macro en excel para aplicaciones para vaciar el contenido de un directorio en un combobox, en dicho combobox se listaran las carpetas y los archivos que existan en ese directorio. Si al seleccionar un item en el combobox, este es una sub carpeta, esta se abrirá mostrando su contenido (como al inicio), pero si es un archivo abrirá el archivo sin importar su extensión. Para abrir el archivo he creado una rutina llamada "abrir". Me he apoyado en una respuesta de la Sra Elsa Matilde del 13 de enero de 2012 y la he adaptado a mi propósito pero tengo problemas al cargar de nuevo el combobox con la nueva ruta. ¿Podrían ayudarme al respecto? Anexo encontraran el link de Elsa Matilde de enero de 2012: ComboBox con listado de carpetas A continuación encontraran el código completo que estoy utilizando y las notas que voy dejando. Como verán en el código solo tengo un UserForm, un ComboBox y un botón para salir. Este es el código: Public strArchivos As String Public strNombreCarpeta As String Public ruta As String Public archivo As String Sub AUTO_OPEN() Load UserForm1 UserForm1.Show End Sub Sub abrir(archivo As String) 'con esta sub rutina se abren los archivos seleccionados sin importar su extensión ShellExecute Application.Hwnd, "Open", archivo, _ vbNullString, _ vbNullString, _ SW_SHOWNORMAL End Sub Private Sub ComboBox1_Click() 'aqui añadimos la variable strNombreCarpeta lo seleccionado en el ComboBox1 strNombreCarpeta = ruta & ComboBox1.Text archivo = strNombreCarpeta 'si lo seleccionado en el combobox1 es un texto, vuelve a cargar el combobox1 'con el contenido de la nueva ruta 'de lo contrario, llama a la rutina "abrir" para abrir el archivo sin importar su extensión End Sub Private Sub CommandButton1_Click() Unload Me End Sub Private Sub UserForm_Activate() 'por Elsamatilde en: 'http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/onu9ao4jz3afw/combobox-con-listado-de-carpetas 'carpeta donde se hará la búsqueda - AJUSTAR strNombreCarpeta = "C:\Users\Usuario\Downloads\Ppto\" 'guardamos la ruta inicial para luego pegarle el directorio (o el nombre del archivo) 'seleccionado en el comobobox1 ruta = strNombreCarpeta 'limpiamos el combobox1 ComboBox1.Clear 'pasamos al directorio elegido On Error GoTo sincarpeta ChDir strNombreCarpeta On Error GoTo 0 'recorremos la carpeta buscando archivos de esta extensión - AJUSTAR EXTENSIÓN strArchivos = Dir(strNombreCarpeta, 16) 'recorremos los archivos de la carpeta Do While strArchivos <> "" 'mostramos el nombre de cada elemento encontrado si no tiene puntos 'con esta instrucción solo se ven los directorios (carpetas) 'If InStr(strArchivos, ".") = 0 Then ComboBox1.AddItem strArchivos 'con esta instrucción vemos todo (archivos y carpetas, incluye archivos . Y ..) ComboBox1. AddItem strArchivos 'obtenemos la siguiente entrada strArchivos = Dir() Loop Exit Sub sincarpeta: MsgBox "La carpeta seleccionada está vacia" & strNombreCarpeta, , "ERROR" Unload Me End Sub ComboBox con listado de carpetas-rev3.rar
  13. Saludos al foro. Amigo Callao2908, felicitaciones por tu aporte, se acerca mucho al objetivo inicial de esta consulta. Me gustaría saber si en el ComboBox dr1 del UserForm1, puedo ver, además de los archivos, las carpetas contenidas en un directorio, seguramente es una instrucción adicional que desconozco. Adicionalmente, es posible que en el ComboBox C2, ver las carpetas y solo las carpetas contenidas en un directorio? Por ejemplo, si en tu desktop tienes varias carpetas, como haces para mostrarlas solo a ellas? Al igual que el caso anterior, seguramente es una instrucción que desconozco. Saludos y gracias por tu ayuda.
  14. Saludos al foro. Soy bastante torpe en el área de las macros (aunque con buenas ideas), en parte por no tener tiempo para dedicarme de lleno a ello como desearía, por ello me he dedicado a “armar” programas con partes de otros que me ayuden a resolver mis problemas y a desarrollar mis ideas, en este caso, un “Gestor de Conocimientos”. Imagino que alguno de los integrantes del foro habrá pasado por esto. Tenemos mucha información valiosa y vital en nuestros ordenadores, dispersa y difícil de localizar. Estoy tratando de organizar mi base de datos de trabajo una manera coherente y fácil, para ello he definido dos pasos: Paso 1. Organizar toda la información en una carpeta contenedora (en el ejemplo, Calvar) y tres niveles de organización, como se muestra: Nivel 0 Nivel 1 Nivel 2 Nivel 3 . . Archivo 1 . Aplicaciones Archivo 2 . Imágenes Archivo 3 . Normas Archivo 4 . Videos Archivo 5 . Planos Archivo 6 . Auto cad Bloques Archivo 7 Ávila Ambiente . . Calvar Civil 3D . . Hatillo Alto Calidad . . Caracas Cómputos . . . Referencias . . . . . Paso 2. Aquí es donde necesito la ayuda del foro. La idea es tener en un archivo Excel (habilitado para macros) que dispare un User Form o pantalla inicial (User form 1, como se muestra abajo) donde, al pinchar sobre una lista desplegable, se muestren todos los elementos (carpetas) del Nivel 1 indicado arriba. Carpeta contenedora User form 1 User form 2 User form 3 Lista desplegable 1 Lista desplegable 2 Lista desplegable 3 . Auto cad Aplicaciones Archivo 1 . Ambiente Imágenes Archivo 2 . Civil 3D Normas Archivo 3 . Calidad Videos Archivo 4 . Cómputos Planos Archivo 5 . Referencias Bloques Archivo 6 . . Archivo 7 Ávila . . Calvar . . Hatillo Alto . . Caracas . . . . . . . . Al seleccionar alguno de los elementos (carpetas) del Nivel 1, se despliegan las sub carpetas contenidas en el Nivel 2. El proceso se repite ahora con el Nivel 2 y así hasta el nivel 3, donde realmente se encuentran los archivos a consultar, que al seleccionarlos de la lista desplegable, se abren en el programa predeterminado para tan fin (xls, doc, pdf, ppt, wap, avi, mp4, dwg, …) Escrito de otra manera, estoy definiendo mediante clicks, la ruta a seguir a través de las listas desplegables para abrir un documento, por ejemplo c:/Calvar/Auto cad/Planos/Archivo 1.dwg Beneficios: Hasta ahora veo los siguientes: 1.- Se mantiene organizada la información en una sola carpeta contenedora (en este ejemplo: CalVar). 2.- La cantidad de carpetas en los diferentes niveles (1, 2 y 3) es ilimitada pero organizada. 3.- El archivo Excel que contiene el User form es muy pequeño en tamaño, solo contendrá el User form, las listas desplegables y el código que indica la ruta del archivo a abrir (por ejemplo c:/Calvar/Auto cad/Planos/Archivo 1.dwg) Porque utilizar Excel y no otra aplicación como por ejemplo, archivos auto ejecutables VBA? Porque no todas las empresas poseen esta aplicación instalada pero si, en todas ellas existe ambiente Windows donde esta hoja de cálculo puede correr sin problemas. Porque estos archivos pueden ser considerados peligrosos y bloqueados por el sistema o el administrador. Pueden ser bloqueados por el anti virus de la empresa. La pregunta es: Habrá algún integrante del foro que haya caminado sobre esta idea y que me pueda facilitar un archivo que me arroje luces sobre como desarrollar mi idea? Espero que me puedan ayudar. Si requieren de mayores detalles, no duden en escribir. Gracias de antemano.
  15. Excelente! Gracias Gerson. Veo que me falta muchísimo por aprender. Por mi parte, podemos dar por cerrado el tema. Saludos.
×
×
  • Create New...

Important Information

Privacy Policy

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