............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

macro concatenar con error

Ver el tema anterior Ver el tema siguiente Ir abajo

macro concatenar con error

Mensaje por jkehmas el Vie Mar 13, 2015 7:53 pm

Tengo esta macro para concatenar varios textos de la hoja 1 a la hoja 2 en determinada celda, pero me da error, me podrían decir cual es el error?

Código:
Sub concatenartexto()
    Range("B19:AR64").Select
    ActiveCell.FormulaR1C1 = _
        "=CONCATENATE(""En la Ciudad de "",IF('Capturar Datos'!R[-9]C="""",""falta capturar subdelegacion"",'Capturar Datos'!R[-9]C),"", "",IF('Capturar Datos'!R[-10]C="""",""falta capturar delegacion"",'Capturar Datos'!R[-10]C),""; siendo las "",HOUR(NOW()),"":"",MINUTE(NOW()),"" horas del día "",TEXT(TODAY(),""dd""),"" de "",TEXT(TODAY(),""mmmm""),"" de "",TEXT(TODAY(),""a"& _
        "", se hace constar que en cumplimiento al Acuerdo para la Notificación por Estrados, contenido en el oficio número "")"
    Range("B19:AR64").Select
    ActiveWindow.SmallScroll Down:=-6
End Sub

la macro la hice con la grabadora de macros, y desde que se creo no funciono me arrojo error pero no entiendo porque me arroja el error

jkehmas

Masculino Cantidad de envíos : 6
Edad : 37
Ciudad - Pais : Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 13/03/2015

Volver arriba Ir abajo

Re: macro concatenar con error

Mensaje por moises melgar el Vie Mar 13, 2015 10:02 pm

Creo que es la celda activa

¿Cual es la formula que usaste en excel?

y ¿cual es la celda activa? "la celda donde aparecera el resultado"

editado: ¿Cual es el resultado que esperas?
2 editado: igual en vez de usar laformula concatenar puedes usar "&"
ejemplo
celda A1 ="ejemplo de "&"unir palabras"&" en una celda"
si en A2 tienes un valor
celda A1 ="ejemplo de "&"unir palabras"&" en una celda"&A2 (ETC)
saludos
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 526
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: macro concatenar con error

Mensaje por jkehmas el Sáb Mar 14, 2015 1:16 am

moises melgar escribió:Creo que es la celda activa

¿Cual es la formula que usaste en excel?

y ¿cual es la celda activa? "la celda donde aparecera el resultado"

editado: ¿Cual es el resultado que esperas?
2 editado: igual en vez de usar laformula concatenar puedes usar "&"
ejemplo
celda A1 ="ejemplo de "&"unir palabras"&" en una celda"
si en A2 tienes  un valor
celda A1 ="ejemplo de "&"unir palabras"&" en una celda"&A2  (ETC)
saludos

Bueno haber si me explico, la celda activa es una celda que tengo combinada de la celda B19 hasta la B64, se que es una celda muy grande, pero ahi necesito mostrar un texto muy largo, de echo si me trae el resultado que espero pero por medio de una formula que es esta (la cual es solo un segmento de la formula original pero se me hace mas facil probar que con una formula de alrededor de 2000 caracteres):

Código:
=CONCATENAR("En la Ciudad de ",SI('Capturar Datos'!B10="","falta capturar subdelegacion",'Capturar Datos'!B10),", ",SI('Capturar Datos'!B9="","falta capturar delegacion",'Capturar Datos'!B9),"; siendo las ",HORA(AHORA()),":",MINUTO(AHORA())," horas del día ",TEXTO(HOY(),"dd")," de ",TEXTO(HOY(),"mmmm")," de ",TEXTO(HOY(),"aaaa"),", se hace constar que en cumplimiento al Acuerdo para la Notificación por Estrados, contenido en el oficio número ")

esta es la formula que ponge en dicha celda, claro que es mas larga la formula, y me trae un resultado que es este:



por medio de la formula me trae la informacion que quiero, solo que se me ocurrio ahora hacerlo por medio de macros, solo que no se como.

