Enlace DDE ayuda

18/11/2003 - 12:33 por Anonimo | Informe spam
Repito el mensaje por si no me expliqué:

Esta es la fórmula que aparece en el enlace DDE de una aplicación en Excel

{='F9-Cpa'|'001'!'[17-11-03]@BRIE5720001'} que viene a ser el saldo de la
cuenta "5720001" el 17/11/2003

Solamente quiero poder meterle automaticamente la fecha y la cuenta de
acuerdo con los valores de unas celdas

por ejemplo si en la celda b3 estuviese la fecha "31-12-03" y en la b4 el
valor 4500001 querría que funcionase esto:

{='F9-Cpa'|'001'!'[+B3]@BRIE+B4'}

¿Como debo escribir la fórmula para que funcione?

Ejemplo :
A1 tengo {='F9-Cpa'|'001'!'[17-11-03]@BRIE5720001'}En la hoja muestra
33456,98 ? (obviamente está calculando el enlace DDE)
a2 tengo 18-11-03
a3 tengo 450001
quiero sustituir [17-11-03] por a2 y 5720001 por a3 en a4 de forma que en
a4 en la bara de formulas aparezca
{='F9-Cpa'|'001'!'[18-11-03]@BRIE4500001'}
y en la celda su valor (por ejemplo 87,34?)

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
18/11/2003 - 16:32 | Informe spam
Yo también uso a veces enlaces DDE para traer a Excel datos de la contabilidad, pero la sintaxis que requiere mi programa de contabilidad (Dimoni) es bastante diferente a la del tuyo, por lo que veo. En mi caso, después de probar varias alternativas opté por usar el evento Change para modificar las fórmulas de enlace con el contenido de dos celdas. Te pongo un ejemplo:

En F1 tengo el mes al que quiero obtener el saldo de una cuenta o de una raíz, y en F2 el código de la cuenta o raíz. Los datos quiero que aparezcan en E1. En el módulo de la hoja (click derecho sobre su etiqueta->Ver codigo) tengo lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$F$1" And Target.Address <> "$F$2" Then Exit Sub
Me.Range("E1").Formula = "=DIM|A!'SALDOF(" & Me.Range("F1") & ";" & Me.Range("F2") & ")'"
End Sub

Al cambiar una de las dos celdas (F1 ó F2), el evento modifica automáticamente la fórmula en E1, con lo que el saldo se actualiza.

En tu caso, el código podría ser algo como:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" And Target.Address <> "$A$3" Then Exit Sub
Me.Range("A1").Formula = "='F9-Cpa'|'001'!'[" & Format(A2,"DD-MM-YY") & "]@BRIES" & Me.Range(A3) & "'"
End Sub

Quizás tengas que cambiar Formula por FormulaArray, aunque la verdad es que no termino de entender por qué tus fórmulas tienen que estar encerradas entre llaves (normalmente, en Excel esto significa que son fórmulas matriciales...). De todas formas no puedo garantizar que el código vaya a funcionar porque, lógicamente, no he podido probarlo dado que no tengo el mismo programa de contabilidad que tú.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Anonimo" escribió en el mensaje news:ownub.34941$
Repito el mensaje por si no me expliqué:

Esta es la fórmula que aparece en el enlace DDE de una aplicación en Excel

{='F9-Cpa'|'001'!'[17-11-03]@BRIE5720001'} que viene a ser el saldo de la
cuenta "5720001" el 17/11/2003

Solamente quiero poder meterle automaticamente la fecha y la cuenta de
acuerdo con los valores de unas celdas

por ejemplo si en la celda b3 estuviese la fecha "31-12-03" y en la b4 el
valor 4500001 querría que funcionase esto:

{='F9-Cpa'|'001'!'[+B3]@BRIE+B4'}

¿Como debo escribir la fórmula para que funcione?

Ejemplo :
A1 tengo {='F9-Cpa'|'001'!'[17-11-03]@BRIE5720001'}En la hoja muestra
33456,98 ? (obviamente está calculando el enlace DDE)
a2 tengo 18-11-03
a3 tengo 450001
quiero sustituir [17-11-03] por a2 y 5720001 por a3 en a4 de forma que en
a4 en la bara de formulas aparezca
{='F9-Cpa'|'001'!'[18-11-03]@BRIE4500001'}
y en la celda su valor (por ejemplo 87,34?)

