Jump to content

Maria_80

Members
  • Posts

    203
  • Joined

  • Last visited

  • Country

    Spain

Everything posted by Maria_80

  1. Mil gracias, Antoni. Como siempre. Voy a desarrollarlo todo sobre la segunda, porque no siempre viene separado por | Estoy intentando añadir que si no encuentra nada no deje la celda en blanco, ponga algo así como: "SIN DATOS" Sería aquí? If Not HALLA Is Nothing Then .Range("C" & x) = HALLA.Offset(0, 1) Gracias!
  2. Hola, Estoy intentando buscar el modo de llevarme a VBA la fórmula HALLAR. Lo que me sucede es que no es buscar una palabra en una celda, es buscar una palabra dentro de una cadena de texto en una celda y que la busque en otra hoja. En el ejemplo que os adjunto en la primera hoja (INICIO) hay tres columnas: ORDEN, CONCEPTO Y HALLA. Lo que necesito es que si alguna de las palabras que hay dentro de la cadena de texto de la celda CONCEPTO se encuentra en la primera columna de la hoja 2 (HALLAR), me devuelva la segunda columna de la hoja 2 y lo devuelva en hoja INICIO halla. Creo que no me explicado muy bien, pero al abrir el ejemplo se puede ver. ¿Alguna idea? Gracias de antemano. ej_hallar.xlsm
  3. Gracias, Antoni! No había caído en la función UCase, no la controlo mucho todavía. Funciona, como siempre!
  4. Hola, He hecho una macro para comparar si dos celdas son iguales, el problema es que discrimina entre mayúsculas y minúsculas y no sé cómo decirle que no lo haga. Hola = HOLA (ahora mismo no lo reconoce como igual). Gracias de antemano. T_ejemplo_MY_MIN.xlsm
  5. Gracias, Antoni. Como siempre del diez.
  6. Hola, Estoy intentando sacar la función máx en un rango que cambia por fila. Como en el fichero que adjunto, Valor 3 (Columna C) = Max de columna A y B Normalmente lo hago con Lmax pero en un rango fijo de celdas, no sé cómo ponerlo para que recorra la tabla y me ponga en la tercera columna el máximo según cambia la fila. Gracias de antemano. Ejemplo_max (1).xlsm
  7. Hola, Antoni. Funciona perfecto, como siempre. Mil gracias!!!
  8. Hola! Estoy intentando llevarme a Visual Basic la función INDICE / MATCH de Excel: Sería así y me funciona correctamente: =INDICE(Tablas!$N$6:$Q$8;COINCIDIR(A2;Tablas!$O$6:$O$8;1);4) Adjunto el fichero de ejemplo donde uso esa fórmula y también el comienzo de una macro donde he intentado traducir lo mismo en código. Pero se me para en Match y no termino de sacar cómo ponerle la referencia a "A2". Alguien que me pueda echar un cable? Mil gracias! ejemplo_indexmatch.xlsm
  9. OK, ya lo he visto. Se me había movido el rango de la segunda hoja. Funciona correctamente, por si le sirve a alguien ;).
  10. Hola! ¿Alguien podría echarle un vistazo a la macro de este fichero? No me da ningún error al ejecutarla, pero no devuelve bien el dato. Tengo dos columnas en una hoja (Inicio). Si el dato de la primera columna es numérico, me lo pega en la segunda columna y si no es numérico, le digo que me de el máximo de la primera columna de la hoja "tablas". El caso es que no me devuelve el máximo, me pone un cero. No entiendo dónde está el error... Gracias de antemano! Ejemplo_max.xlsm
  11. OK, Antoni. Ya lo conseguí usando tu idea con esto: Sub May() For i = 2 To ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row If (Cells(i, "A").Value) = UCase(Cells(i, "A").Value) Then Cells(i, "B").Value = "Mayúsculas" Else Cells(i, "B").Value = "Contiene Minúsculas" End If Next End Sub Mil gracias por todo, como siempre! ;).
  12. Hola, Antoni. Muchas gracias! He visto las fórmulas de la segunda columna. Las he quitado para poder probar la función y hacerlo vía macro, pero no termino de entender cómo puedo pasarla diciéndole que tome los datos de la primera columna y me devuelva la solución en la segunda con el código. Con excel lo consigo con la función "MAYUSC" pero no sé cómo llevarme eso al código. No encontré nada. Gracias!
  13. Hola, Estoy intentando comprobar vía macro si el texto de una celda está todo en mayúsculas. Y me devuelva en la columna de al lado SI o NO. POr ejemplo AAA es sí y BBa sería no porque hay una minúscula. Adjunto ejemplo. He estado buscando y dicen que se puede acer con lcase, ucase o asc. Pero no encuentro ejemplos. Casi todos son para convertir el texto y no comprobarlo. Gracias de antemano. ejemplo_MY.xlsm
  14. Hola, Isidro. Retomo el hilo porque al final conseguí con este código separar por punto y coma los ficheros concatenados. El tuyo funciona, pero con estos ficheros que tengo en este formato tan raro, hasta ahora esto es lo único que me ha funcionado: Sub Separar() Dim cadena As String Dim vector() As String Dim Lin As Long Dim I As Long Lin = 2 Do While Hoja1.Cells(Lin, 1) <> "" cadena = Trim(Hoja1.Cells(Lin, 1)) vector = Split(cadena, ";") For I = LBound(vector) To UBound(vector) Hoja1.Cells(Lin, I + 2) = vector(I) Next I Lin = Lin + 1 Loop Mi pregunta es la siguiente: ¿Cómo puedo optimizar este código? en ficheros con pocas flas y columnas va perfecto, pero si trato de hacerlo con unas 11000 filas y 285 columnas, tarda una barbaridad. Incluso a veces deja de responder. Mil gracias!
  15. Hola, Os adjunto un fichero con dos hojas. La primera (ORIGEN) es una tabla con 3 columnas y necesitaría agrupar por la primera columna y sumar la tercera. Tal y como figura en la hoja SUMATORIO. Es la primera vez que voy a hacer esto con VBA y me vendría bien algún ejemplo. ¿alguna idea de cómo hacerlo? Gracias! sumatorio.xlsm
  16. Hola, Isidro. Si es que abrí hilo nuevo porque me resultó imposible lo que me recomendaste ayer. Son unos ficheros muy raros. He probado con esto que me envías y no funciona tampoco. Como ya conseguí la primera parte (la de consolidar), he decidido dividir el proceso en dos partes. Primero consolidar y separar por ; Ya tengo en un excel en columna A con una macro el listado completo de registros. Pero vienen separados por ; y no hay forma de hacerlo vía macro, al menos yo no pude. He simplificado con el ejemplo que os envío. - Una curiosidad: Si al hacer Texto en columnas el digo separar por punto y coma, siempre hay algún registro que descuadra, sin embargo y pongo texto en columnas > Otro> y ahí pongo a mano ; lo hace bien. A lo malo hago esa segunda parte a mano. Pero es que algo que creía que sería sencillo, pues al final no lo es. Muchas gracias. seguiré investigando!
  17. Hola, os adjunto un fichero .csv separado por ; No sé si preparé bien el ejemplo porque al hacer doble click se abre directamente en excel y no tengo que hacer lo de separar texto en columnas, pero así lo veis. Si probáis a abrirlo con el bloc de notas, se ven todos los campos tal y como me envían a mí los ficheros y luego tengo que hacer lo de separar texto en columnas. El problema es que son 286 columnas (en el ejemplo he llamado a la cabecera Dato1, Dato2, etc.) y dependiendo del fichero vienen x número de filas (en el ejemplo solo os puse 2, fila a y fila b). He probado con un montón de ejemplos que hay por el foro pero no consigo dar con la solución, y al grabar macro y ver el código me dice que son demasiadas columnas. Alguna idea? Mil gracias! ejemplo.csv
  18. Hola! Muchísimas gracias! Con esto tengo para adaptarlo a mis ficheros. Tengo que hacer alguna modificación, pero al menos he conseguido hacer desaparecer la doble comilla. Gracias!
  19. Gracias, Isidro. Consigo importar todos los csv de golpe y consolidarlos pero no se separan en columnas, se quedan todos los registros en la primera columna. Tengo que hacerlo luego a mano fuera de la macro y separar por ; y doble comilla. Al intentar abrirlo por ejemplo con el bloc de notas, no lo reconoce como un fichero de texto y creo que ahí está el problema, en la doble comilla. No consigo hacer que lo reconozca la macro. Muchas gracias.
  20. Hola, Tengo una plantilla en excel donde con una macro importo y fusiono todos los ficheros de una carpeta. Siempre son .csv separado por comas. Me he encontrado con el problema de que me envían una serie de ficheros .csv separados por ; pero además de eso están separados al comienzo de los campos y al final de los campos por ". Con excel al importar de forma normal tengo que poner delimitador ; y también " Sería algo así: "nombre;apellidos;ciudad;" Esta es la parte del código done consolido los archivos: Private Sub RecorrerArchivos(NombreCarpeta As String) Dim Archivos As Object Dim Carpeta As Object Dim Archivo As Object '-- ThisWorkbook.Sheets("Datos").Range("A1:KN" & Rows.Count).ClearContents 'seleccionamos hoja destino y rango de columnas '-- Set Archivos = CreateObject("Scripting.FileSystemObject") Set Carpeta = Archivos.GetFolder(NombreCarpeta) For Each Archivo In Carpeta.Files If LCase(Right(Archivo.Name, 4)) = ".csv" Then ConsolidarArchivo Archivo.Path 'extensión de los archivos a consolidar extensión .csv Next End Sub No sé cómo modificarlo para añadirle lo de que comienza y termina por doble " o si debería pasar antes otro tipo de macro para convertir los ficheros. Gracias de antemano!
  21. Funciona perfecto! Como siempre, mil gracias!!!!!
  22. Lo pruebo y te digo! Gracias! Es un fichero que me envían en csv pero esa cantidad sale así... hay siempre tres números al final después de un punto, pero ese punto debe ser coma. El formato al importar dice que es numérico... he intentado importarlo de mil maneras sin resultado. Pruebo esto que me comentas y te dido algo.
  23. Hola, Tengo un fichero con una columna que viene en formato número todo separado por punto. El caso es que solo es punto para separar miles el primero, el resto sería una coma (también viene punto). No sé cómo cambiarlo! Os pongo un ejemplo: tengo la cantidad de 10.865.123 pero en realidad es 10.865,123 Os adjunto una columa de ejemplo, gracias de antemano!!! Formato_ejemplo.xlsx
  24. Hola, encontré la solucion en vuestro foro con esto: Dim c As Range For Each c In ActiveSheet.UsedRange.columns("C").Cells c.Value = CDate(c.Value) Next c
×
×
  • Create New...

Important Information

Privacy Policy