Nota: la celda donde tengo esta formula es la hoja2, y hay datos que me traigo de la hoja1, por eso dentro de la formula hago referencia a la otra pestana en ciertas partes, ademas el texto que quiero traer es algo grande la formula la recorte a unas 2 lineas nomas pense que el error me lo tiraba por traer muchos caracteres y por eso no me funcionaba, tambien en la formula que estoy usando en dicha celda estoy convinando en unas partes texto metido a agranel tal es el caso de esta seccion de la formula:

Código:
"En la Ciudad de "

y lo concateno con alguna formula como:

Código:
HORA(AHORA()),":",MINUTO(AHORA())

o con alguna referencia a celdas de otra hoja:

Código:
SI('Capturar Datos'!B10="","falta capturar subdelegacion",'Capturar Datos'!B10)

cabe mencionar que en la ayuda que me diste anteriormente era para dicha celda solo que en el ayuda enterior usaba la celda C82, que es una celda igual que tiene informacion con un formula concatenada igual, la cual tenia que subrayarle o ponerle en negritas ciertas partes del texto, por eso es que tambien se me ocurrio meter esta formula por macro para que me haga todo junto

espero haberme explicado XD

jkehmas

Masculino Cantidad de envíos : 6
Edad : 37
Ciudad - Pais : Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 13/03/2015

Volver arriba Ir abajo

Re: macro concatenar con error

Mensaje por jkehmas el Sáb Mar 14, 2015 2:08 pm

jkehmas escribió:
moises melgar escribió:Creo que es la celda activa

¿Cual es la formula que usaste en excel?

y ¿cual es la celda activa? "la celda donde aparecera el resultado"

editado: ¿Cual es el resultado que esperas?
2 editado: igual en vez de usar laformula concatenar puedes usar "&"
ejemplo
celda A1 ="ejemplo de "&"unir palabras"&" en una celda"
si en A2 tienes  un valor
celda A1 ="ejemplo de "&"unir palabras"&" en una celda"&A2  (ETC)
saludos

Bueno haber si me explico, la celda activa es una celda que tengo combinada de la celda B19 hasta la B64, se que es una celda muy grande, pero ahi necesito mostrar un texto muy largo, de echo si me trae el resultado que espero pero por medio de una formula que es esta (la cual es solo un segmento de la formula original pero se me hace mas facil probar que con una formula de alrededor de 2000 caracteres):

Código:
=CONCATENAR("En la Ciudad de ",SI('Capturar Datos'!B10="","falta capturar subdelegacion",'Capturar Datos'!B10),", ",SI('Capturar Datos'!B9="","falta capturar delegacion",'Capturar Datos'!B9),"; siendo las ",HORA(AHORA()),":",MINUTO(AHORA())," horas del día ",TEXTO(HOY(),"dd")," de ",TEXTO(HOY(),"mmmm")," de ",TEXTO(HOY(),"aaaa"),", se hace constar que en cumplimiento al Acuerdo para la Notificación por Estrados, contenido en el oficio número ")

esta es la formula que ponge en dicha celda, claro que es mas larga la formula, y me trae un resultado que es este:



por medio de la formula me trae la informacion que quiero, solo que se me ocurrio ahora hacerlo por medio de macros, solo que no se como.

Nota: la celda donde tengo esta formula es la hoja2, y hay datos que me traigo de la hoja1, por eso dentro de la formula hago referencia a la otra pestana en ciertas partes, ademas el texto que quiero traer es algo grande la formula la recorte a unas 2 lineas nomas pense que el error me lo tiraba por traer muchos caracteres y por eso no me funcionaba, tambien en la formula que estoy usando en dicha celda estoy convinando en unas partes texto metido a agranel tal es el caso de esta seccion de la formula:

Código:
"En la Ciudad de "

y lo concateno con alguna formula como:

Código:
HORA(AHORA()),":",MINUTO(AHORA())

o con alguna referencia a celdas de otra hoja:

Código:
SI('Capturar Datos'!B10="","falta capturar subdelegacion",'Capturar Datos'!B10)

cabe mencionar que en la ayuda que me diste anteriormente era para dicha celda solo que en el ayuda enterior usaba la celda C82, que es una celda igual que tiene informacion con un formula concatenada igual, la cual tenia que subrayarle o ponerle en negritas ciertas partes del texto, por eso es que tambien se me ocurrio meter esta formula por macro para que me haga todo junto