Respuesta Responder a este mensaje
#2 Anonimo
18/11/2003 - 18:27 | Informe spam
Mis intentos iban sobre intentar extraer el "texto" de la formula y mediante
=extrae ,=izquierda, &, etc,,, modificarla y ponerle los contenidos de las
celdas Fecha y Cuenta pero por ahí es por donde me estrellaba
Voy a probar haciendo lo que dices pero como no tengo ni idea de VB quizás
solo me sea útil para conseguir actualizar una fórmula pero no para lo que
quiero (tengo un modelo especial de balance hecho en excel y quiero que se
actualice en funcion de la fecha del día con lo cual hablamos de más de cien
enlaces DDE)
Respecto a las llaves tampoco lo entiendo. Cuando pego en enlace DDE en la
barra de fórmulas se visualiza con las llaves pero si edito directamente en
la barra o en la celda mediante f2 , las llaves desaparecen.
¿Se puede extraer el "texto" de la formula, combinar parte de la formula con
el contenido de otra celda y pegarlo todo luego como formula de enlace? Ahí
es donde querría llegar pero no soy capaz


"Fernando Arroyo" escribió en el mensaje
news:#
Yo también uso a veces enlaces DDE para traer a Excel datos de la
contabilidad, pero la sintaxis que requiere mi programa de contabilidad
(Dimoni) es bastante diferente a la del tuyo, por lo que veo. En mi caso,
después de probar varias alternativas opté por usar el evento Change para
modificar las fórmulas de enlace con el contenido de dos celdas. Te pongo un
ejemplo:

En F1 tengo el mes al que quiero obtener el saldo de una cuenta o de una
raíz, y en F2 el código de la cuenta o raíz. Los datos quiero que aparezcan
en E1. En el módulo de la hoja (click derecho sobre su etiqueta->Ver codigo)
tengo lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$F$1" And Target.Address <> "$F$2" Then Exit Sub
Me.Range("E1").Formula = "=DIM|A!'SALDOF(" & Me.Range("F1") & ";" &
Me.Range("F2") & ")'"
End Sub

Al cambiar una de las dos celdas (F1 ó F2), el evento modifica
automáticamente la fórmula en E1, con lo que el saldo se actualiza.

En tu caso, el código podría ser algo como:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$2" And Target.Address <> "$A$3" Then Exit Sub
Me.Range("A1").Formula = "='F9-Cpa'|'001'!'[" & Format(A2,"DD-MM-YY") &
"]@BRIES" & Me.Range(A3) & "'"
End Sub

Quizás tengas que cambiar Formula por FormulaArray, aunque la verdad es que
no termino de entender por qué tus fórmulas tienen que estar encerradas
entre llaves (normalmente, en Excel esto significa que son fórmulas
matriciales...). De todas formas no puedo garantizar que el código vaya a
funcionar porque, lógicamente, no he podido probarlo dado que no tengo el
mismo programa de contabilidad que tú.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Anonimo" escribió en el mensaje
news:ownub.34941$
Repito el mensaje por si no me expliqué:

Esta es la fórmula que aparece en el enlace DDE de una aplicación en Excel

{='F9-Cpa'|'001'!'[17-11-03]@BRIE5720001'} que viene a ser el saldo de la
cuenta "5720001" el 17/11/2003

Solamente quiero poder meterle automaticamente la fecha y la cuenta de
acuerdo con los valores de unas celdas

por ejemplo si en la celda b3 estuviese la fecha "31-12-03" y en la b4 el
valor 4500001 querría que funcionase esto:

{='F9-Cpa'|'001'!'[+B3]@BRIE+B4'}

¿Como debo escribir la fórmula para que funcione?

Ejemplo :
A1 tengo {='F9-Cpa'|'001'!'[17-11-03]@BRIE5720001'}En la hoja muestra
33456,98 ? (obviamente está calculando el enlace DDE)
a2 tengo 18-11-03
a3 tengo 450001
quiero sustituir [17-11-03] por a2 y 5720001 por a3 en a4 de forma que en
a4 en la bara de formulas aparezca
{='F9-Cpa'|'001'!'[18-11-03]@BRIE4500001'}
y en la celda su valor (por ejemplo 87,34?)

Respuesta Responder a este mensaje
#3 Fernando Arroyo
19/11/2003 - 11:15 | Informe spam
Por empezar por el final de tu mensaje: lo de convertir texto en fórmulas se puede hacer... de una forma un poco enrevesada. Por ejemplo, en una celda tenemos

="=suma(b2:c2)"

Si
- copiamos esta celda
- hacemos un pegado especial (sólo valores) en otra celda
- hacemos Edición->Reemplazar poniendo el signo igual tanto en "Buscar:" como en "Reemplazar con"
el resultado final será que la cadena de texto se habrá convertido en una fórmula. Como verás, no habría ningún problema en que la fórmula inicial se construyera a base de las funciones Extraer, Izquierda, etc., tal como dices al principio de tu mensaje.


Una variante de esto mismo sería usar el método Evaluate, pero a mí no me funciona bien con los enlaces DDE. De todas formas, si quieres probar dímelo y te pongo la función con que estuve trasteando.


