Jump to content

roa30

Members
  • Posts

    113
  • Joined

  • Last visited

  • Country

    Argentina

Everything posted by roa30

  1. Hola Antoni! ha funcionado a la perfeccion, desconocimiento total por el application.caller que me hubiera facilitado tanto conocerlo antes... muchisimas gracias!!!
  2. Hola a todos! tengo una consulta que pareciera ser imposible... vengo investigando hace mas de un mes y no encuentro la forma de resolverlo.... Tengo una rutina que me crea una serie de shapes rectangulares como si fueran boton de un indice... la rutina recorre cada hoja, y crea en la hoja1 un shape por cada hoja que encuentre en el libro, ... logre que le ponga el nombre de cada hoja como texto al shape... pero lo que necesito agregar el action para cada shape, , ejemplo: si existe una hoja "X" creo el shape con texto "X" en la hoja 1. y el action debe ser : ir a la hoja X , si esta oculta, mostrarla. For Each Worksheet In ThisWorkbook.Worksheets Worksheet.Activate 'Dim shp As Shape Set ws = ThisWorkbook.Sheets("Sheet1") If Worksheet.Name <> "Sheet1" Then ws.Activate clTop = clTop + 40 Set shp = ws.Shapes.AddShape(msoShapeRoundedRectangle, clLeft, clTop, clWidth, clHeight) shp.Line.Visible = msoFalse shp.Name = Worksheet.Name With shp.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 255, 255) .Transparency = 0 .Solid End With shp.Shadow.Type = msoShadow21 With shp.TextFrame2.TextRange .Text = Worksheet.Name .Font.Bold = msoTrue .Font.Fill.ForeColor.RGB = RGB(0, 0, 0) .Font.Size = 11 .Font.Bold = False .Font.Name = "Calibri" End With shp.TextFrame.HorizontalAlignment = xlHAlignCenter shp.TextFrame.VerticalAlignment = xlVAlignCenter xname = "go" & Worksheet.Name ASD = "'" & Worksheet.Name & "!'A1" Action = xname shp.OnAction = Action SubAddress:="'" & wsName & "'!A1" End If Next Worksheet ese utimo paso no lo he logrado de ninguna forma, y termine cayendo una tarea manual y nada automatizada de que el action; concatene el "go" + nombre de la hoja, despues creo una a una las rutinas para ir a la hoja necesaria... Private Sub goX() xname = ActiveSheet.Name If Sheets(xname).Visible = False Then Sheets(xname).Visible = True Sheets(xname).Activate End If End SuB y por ultimo lo que NO he logrado hacer es , que en el mismo Shape "Normal View", que ejecutar: Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",True)" Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",false)" Existe alguna forma de que lo pueda automatizar al 100% y evitarme la creacion manual de cada rutina para ir a la hoja determinada? Adjunto hoja de ejemplo Agradezco desde ya su colaboracion.... en lo que pareciera mision imposible indice.zip
  3. Muchisimas gracias @Janlui, funciona perfecto y me ha reducido muchisimo el tiempo de ejecucion!😄
  4. Hola! @Janlui muchas gracias por responder, Claro la Hoja Analisis ya trae precargado esos datos unicos, partiendo de ese listado se realiza la ejecucion de la macro buscando en la hoja BaseDatos. Con la macro deberia ir completandose la hoja Analisis, por cada usuario y pedido encontrado, cada vez que encuentra uno de estos en la hoja BaseDatos, ve que Tipo es y le coloca la X en la columna correspondiente de la hoja analisis
  5. Hola ! @Antoni muchisimas gracias por tu aporte! ha mejorado muchisimo 1.75 minutos... Crees que podria optimizar algo un poquito mas? , porque esta es solo una parte del todo el proyecto, y queda igual un poco lento... si solo fuera este modulo esta perfecto asi!, pero si podria reducirlo a menos de 1 min seria genial.
  6. Hola a todos ! como estan! vengo a pedirles ayuda y apoyo estoy enloqueciendo con un codigo que dura casi 10 min en ejecutarse ... comparto archivo de ejemplo Tengo en mi archivo una hoja "BaseDatos" con mas de 30.000 filas. las cuales tiene datos de hospital, medico y pedido y tipo de pedido. Una segunda hoja "Analisis" donde extraje los unicos de (Hospital- Pedido- Usuario), con eso me quedan unas 5.000 filas... Lo que necesito que mi codigo haga es que por cada pedido que encuentre en Analisis, recorra todas las filas de Base Datos que tengan el mismo numero de pedido, y el mismo user, para evaluar que Tipo documentos tiene ese pedido , en la columa Tipo de la Hoja Base de Datos; por ejemplo HOSP1 USER PEDIDO LAB PRESC DERIVACION HS1 Fulano 45555 x si el pedido 45555 hecho por fulano tiene Laboratorio, tiene Prescripcion y tiene Derivacion , coloco una X por cada tipo que tenga ESE PEDIDO DE ESE USUARIO. el problema es que hay casos donde el pedido 45555 de Fulano, tiene mas 3000 filas, y se repite el Tipo de Documento, y no puedo modificar ninguna de las dos hojas, por lo que mi proceso evalua las 3000 filas de fulano, y ve que documento tiene cada una y va completando la hoja Analisis. Hasta ahora logre hacer lo que necesito exactamente con mi codigo PER OOOOOOO es super lento, lleva mas de 10 min y no se como optimizarlo. Me podrian ayudar por favor? llevo dias sin encontrar el error. 🙌 testeos.zip
  7. Hola Antoni, como estas? perdon recientemente he visto tu respuesta, he tenido un accidente domestico, y recien hace una semana volvi a mi hogar, tuve que permanecer en terapia todo este tiempo. Lo he probado y funciona de lujo. Te agradezco mucho la ayuda
  8. Hola Abraham, gracias por tomarte tu tiempo en leerlo.. >> ¿Te refieres a que esos encabezados de columnas pueden ser más o a otra cosa? me referia a que puede venir esas colunmas o algunas mas no se por ejemplo unas 10 o 15 extras... >> ¿Siempre estarán en la fila 1? Si los encabezados siempre estan en la fila 1 >> ¿Siempre comienzan en la columna B? Lo mostre como un ejemplo de que puede llegar a venir una columna sin nombre de encabeZado >> Si como comentas, hay alguna columna vacía entre llenas ¿Qué se supone se debe hacer y/o qué debe ocurrir con tu array? Indicar como "" o esa posicion del array, donde no haya nombre de encabezado en este caso la posicion 0 deberia tener el valor 0 o empty. >> ¿Para qué necesitas el array? Necesito almancerlo en una variable, con la que luego hago un filtro avanzado, donde me traigo de otra hoja, las dos datos que coincidan con los elementos de mi array. Lo que necesito llegar a obtender de una manera mas dinamica es esto: mis encabezados= ("encabezado1", " encabezado 2" , etc etc, )
  9. Hola a todos buenos dias, estoy tratando de encontrar una forma optima de traerme todos los nombres de una columna y convertirlos a una array, para almacenarlos en una variable... actualmente estoy copiando, pegando y trasponiendo, los datos, luego los concateno y los agrego ahi recien a la variable. esta accion es totalmente manual, hecha con la grabadora de macros, ...existe otra forma de poder hacerlo? lo que me interesa es traerme los nombres de los encabezados de las columnas y traerlos a un variable como arreglo, o array, pero lo que necesito tener en cuenta es que me vienen muchos archivos y no siempre tienen las colunmas el mismo orden, y a veces tambien puede venir alguna con el nombre vacio, pueden venir mas o menos columnas, por eso se que esta version creada con la grabadora no es util para nada, como podria hacer para recorrer todas las colunmas traerme los nombres o encabezados y convertilos a un array? les adjunto el archivo como ejemplo Libro1.xlsm
  10. Hola a todos buenos dias, estoy tratando de encontrar una forma optima de traerme todos los nombres de una columna y convertirlos a una array,  para almacenarlos en una variable...

    actualmente estoy copiando, pegando y trasponiendo, los datos, luego los concateno y los agrego ahi recien a la variable.

    esta accion es totalmente manual, hecha con la grabadora de macros, ...existe otra forma de poder hacerlo?

    lo que me interesa es traerme los nombres de los encabezados de las columnas y traerlos a un variable como arreglo, o array, pero lo que necesito tener en cuenta es que me vienen muchos archivos y no siempre tienen las colunmas el mismo orden, y a veces tambien puede venir alguna con el nombre vacio, pueden venir mas o menos columnas, por eso se que esta version creada con la grabadora no es util para nada, 

     

    como podria hacer para recorrer todas las colunmas traerme los nombres o encabezados y convertilos a un array?

     

    les adjunto el archivo como ejemplo

     

     

    Libro1.xlsx

  11. Gracias Antoni tambien por tu ayuda, funciona super y ademas lo puedo usa de referencia cuando me trabo en estos pasos! muchisimas gracias
  12. Hola Hector Miguel como estas? buen dia gracias re gracias por el aporte , no no es una union, del campo de la columna fecha con el de hora, para hacer posteriormente un analisis con la fila siguiente del lapso de tiempo transcurrido entre esa fila y la fila siguiente
  13. Hola a todos, estoy nuevamente trabada en algo que pareciera facil pero me ha estado complicando la vida absoluta... tengo el siguiente codigo, que lo que DEBERIA HACER, es por cada celda que este vacia "celda.Offset(0, 36)= empty" me ejecute = hD.Cells(ufo, 36) = celda.Offset(0, 4) + celda.Offset(0, 5). Lo unico que LOGRE es que me haga esa funcion en la ultima fila... no se como hacerlo para cada celda vacia 😭. Porque la idea es que la hoja se va a ir cargando con nuevos valores, y las celdas que estan vacias significa que aun no hice el proceso fechaJuliana...Perdonen mi igorancia total pero probe varias formulas. y la unica que me ha funcionado parcialmente es esta... me pueden iluminar en algo que no este viendo.... ' ESTE ES EL CODIGO QUE ESTOY EJECUTANDO O INTENTADO EJECUTAR-------------- Sub fechaJuliana() Dim hD As Worksheet Dim ufo As Range Dim celda As Range Set hD = Sheets("registros") ufo = hD.Range("A" & Rows.Count).End(xlUp).Row For Each celda In hD.Range("A2:A" & ufo) If celda.Offset(0, 36) = Empty Then hD.Cells(ufo, 36) = celda.Offset(0, 4) + celda.Offset(0, 5) End If Next celda End Sub
  14. ahora siiii, creo que la voy entendiendo de poco, despues de cambiar miles d eveces el orden y los paramentros.... jajaja Function getDate(cadena As String, tipo As String) As String: Dim sep As String, x As Long, tmp As String, a, m, d 'If tipo = ".jpg" Then sep = "_" Else sep = "_" ====> esto lo comente porque no se como cambiarlo por ahora 'x = 2 + (tipo <> ".jpg"): tmp = Replace(Split(cadena, sep)(x), "-", ""): d = Val(Left(tmp, 2)): m = Val(Mid(tmp, 3, 2)): a = Val("20" & Right(tmp, 2)) sep = "_" x = 2 + (tipo = ".jpg"): tmp = Replace(Split(cadena, sep)(x), "-", ""): a = Val(Left(tmp, 2)): m = Val(Mid(tmp, 3, 2)): d = Val(Right(tmp, 2)) getDate = Format(DateSerial(a, m, d), "dd-mm-yyyy"): End Function Function getByCol(cadena As String, col As Long, Optional sep As String = "_") As String getByCol = Application.Trim(Split(CStr(cadena), sep)(col - 1)): End Function no son nada faciles las UDF , pero bueno probando probando tendre que lograr algo...
  15. Hola Hector Miguel, buen dia ! me da mucha verguenza lo que voy a preguntar y disculpa de antemano mi total ignorancia con las UDF , hemos tenido hace un rato una reunion con los colaboradores para probar la herramienta, sin el formulario todavia, y bueno nos hemos encontrado, con diferentes metodos de etiquetado, uno que separaba las etiquetas por espacios sobre todo la de jpg , y otra que separaba con "_" como los videos. Contandoles todo lo que ha costado lograr que se lean los tags de video, decidimos unificar el separador para archivos de video y jpg, usaremos a partir de ahora siempre "_" el de espacios, veremos como , pero vamos a tener que buscar luego la forma de renombrar... quise no molestarte nuevamente con esa tontera y modificarlo en la udf pero no me da ! que verguenza y me siento pesima por molestarte de nuevo: mira aqui hice dos pruebas, : en blanco: las celdas sin cambiar la configuracion de la UDF con el sistema de etiquetado separando por "_" en amarrillo: las celdas cuando cambie la configuracion de la UDF aqui, que fue lo unico que me anime a tocar... pero como pueder ver en la hoja, me da mal la fecha y no se porque, y la hora no me trae directamente... en rojo : los archivos de video que si me trae bien los datos de fecha y hora unction getDate(cadena As String, tipo As String) As String: Dim sep As String, x As Long, tmp As String, a, m, d If tipo = ".jpg" Then sep = "_" Else sep = "_" ' AQUI REEMPLACE EL se= " " por sep="_" x = 2 + (tipo <> ".jpg"): tmp = Replace(Split(cadena, sep)(x), "-", ""): d = Val(Left(tmp, 2)): m = Val(Mid(tmp, 3, 2)): a = Val("20" & Right(tmp, 2)) getDate = Format(DateSerial(a, m, d), "dd-mm-yyyy"): End Function Por otro lado te comento que esto: - jpg = "a.sitio|pni; abierto; b.estacion|abierto; c.especie|desinstalando" <= punto y coma era solo un error en esa carpeta en particular pero que ya lo hemos corregido.
  16. genio total!!!! admiracion! ahora sii, lo unico que cambie segun tu sugerencia es puse directamente en c:\windows y funciona! Pero lo que mas me sorprende son las pocas lineas de codigo que haz usado para lograrlo... woww! admiro totalmente ese codigo, aunque me cueste trabajo comprenderlo porque es de otro nivel muy muy lejano y superior al mio ...voy a estudiar y leer todo lo necesario para comprenderlo y seguir aprendiendo... tienes razon, ahora que lo pienso, primero se extraen las imagenes o archivos de una sd, luego se etiquetan y se guardan en una carpeta. y no si va a ocurrir que se modifiquen los archivos... asi que quizas esto no sea necesario... Perfecto, lo voy a tener en cuenta y de hecho si hay que renombrar alguna carpeta para evitar el quiebre lo hago, no hay problema, con todo lo que ha costado esto, no es nada cambiar o renombrar una carpeta... asi que igualmente lo tendre en cuenta de aqui en adelante por supuesto! con toda la ayuda que me haz brindado no voy a molestarte con este detalle... Esta realmente increible! no se como agradecerte tanta tanta ayuda, y que hayas podido hacer algo que parecia imposible! No se como agradecerte realmente, pero estare siempre a disposicion desde lo que pueda ayudar con mi limitado conocimiento.. Ni bien termine la integracion al formulario, prometo mostrarte los resultados! Gracias , gracias y mas gracias
  17. estimado, te comento mis tropiezos... 1) al bajarlo inicialmente me daba un error de que no podia ejecutarse la aplicacion, luego vi que necesitaba instalar el complemento Add-in y posteriormete resolvi el problema de el error al iniciar.. 2) el archivo es mas rapido que la luz jajaja proceso 600 imagenes en segundos... y super bien acomodo las colunmas en el excel... PERO no me ha leido las etiquetas ni de los .avi ni de los videos mp4, me estara faltando alguna configuracion adicional? para ahorrarme nuevamente la verguenza... he chequeado que los dos archivos de video tienen etiquetas colocadas correctamente Lo estoy ejecutando desde el modulo, con el procedimiento ProcesarImagenesEnCarpeta... pero no logro entender que parte me estaria faltando o porque no me hace esa busqueda... a ti te funcionaba bien?
  18. Hola Héctor Miguel!! wowww increíble que lo hayas logrado...admiración total!!!! ya ya mismo lo pruebo y te comento!
  19. tienes toda la razon Antoni, no me habia dado cuenta de ello. Muchisimas gracias lo tendre en cuenta de ahora en mas. porque es cierto quizas en el momento funciona, pero al cambiar de hoja activa va a generar un error..
  20. 😮 que buen dato Antoni, mil gracias... por eso me parecia que estaba loca porque en otro formulario si me funcionaba el mismo codigo... pero en este no... y no entendia porque si era exactamente igual. El punto es que en el otro formulario el rango es una lista de nombres no hay formulas aplicadas alli ... igual ni me hubiera imaginado que era eso.!!!😬 tu sabes que en el otro formulario tengo tambien asi: "With Sheets("BDCapturasMuertos").Range("A2:A" & ufila) Set filaseleccionada = Range("A2:A" & ufila).Find(valor_buscado, LookAt:=xlWhole) Sin el "." antes del range y funciona igual... pero por las dudas que se rompa en algun momento lo voy a corregir ahi tambien.. Pense que excel se estaba enseñando conmigo, porque ultimamente los codigos que siempre uso, en el algun punto se me rompen y no logro detectar porque... Muchisimas gracias Antoni por iluminarme la vista!
  21. Private Sub ListadeBusqueda_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Me.ListadeBusqueda.ListIndex <> -1 Then CIdAutomatico = ListadeBusqueda.Column(0) 'A CProvincia = ListadeBusqueda.Column(1) 'D CEspecie = ListadeBusqueda.Column(2) 'N CTipodeRegistro = ListadeBusqueda.Column(3) 'K CMotivo = ListadeBusqueda.Column(4) 'L CSitio = ListadeBusqueda.Column(5) 'E valor_buscado = Me.CIdAutomatico.Value ufila = Sheets("BDCapturasMuertos").Range("A" & Rows.Count).End(xlUp).row With Sheets("BDCapturasMuertos").Range("A2:A" & ufila) Set filaseleccionada = Range("A2:A" & ufila).Find(valor_buscado, LookAt:=xlWhole) lineanueva = filaseleccionada.row CPAIS.Value = .Range("C" & linea) ' ME PAIS If ECapturasoMuertos.CPAIS = "" Then CPAIS.AddItem ("Argentina") CPAIS.AddItem ("Brasil") CPAIS.AddItem ("Paraguay") CPAIS.AddItem ("Chile") CPAIS.AddItem ("Uruguay") End If CProvincia.Value = .Range("D" & linea) ' ME PAIS If CProvincia = "" Then Set provincia = Worksheets("Variables").Range("F2:F26") For Each celda In provincia CProvincia.AddItem celda.Value Next celda End If CRuta.Value = .Range("F" & linea) Ckm.Value = .Range("G" & linea) CLatitud.Value = .Range("H" & linea) CLongitud.Value = .Range("I" & linea) Cfecharesgitro.Value = .Range("J" & linea) CDestino.Value = .Range("M" & linea) CnroIndividuos.Value = .Range("O" & linea) CMuestras.Value = .Range("P" & linea) If CMuestras = "" Then CMuestras.AddItem ("Si") CMuestras.AddItem ("No") End If CFotos.Value = .Range("Q" & linea) If CFotos = "" Then CFotos.AddItem ("Si") CFotos.AddItem ("No") End If CSexo.Value = .Range("R" & linea) If CSexo = "" Then CSexo.AddItem ("Hembra") CSexo.AddItem ("Macho") CSexo.AddItem ("Desconocido") End If CEdad.Value = .Range("S" & linea) If CEdad = "" Then CEdad.AddItem ("Cachorro") CEdad.AddItem ("Juvenil") CEdad.AddItem ("Adulto") End If If CMotivo.Value = "" Then Set causas = Worksheets("Variables").Range("n2:n7") For Each celda In causas CMotivo.AddItem celda.Value Next celda End If If CDestino.Value = "" Then CDestino.AddItem ("Liberado en el lugar con Collar") CDestino.AddItem ("Liberado en el lugar sin Collar") CDestino.AddItem ("Traslocado") CDestino.AddItem ("Llevado a cautiverio") CDestino.AddItem ("Muestras") CDestino.AddItem ("No Corresponde") End If If .CEspecie.Value = "" Then Set nombreCientifico = Worksheets("Variables").Range("c2:c214") For Each celda In nombreCientifico CEspecie.AddItem celda.Value Next celda End If If CTipodeRegistro.Value = "" Then CFotos.AddItem ("Captura") CFotos.AddItem ("Muerto") End If CcreadorRegistro.Value = .Range("T" & linea) CresponsableRegistro.Value = .Range("U" & linea) Cinstitucion.Value = .Range("V" & linea) CLinkFoto.Value = .Range("X" & linea) CLinkPlanilla.Value = .Range("Y" & linea) CObservaciones.Value = .Range("Z" & linea) If CUso.Value = "" Then CUso.AddItem ("Uso Libre") CUso.AddItem ("Uso Reservado") End If End With Else MsgBox "Debe seleccionar un registro de la lista para Editar o Modificar los datos", vbExclamation, "Ciencia Colectiva" End If application.ScreenUpdating = False End Sub Hola a todos como estan? parece que excel no me quiere ultimamente porque me esta haciendo volverme loca a cada rato. les comparto el codigo, que siempre uso para buscar en un listbox un valor , hacer dobleclick sobre un registro y editarlo. Para editarlo me traigo algunos datos del listbox y otros tengo que buscarlos en la hoja. Siempre funciono y ahora no y no entiendo por que... With Sheets("BDCapturasMuertos").Range("A2:A" & ufila) Set filaseleccionada = Range("A2:A" & ufila).Find(valor_buscado, LookAt:=xlWhole) lineanueva = filaseleccionada.row < = AQUI ME DA ERROR... El resto funciona me carga en los textbox correspondientes el valor del elementos seleccionado en el listbox pero no me trae los otros datos de la hoja... seguramente es un error muy **maravilloso**, pero ya llevo 6 horas en esa linea y no le encuentro el problema.. me pueden ayudar por favor, estoy tan mareada ya con esto que no se que hacer CC_capturasejemeplo.xlsm
  22. 🙅‍♀️jamás!, con la paciencia que me haz tenido y tiempo en que me haz estado ayudando!😟 Longitud y latitud se le agregar con un buscarv de otra planilla para después poner esos puntos en un mapa Folder= para que los colaboradores pueden chequear por el nombre si esa carpeta ya fue cargada o no, considerando que hay carpetas de dos años para atrás por lo menos... con varias sub carpetas... extensión= era mas que nada un dato color.. es decir para luego tener una estadística de cantidad de fotos, cantidad de videos, básicamente. al parecer si, estuve tratando de obtenerlo con getdetails pero no me funciono con video,.. de hecho no es muy relevante y es un dato adicional que lo había agregado solo a modo estadístico pero lo podemos dejar o quitar, no hay problema con ello... la fecha de captura lo mismo porque en realidad la fecha tengo que tomarlo si o si del nombre del archivo porque a veces se corrigen esos datos de fecha y hora porque se desconfigurado la cámara. podríamos quizás dejar el fecha para las fotos para cotejar las diferencias o no... no es significativo el dato que este si o si. Pues claro, de hecho me parece también que podría favorecer a la optimización del procesador y la memoria. porque sino tienen que ir los procedimientos y las formulas de un lado al otro. El orden no es significativo, mas que nada que si estén presentes esos datos nada mas. igual recuerda que tengo dos métodos de entrada de esa información : 1) archivo por archivo con userform (este es para cuando por ejemplo algún colaborador nos manda dos o tres fotos significativas que queremos agregar a la base de datos: este creo que es el que menos se usara, pero también van los datos obtenidos a la misma hoja, luego lo puedo volver acomodar el destino no hay ningún problema 2 ) la carga automatiza seleccionando directorios que es la forma que nos esta haciendo quemar la cabeza. C:\exiftoolverson2>Exiftool.exe -lang es -r -csv "c:\Users\54375\Desktop\Alcostado_05102022_1345_IMG_0017.mp4" SourceFile,ExifToolVersion,FileName,Directory,FileSize,ZoneIdentifier,FileModifyDate,FileAccessDate,FileCreateDate,FilePermissions,FileType,FileTypeExtension,MIMEType,MajorBrand,MinorVersion,CompatibleBrands,MediaDataSize,MediaDataOffset,MovieHeaderVersion,TimeScale,Duration,PreferredRate,PreferredVolume,PreviewTime,PreviewDuration,PosterTime,SelectionTime,SelectionDuration,CurrentTime,NextTrackID,TrackHeaderVersion,TrackCreateDate,TrackModifyDate,TrackID,TrackDuration,TrackLayer,TrackVolume,ImageWidth,ImageHeight,GraphicsMode,OpColor,CompressorID,SourceImageWidth,SourceImageHeight,XResolution,YResolution,CompressorName,BitDepth,VideoFrameRate,MatrixStructure,MediaHeaderVersion,MediaCreateDate,MediaModifyDate,MediaTimeScale,MediaDuration,MediaLanguageCode,HandlerDescription,Balance,AudioFormat,AudioChannels,AudioBitsPerSample,AudioSampleRate,HandlerType,XMPToolkit,CreateDate,ModifyDate,MetadataDate,Orientation,InstanceID,DocumentID,OriginalDocumentID,HistoryAction,HistoryInstanceID,HistoryWhen,HistorySoftwareAgent,HistoryChanged,HierarchicalSubject,Subject,DurationValue,DurationScale,ImageSize,Megapixels,AvgBitrate,Rotation c:/Users/54375/Desktop/Alcostado_05102022_1345_IMG_0017.mp4,12.42,Alcostado_05102022_1345_IMG_0017.mp4,c:/Users/54375/Desktop,13 MB,Exists,2022:06:09 00:11:45-03:00,2022:06:09 00:13:05-03:00,2022:06:09 00:12:54-03:00,-rw-rw-rw-,MP4,mp4,video/mp4,MP4 v2 [ISO 14496-14],0.0.0,"mp41, isom",12897087,71,0,48000,10.22 s,1,100.00%,0 s,0 s,0 s,0 s,0 s,0 s,3,0,2022:05:19 12:17:32,2022:05:19 12:17:32,1,10.21 s,0,0.00%,1280,720,srcCopy,0 0 0,avc1,1280,720,72,72,AVC Coding,24,29.97,1 0 0 0 1 0 0 0 1,0,2022:05:19 12:17:32,2022:05:19 12:17:32,48000,10.22 s,und,SoundHandler,0,mp4a,2,16,48000,Metadata,"Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22 ",2022:05:19 12:17:32Z,2022:05:19 12:17:32Z,2022:06:09 00:11:45-03:00,0┬░ (arriba/izquierda),xmp.iid:2469478c-2a5c-3e46-918f-ca1d9c2409dc,xmp.did:faf825b2-ddd8-7f41-8f12-e876550f72e5,xmp.did:faf825b2-ddd8-7f41-8f12-e876550f72e5,"saved, saved","xmp.iid:faf825b2-ddd8-7f41-8f12-e876550f72e5, xmp.iid:2469478c-2a5c-3e46-918f-ca1d9c2409dc","2022:06:09 00:11:40-03:00, 2022:06:09 00:11:45-03:00","Adobe Bridge CC 2019 (Windows), Adobe Bridge CC 2019 (Windows)","/metadata, /metadata","A.Sitio|PN Iguazu, B.Estacion|Alcostado, C.Especie|Anfibio, D.Observaciones|2 ind.","A.Sitio|PN Iguazu, B.Estacion|Alcostado, C.Especie|Anfibio, D.Observaciones|2 ind.",490495,2.08333333333333e-005,1280x720,0.922,10.1 Mbps,0 Lo acabo de revisar, es un error mío también, es porque agregue las etiquetas al revés, pero nuestros colaboradores están entrenados en ese aspecto y siempre se cargan las etiquetas a partir de la "A", es decir esto no se volvería a presentar en ninguna ocasión. siempre siguen el orden alfabético las etiquetas. si, los videos graban la fecha de esa forma, y las imagenes de la otra, esto sera siempre asi y hay que hacer la evaluacion por el tipo de archivo. No porque es propio de la herramienta que usan para el etiquetado que es el bridge. Si imagino en este punto nuevamente un condicional que evalue los dos casos. El orden, me es indistinto, lo que me parece importante es el funcionamiento y la optimización, si eso se puede reducir acomodando las columnas de otra forma, genial hagámoslo así! y en cuanto al link, generalmente yo los suelo poner a lo ultimo... pero no es una convención, sino mas bien lo que sea mas practico ...😊 creo que no, estos intercambios contigo, me han servido también para puntualizar lo que buscamos, y ordenar un poco el embrollo de mi cabeza, creo que me ha servido para pensar en los pasos también sobre todo. Pero no me surge en estos momentos otra cosa que este faltando
  23. Me vas a querer matar Héctor Miguel y yo también quiero matarme! antes que nada mil mil perdones fue sin querer me di cuenta recién que donde obtuve el archivo mp4 para subirte era el archivo sin etiquetar aun.... como tiene el mismo nombre de archivo no me di cuenta... por eso no nos estaba funcionando la lectura. mira ahora Casi nos volvemos locos investigando y leyendo y el error fue mío. me quiero morir de la vergüenza, mil disculpas... lo volví a actualizar al archivo en la carpeta compartida que te ACTUALICE EL ARCHIVO DE VIDEO EN FORMATO MP4 EN LA CARPETA COMPARTIDA ahora te tendria que funcionar tmb sin ningun problema ... Use este comando: C:\exiftoolverson2>Exiftool.exe -lang es -r "C:\exiftoolverson2\Abierto O20 3-11-20 E\100RECNX\nEU\Alcostado_05102022_1345_IMG_0017.mp4" para leer por consola los datos Mientras que para obtener el csv use: C:\exiftoolverson2>Exiftool.exe -lang es -csv -r "C:\exiftoolverson2\Abierto O20 3-11-20 E\100RECNX\nEU\Alcostado_05102022_1345_IMG_0017.mp4"> mp4etiquetas.csv sinceremente me siento muy mal, mil mil disculpas fue un error muy **maravilloso** el mio, pero tengo la cabeza tan quemada con esto que no me di cuenta mp4etiquetas.csv
  24. Me vas a querer matar Héctor Miguel y yo también quiero matarme! antes que nada mil mil perdones fue sin querer me di cuenta recién que donde obtuve el archivo mp4 para subirte era el archivo sin etiquetar aun.... como tiene el mismo nombre de archivo no me di cuenta... por eso no nos estaba funcionando la lectura. mira ahora Casi nos volvemos locos investigando y leyendo y el error fue mío. me quiero morir de la vergüenza, mil disculpas... lo volví a actualizar al archivo en la carpeta compartida que te ACTUALICE EL ARCHIVO DE VIDEO EN FORMATO MP4 EN LA CARPETA COMPARTIDA ahora te tendria que funcionar tmb sin ningun problema ... Use este comando: C:\exiftoolverson2>Exiftool.exe -lang es -r "C:\exiftoolverson2\Abierto O20 3-11-20 E\100RECNX\nEU\Alcostado_05102022_1345_IMG_0017.mp4" para leer por consola los datos Mientras que para obtener el csv use: C:\exiftoolverson2>Exiftool.exe -lang es -csv -r "C:\exiftoolverson2\Abierto O20 3-11-20 E\100RECNX\nEU\Alcostado_05102022_1345_IMG_0017.mp4"> mp4etiquetas.csv sinceremente me siento muy mal, mil mil disculpas fue un error muy **maravilloso** el mio, pero tengo la cabeza tan quemada con esto que no me di cuenta mp4etiquetas.csv
  25. Hola Hector Miguel! 1) si si respecto al primer punto ejecutando en la consola de la terminal o el cmd de windows el siguiente comando y generando el archivo de salida en formato csv de una carpeta analizada que tenga datos de videos en mp4 y avi, SI CONFIRMO que me trae todos los datos que necesito, va a en realidad el unico dato que no lo puedo obtener de los videos con el .getdetails: C:\exiftoolverson2>Exiftool.exe -lang es -r -csv "C:\exiftoolverson2\Abierto O20 3-11-20 E\100RECNX\nEU"> datosencvs.csv 2) Calculo que tendria que tener una hoja de trabajo, donde en mi formulario pueda importar los datos de csv a una hoja de mi archivo , hacer el primer procesamiento de division por delimitador y luego aplicar un procedimiento condicional... si el dato viene de un video tipo avi busco en la columna "X" y lo vuelco en la colunma de tags o etiquetas de mi archivo original que seria: EXIFDatos- Keywords /ACA VAN LOS TAGS O ETIQUETAS ANTES DEL SPLIT SEAN DE VIDEOS O FOTOS Pero si en el procedimiento condicional evaluo que el archivo es mp4, lo buscare al dato entonces en la colunma "XX"... Me imagino que esa seria la forma con cierto orden para hacerlo, no se si es la que mejor funcionamiento tendra en el codigo VBA pero por lo menos asi me lo imagina. mira algo similar lo hice con este codigo que lo hace es al precionar el boton buscar, abre el buscador de directorios, selecciono un archivo .csv y me lo pone en una hoja de trabajo con la division de colunmas por delimitador.
×
×
  • Create New...

Important Information

Privacy Policy