espero haberme explicado XD

Actualizando este tema, despues de tener una buena conversacion con la almohada, obtube la respuesta, y la formula debe de quedar asi:

Código:
   ActiveCell.FormulaR1C1 = _
        "=CONCATENATE(""En la Ciudad de "",IF('Capturar Datos'!R[-9]C="""",""falta capturar subdelegacion"",'Capturar Datos'!R[-9]C),"", "",IF('Capturar Datos'!R[-10]C="""",""falta capturar delegacion"",'Capturar Datos'!R[-10]C),""; siendo las "",HOUR(NOW()),"":"",MINUTE(NOW()),"" horas del día "",TEXT(TODAY(),""dd""),"" de "",TEXT(TODAY(),""mmmm""),"" de "",TEXT(TODAY(),""aaaa""" & _
        "), "", se hace constar que en cumplimiento al Acuerdo para la Notificación por Estrados, contenido en el oficio número "")"

No se porque al momento de grabar una macro con una formula tan larga como la que pretendo usar, el mismo programa te la separa en linea con estos operadores " & _ en ese orden, pero al momento de hacerlo, se come mas o menos 5 caracteres del final de la primera linea, en este caso donde puso " & _ faltaba los caracteres aaa"" y mas o menos otros 5 caracteres donde continua la linea abajo en este caso ), " , por ende la formula te da error cuando intenta ponerla en la celda.

A alguien mas le sucedio este tipo de error?


Muchas gracias por su ayuda

jkehmas

Masculino Cantidad de envíos : 6
Edad : 37
Ciudad - Pais : Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 13/03/2015

Volver arriba Ir abajo

Re: macro concatenar con error

Mensaje por moises melgar el Sáb Mar 14, 2015 2:27 pm

Buenos dias
primero vamos con las curiosidades:

podemos combinar
Código:
TEXTO(HOY(),"dd")," de ",TEXTO(HOY(),"mmmm")," de ",TEXTO(HOY(),"aaaa")
para expresar:
Código:
TEXTO(HOY(),"dd"" de ""mmmm"" de ""aaaa")

de igual manera
Código:
HORA(AHORA()),":",MINUTO(AHORA())
por:
Código:
TEXTO(AHORA(),"h:mm")

se puede hacer con macros lo sig:
los datos de condicion de "si" se calculan en la misma macro

y luego en la celda colocar solo el valor resultante
algo como:

Código:
Sub ejemplo()
Dim a, b

If Hoja2.Range("B10") = "" Then    '<---es la frmula "si" de excel
a = "falta capturar subdelegacion"
Else
a = Hoja2.Range("B10").Value
End If


If Hoja2.Range("B9") = "" Then
b = "falta capturar subdelegacion"
Else
b = Hoja2.Range("B9").Value
End If

'en vez de usar la formula concatenar solo expreso los textos a unir por medio de un &
Hoja1.Range("B19").Value = "En la Ciudad de " & a & ", " & b & "; siendo las " & Format(Now(), "hh:mm") & " horas del día " & Format(Now(), "dd"" de ""mmmm"" de ""YYYY") & ", se hace constar que en cumplimiento al Acuerdo para la Notificación por Estrados, contenido en el oficio número "
End Sub

pero si quieres hacerlo para que la formula se exprese en la celda:
nota:cambie la referencia FormulaR1C1 por formula

Código:
Sub ejemplo1()
ActiveSheet.Range("B19").Formula = "=CONCATENATE(""En la Ciudad de "",IF('Capturar Datos'!B10="""",""falta capturar subdelegacion"",'Capturar Datos'!B10),"", "",IF('Capturar Datos'!B9="""",""falta capturar delegacion"",'Capturar Datos'!B9),""; siendo las "",TEXT(NOW(),""h:mm""),"" horas del día "",TEXT(TODAY(),""dd"""" de """"mmmm"""" de """"aaaa""),"", se hace constar que en cumplimiento al Acuerdo para la Notificación por Estrados, contenido en el oficio número "")"
End Sub

adjunto el archivo saludos (no olvidar habilitar las maros)

Saludos y buen fin de semana
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 526
Edad : 28
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: macro concatenar con error

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.