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?)
 

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?)

Preguntas similares