El método más elegante y práctico me sigue pareciendo el uso del evento Worksheet_Change, el cual podría ser perfectamente capaz de modificar cien fórmulas, a condición de que se le indiquen las cuentas o raíces (quizás tardaría un poco, pero lo haría). Dices que tienes un balance, por lo que supongo que los códigos de las cuentas cuyos saldos necesitas estarán en algún sitio de la hoja. Sería posible construir los enlaces DDE partiendo de dichos códigos y la fecha del sistema. Si estás interesado en esta posibilidad, tendrás que decirme en qué rangos de celdas se encuentran y en qué rangos deberían ir las fórmulas.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Anonimo" escribió en el mensaje news:5Jsub.37639$
Mis intentos iban sobre intentar extraer el "texto" de la formula y mediante
=extrae ,=izquierda, &, etc,,, modificarla y ponerle los contenidos de las
celdas Fecha y Cuenta pero por ahí es por donde me estrellaba
Voy a probar haciendo lo que dices pero como no tengo ni idea de VB quizás
solo me sea útil para conseguir actualizar una fórmula pero no para lo que
quiero (tengo un modelo especial de balance hecho en excel y quiero que se
actualice en funcion de la fecha del día con lo cual hablamos de más de cien
enlaces DDE)
Respecto a las llaves tampoco lo entiendo. Cuando pego en enlace DDE en la
barra de fórmulas se visualiza con las llaves pero si edito directamente en
la barra o en la celda mediante f2 , las llaves desaparecen.
¿Se puede extraer el "texto" de la formula, combinar parte de la formula con
el contenido de otra celda y pegarlo todo luego como formula de enlace? Ahí
es donde querría llegar pero no soy capaz


Respuesta Responder a este mensaje
#4 Anonimo
19/11/2003 - 17:23 | Informe spam
Muchas gracias por tu ayuda.

Como mi nivel en Excel es muy basico deseché el uso de los eventos
WorkSheet_Change y opté por partir de una fórmula en tipo texto y a partir
de ella hacer las modificaciones pertinentes en función de las cuentas,
fechas, etc...

Al final me quedan todas las fórmulas en modo texto y con una macro las
copio como valores y les reemplazo el signo "=" y todo queda perfecto.

Quizás no es muy ortodoxo pero sí muy efectivo.

Gracias una vez más..






"Fernando Arroyo" escribió en el mensaje
news:
Por empezar por el final de tu mensaje: lo de convertir texto en fórmulas se
puede hacer... de una forma un poco enrevesada. Por ejemplo, en una celda
tenemos

="=suma(b2:c2)"

Si
- copiamos esta celda
- hacemos un pegado especial (sólo valores) en otra celda
- hacemos Edición->Reemplazar poniendo el signo igual tanto en "Buscar:"
como en "Reemplazar con"
el resultado final será que la cadena de texto se habrá convertido en una
fórmula. Como verás, no habría ningún problema en que la fórmula inicial se
construyera a base de las funciones Extraer, Izquierda, etc., tal como dices
al principio de tu mensaje.


Una variante de esto mismo sería usar el método Evaluate, pero a mí no me
funciona bien con los enlaces DDE. De todas formas, si quieres probar dímelo
y te pongo la función con que estuve trasteando.


El método más elegante y práctico me sigue pareciendo el uso del evento
Worksheet_Change, el cual podría ser perfectamente capaz de modificar cien
fórmulas, a condición de que se le indiquen las cuentas o raíces (quizás
tardaría un poco, pero lo haría). Dices que tienes un balance, por lo que
supongo que los códigos de las cuentas cuyos saldos necesitas estarán en
algún sitio de la hoja. Sería posible construir los enlaces DDE partiendo de
dichos códigos y la fecha del sistema. Si estás interesado en esta
posibilidad, tendrás que decirme en qué rangos de celdas se encuentran y en
qué rangos deberían ir las fórmulas.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Anonimo" escribió en el mensaje
news:5Jsub.37639$
Mis intentos iban sobre intentar extraer el "texto" de la formula y


mediante
=extrae ,=izquierda, &, etc,,, modificarla y ponerle los contenidos de las
celdas Fecha y Cuenta pero por ahí es por donde me estrellaba
Voy a probar haciendo lo que dices pero como no tengo ni idea de VB quizás
solo me sea útil para conseguir actualizar una fórmula pero no para lo que
quiero (tengo un modelo especial de balance hecho en excel y quiero que se
actualice en funcion de la fecha del día con lo cual hablamos de más de


cien
enlaces DDE)
Respecto a las llaves tampoco lo entiendo. Cuando pego en enlace DDE en la
barra de fórmulas se visualiza con las llaves pero si edito directamente


en
la barra o en la celda mediante f2 , las llaves desaparecen.
¿Se puede extraer el "texto" de la formula, combinar parte de la formula


con
el contenido de otra celda y pegarlo todo luego como formula de enlace?


Ahí
es donde querría llegar pero no soy capaz


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida