Jump to content

JosMa

Members
  • Posts

    29
  • Joined

  • Last visited

  • Country

    Spain

Everything posted by JosMa

  1. Lo he probado pero no me funciona. Ejemplo.7z
  2. Desde la Hoja. Con el MsgBox no hay problema, La cuestión es que cuando la instrucción tiene que seleccionar una hoja del archivo seleccionado y luego copiarla en el otro libro, le falta algo a la instrucción que no funciona Workbooks.Open(Olb).Sheets(1).Copy After:=Workbooks(2).Sheets(3)
  3. Hola Tengo una parte de la macro que por MsgBox se tiene que seleccionar un archivo (hasta aquí funciona) Do While Olb <> 1 MsgBox "Selecciona archivo ", , "" Olb = Application.GetOpenFilename If Olb <> "Falso" And Olb <> "" And Olb <> 1 Then Exit Do Loop Pero cuando de ese libro que se ha abierto tengo que seleccionar diferentes hojas y luego copiar, me falla en esta linea: Workbooks.Open(Olb).Sheets(1).Copy After:=Workbooks(2).Sheets(3) Me podríais ayudar a encontrar la solución Saludos
  4. Gracias Antoni, poco a poco voy haciendo cosillas
  5. Hola, Teniendo dos libros abiertos, quiero copiar la hoja1 del primer libro al segundo. El problema surge cuando el nombre del primer libro va cambiando y me gustaría no tener que cambiar en la macro cada vez que lo utilizo y el nombre del primer libro es distinto. Habría la posibilidad, teniendo dos únicos libros abiertos, poner en la instrucción que la hoja1 del primer libro activo la copie en el segundo libro activo. Workbooks("Libro1").Worksheets(1).Copy After:=Workbooks("Libro2").Sheets(2) Saludos
  6. Janlui, entiendo que lo que hace la macro es añadirle un cero a la antepenúltima posición? 'xh = texto(Hour(a), "00") Esto es otra manera de hacerlo? En el boton "run" la macro asociada es la "Macro1", como asocias esto con la generación del TXT?, debe de estar pero no lo veo
  7. Hola, de nuevo, te envio el archivo y un pantallazo, veras que a la macro que me eviaste le he hecho unas pequeñas modicifaciones, aunque son pequeñas me cuesta mucho. Es necesario que en el TXT el formato fecha sea "dd/mm/aaaa hh:mm" Ejemplo3.xlsm
  8. Buenos Días. Janlui, recordaras que me ayudaste con una macro para crear un archivo TXT (que por cierto funciona perfecta, la he modificado ligeramente para que salga un mensaje y me pida el nombre del archivo), pues es necesario que el formato sea el que he comentado. Jose BN, no se a que te refieres con quitar el formato de la tabla. Gracias Ejemplo.xlsm
  9. Janlui, ese es el que pongo. Desde luego que a ti si que te funciona pero en mi configuración por lo que sea no va bien
  10. Hola a todos. Tengo el siguiente problema, debe de ser una tontería pero me está llevando de cabeza. En las columnas de fechas necesito el siguiente formato: “dd/mm/yyyy hh:mm” , en principio no hay mayor problema selecciono la columna y le aplico un formato personalizado con esa estructura , ya que en los formatos predefinidos de fecha no está el formato. El problema viene que en la barra fx el dato que aparece es : 07/07/2021 8:46 y le faltaría el digito “0” a las h , vamos me es necesario que fuera así 07/07/2021 08:46 Se os ocurre como lo podría solucionar.? Gracias
  11. Hola Eso que me dices para mi ya es ciencia ficción. De momento para lo que necesito con esto ya tengo bastante. Cuando aprenda un poco ya ire intentando cosas mas complicadas. No te creas que comprender las macros que me habeis ayudado tu, Antoni y Gerson Pineda, me esta costando lo suyo. De momento mis conocimientos son muy basicos y tengo que estar constantemente mirando manuales y aun asi me cuesta. Saludos
  12. Que corto y rapido que lo has hecho. Esto: Do While preg.Cells(rp, 1) <> "" Print #1, preg.Cells(rp, 1) rp = rp + 1 Loop Me imagino que esto, el corta pega que comentaba yo. Ya medio entiendo la macro De esta manera, al ir en una aparte es mas sencillo hacer cualquier modificación en las preguntas que son las susceptibles de hacer modificaciones, la otra parte no se puede modificar. Muy amable y muchas gracias por la ayuda. Saludos
  13. Como te comentaba la parte que va concatenada, la que se encuentra en la Hoja1, la macro lo hace perfecto. Te decia en el mensaje y parece que lo vemos así los dos, puesto que la parte de las preguntas y respuestas es mas o menos fija, aunque es susceptible de cambios, el ponerla en una hoja a parte por ejemplo "Preguntas" con lo que se podrian mantener mas facilmente los cambios, incluso con hacer un corta pega seria suficiente. Saludos Ejemplo3.xlsm
  14. Janlui una cosa más. La primera parte del txt se genera con: Open arch For Output As #1 For i = 1 To 5 Print #1, "Pregunta " & i Print #1, ">a" Print #1, ">b" Print #1, ">c" Print #1, ">d" Next Print #1, String(40, "*") rd = 2 xc = Chr(34) Esa parte del archivo mas o menos es fija, lo único que es susceptible de cambios, tanto en el contenido como en el número de preguntas. He pensado en hacer un libro (“Preguntas”) con los archivos que servirá para el mantenimiento de los posibles cambios que se puedan tener. En la macro que has enviado he sustituido lo que creo que es la parte que corresponde con lo que no hay que concatenar, Open arch For Output As #1 For i = 1 To 5 Print #1, "Pregunta " & i Print #1, ">a" Print #1, ">b" Print #1, ">c" Print #1, ">d" Next Print #1, String(40, "*") rd = 2 xc = Chr(34) con un copiar un rango de una hoja del mismo libro (“Preguntas”) y pegarlo en la hoja activa (“Hoja1”), a partir de ahí que coloque los datos concatenados y ya se genere el txt.: Sheets("Pregunta").Select Range("A1:A25").Select Selection.Copy Sheets("Hoja1").Select Range("A1").Select ActiveSheet.Paste Quedaría así, aunque no me funciona, da error en la línea amarilla, y no sé cómo solucionarlo Sub salida_txt() Application.ScreenUpdating = False Set datos = Worksheets("Hoja1") rd = 2 rs = 58 xc = Chr(34) Sheets("hoja1").Select arch = ActiveWorkbook.Path & "\salida.txt" Dim cadena As String Sheets("Preguntas").Select Range("A1:A58").Select Selection.Copy Sheets("Hoja1").Select Range("A1").Select ActiveSheet.Paste Do While Cells(rd, 1) <> "" cadena = xc & Left(Cells(rd, 3), Len(Cells(rd, 3)) - 6) & xc & "," & xc For i = 7 To 11 cadena = cadena & Cells(rd, i) Next cadena = cadena & xc & "," & xc For i = 12 To 58 cadena = cadena & Cells(rd, i) Next cadena = cadena & xc & "," & xc & datos.Cells(rd, 1) & xc Print #1, cadena rd = rd + 1 Loop Close #1 Application.ScreenUpdating = True MsgBox "Reporte Generado en: " & arch Range("a1").Select End Sub No se si me he armado mas lio del que ya tenia Saludos
  15. Hola Janlui, sencillamente esta perfecto, y el detalle del MsgBox es la guinda. Muchas Gracias Saludos
  16. Muchas Gracias Janlui. Funciona perfecto, veras que he añadido a la macro una última línea que es la que crea el fichero final TXT en una ubicación concreta. Lo que no se es porque una vez generado el TXT la última parte la vuelve a entrecomillar (en la hoja 5 del fichero que adjunto veras un pantallazo del TXT que genera) Repito, muchas gracias por la ayuda Saludos Ejemplo3.xlsm
  17. Buenas tardes. Lo he probado en el excel del office 2016 y la primera me sigue fallando, pero vamos la segunda funcina perfectamente. Lo que te comentaba es que la función "concatenar" cuando las celdas son de texto no me funciona, entonces para cuando los datos son numeros, es cuando tengo que urilizar la expresión "=A1&B1&C1&D1&E1&F1". Esta ultima expresión daria el mismo resultado que "unircadenas", lo unico que en unircadenas puedes utilizar un rango de celdas, y en esta ultima expresión tienes que ir seleccionando una a una las celdas que quieres unir, pero tiene una ventaja muy importante que creo que en concatenar ni unircadenas la tiene, es que las celdas no es necesaio que sean de una misma fila. En cualquier caso, te agradezco la ayuda. Este ultimo comentario solo ha sido por si la aportación le es util a alguien. Una ultima cosa, que aplicación has utilizado para grabar el video.? Saludos
  18. Hola Gracias por la ayuda, te quería comentar ue la primera da error 13 tiempo de ejecución. De macros estoy empezando ahora y no se casi nada, pero quería comentarte ue la función concatenar en Excel cuando la utilizo con texto me funciona bien, pero con números no podía, lo tuve ue solucionar con esta función: =A1&B1&C1&D1&E1&F1 y entonces si unía todas las celdas numéricas en una. Esto ultimo es lo ue me llevo a utilizar la función unircadenas, de esta manera además de poder unir celdas numéricas le podía indicar un rango y de la otra manera tenia ue ir marcando celda a celda. Te comento todo esto por si el error de la macro se debiera a ue las celdas son numéricas y no de texto. En cualquier caso, la opción 2 funciona perfectamente, muchas gracias Saludos
  19. Hola, aqui lo dejo. Gracias por contestar Ejemplo 5.xlsx
  20. Hola, necesito unir un rango grande de celdas, utilizo la función =UNIRCADENAS("";VERDADERO;A19:AS150) y luego voy arrastrando hacia abajo para que haga lo mismo en las filas de abajo, que también son muchas. ¿Con macros se podría utilizar esta función, como sería? Gracias
  21. Buenos Días. Ya está solucionado, no era problema de la macro, era un problema de configuración de las ultimas celdas.
  22. Gracias Antoni, el asignar el numero de columna donde debia de empezar la comparación si que habia caido en ello, pero la segunda modificación no hibiera dado con ella. Una cosa mas y como hago para que los cambions lleguen hasta el final de las filas del cuestionario, se para en la columna BF pero no llega hasta el final. Muchas gracias por tu ayuda Ejemplo 4.xlsm
  23. Buenos Días Antoni, disculpa que te moleste de nuevo. Estoy probando la macro que me enviaste y desde luego que funciona, cambiándole el número de fila la voy adaptando a las diferentes pruebas que estoy haciendo. Lo que no consigo encontrar es por qué cuando me descargo el fichero de los resultados de los cuestionarios hay casillas que no se cambian las respuestas por los números, parece como si no entendiera el contenido de la celda y pone la misma respuesta. He comprobado formatos y contenidos de la hoja de respuestas. No acabo de ver donde se encuentra el error, me imagino que sara algo de formatos de celda pero no consigo averiguarlo, podrías echarle un vistazo a ver si vieras tú el error. He subido un archivo de ejemplo en el que le he añadido al Formato de Salida dos preguntas con sus respuestas, con otro tipo de respuestas distintas y he añadido al Cuestionario Horizontal las preguntas y la plantilla de respuestas. Gracias Ejemplo 4.xlsm
  24. Buenos Días, necesitaría generar un archivo “txt”, con datos de una hoja de Excel. Esto seria posible con una macro.? ¿Me podríais ayudar? Dejo en un archivo lo que necesitaría. Saludos. Gracias Ejemplo.xlsx
×
×
  • Create New...

Important Information

Privacy Policy