IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

aLinks remplacé dans les dernières versions d'Excel?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut aLinks remplacé dans les dernières versions d'Excel?
    Bonjour à tous,

    Quelqu'un sait-il si le "aLinks" des anciennes versions d'Excel a été remplacé par autre chose et si oui par quoi?

    On l'utilisait dans une macro avec une version ancienne d'Excel, mais cela ne fonctionne plus depuis que l'on a upgradé Excel....

    D'avance merci

    Chris

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pas trouvé non plus aLinks dans vba 97. Que fait cette "fonction" (?) Est-ce une fonction Excel ou VBA ?
    Cependant, ça me dit bien quelque chose...
    Tu peux nous éclairer ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut
    alors je suis pas trop experte en Excel, mais apparemment cette fonctionnalité permettait de savoir si une cellule contenant une fonction avait reçue la valeur attendue ou pas. Enfin je crois.... c'est à cela que ça nous servait en tout cas. Je n'en sais pas beaucoup plus, j'ai dû reprendre le projet en cours de route, et je ne connais pas vraiment bien Excel ni VBA. On utilisait aLinks depuis VBA.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    aLink n'est pas un constante Excel, si c'était le cas, ce pourrait être xlLink, par contre sous Access on a une constante acLink qui est une constante pour les liaisons.

    Est-ce que ton application est lié avec Access ?

    Sinon cela peut-être le nom d'une fonction maison, lorsque tu fais un clik droit dessus et que tu sélectionnes "définition", est-ce que cela te donne quelque chose ?

    Starec

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je pense plutôt que cela avait un rapport avec les liaisons (entre fichiers ? entre cellules ? je n'en sais rien )
    Je laisse la place, il y aura bien quelqu'un qui saura ça...
    Bonne chance

    Edit
    Grillé par Starec
    Je pense comme toi

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Pourrais-tu nous mettre un bout de code où intervient ce terme.

    Starec

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut
    je vous fais toutes mes excuses... Effectivement, alinks est juste une variable de chez nous..... je suis vraiment désolée. la force de l'habitude ici c'est le terme qu'ils utilisent parce que la variable est toujours appelée comme ça... je suis vraiment confuse....

    voici le bout de code que je dois changer pour que cela fonctionne à nouveau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       aLinks = ActiveWorkbook.LinkSources(xlLinkTypeOLELinks)
       If Not IsEmpty(aLinks) Then
          glngNmbRow = UBound(aLinks)
          For counter = 1 To UBound(aLinks)
             ' Put the event in a text file. Because if we don't do this,
             ' all links are not return the status of the link. Like this,
             ' The script will take a long time and so, all links returned
             ' them status.
             s_Log mstrLogStuLnk, _
                   "Index " & counter & ": " & aLinks(counter)
             ActiveWorkbook.SetLinkOnData aLinks(counter), "'AddCnt " & _
                                          counter & "'"
          Next counter
       End If

    à l'origine, on crée un fichier avec des formules dans certaines cellules qui vont chercher des données sur un site internet.
    le code ci-dessus permet de savoir (enfin permettait...) quand toutes les données étaient récupérées.

    Quand on le lance maintenant la première ligne retourne toujours vide, alors qu'on a bien des liens...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aLinks = ActiveWorkbook.LinkSources(xlLinkTypeOLELinks)
    encore toutes mes excuses...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ouskel'n'or
    Edit
    Grillé par Starec
    Je pense comme toi
    Je te laisse la place, c'est plus ton domaine.

    Starec

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut
    ok merci quand même Starec pour ton intervention qui m'aura permis de me rendre compte que je disais une grosse bêtise...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Le code que tu nous mets est le code qui estdans l'aide Excel, dans aLink (qui est en fait une variable), on stocke la liste des liaisons OLE qui se trouve dans le classeur actif.

    Es-tu sûr que tu as des liaisons OLE dans ce classeur (en général les liaisons OLE sont des liaisons avec d'autres appli - Word par exemple). ?

    Regarde l'aide Excel en tapant "LinkSources"

    Starec

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut
    comme je disais, je reprend le projet au vol...

    au début, tout était dans des macros au niveau Excel, puis pour des raisons techniques, une appli VB a été créée pour générer le document Excel, et les macros ont été plus ou moins reprises et adaptées.

    Dans l'appli, on a une liaison avec Oracle, et ensuite une liaison entre Excel et internet... c'est tout... le problème c'est que je suis ni experte Excel, ni experte VB/VBA.... alors je peux pas trop vous aiguiller, vu que je nage un peu moi même... Ca doit se voir un peu....

    je vais regarder l'aide Excel.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Cela veut dire que maintenant ton code est dans une application en VB6 ?

  13. #13
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut
    pour moitié.... l'appel à la base Oracle et l'ouverture du fichier avec la création des formules est dans VB6, le reste se trouve dans les .bas du personal.xls (je crois que c'est le bon nom...).

  14. #14
    Invité
    Invité(e)
    Par défaut
    ouah

    Et ce code se trouve où ? Dans le VB ou dans le VBA ?

    Starec

  15. #15
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 5
    Points
    5
    Par défaut
    pour le moment...... dans les deux..... mais il ne marche ni d'un côté ni de l'autre....

    et merci de pas me taper... je fais ce que je peux.... je le voulais pas ce projet !!!!!

  16. #16
    Invité
    Invité(e)
    Par défaut
    Je ne te tapes pas, ce n'est pas de ta faute, sauf que c'est un peu fou de mettre un peu de code dans du VB et un peu dans du VBA, car avec VB6 on peut piloter Excel et faire ce que l'on veut dedans comme si le code était dans le fichier, est c'est plus facile à maintenir.

    As-tu vraiment des liaisons OLE dans ton classeur ?

    Starec

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Effectivement, on retrouve bien LinSources (avec un s) dans VBA 97 mais pas dans VBA 2003
    Citation Envoyé par L'aide dans VBA 97
    Renvoie un tableau de liaisons dans le classeur. Les noms qui figurent dans le tableau sont les noms des documents liés, des éditions ou des serveurs DDE ou OLE. Cette méthode renvoie la valeur Empty s'il n'existe aucune liaison.

    Syntaxe

    expression.LinkSources(Type)

    expression Obligatoire. Expression qui renvoie un objet Workbook.

    Type Cet argument est facultatif. Le type de liaison à renvoyer. Il peut s'agir de l'une des constantes XlLink suivantes : xlExcelLinks, xlOLELinks (qui gère également les liaisons DDE), xlPublishers ou xlSubscribers.

    Remarques

    Le tableau est à une dimension pour tous les types, quel que soit le type de liaisons, à l'exception de la publication et de l'abonnement. Les chaînes de caractères renvoyées contiennent le nom de la source de la liaison dans la notation appropriée au type de liaison. Par exemple, les liaisons DDE utilisent la syntaxe « Server|Document!Item ».

    Pour les liaisons de publication et d'abonnement, le tableau renvoyé est à double entrée. La première colonne du tableau contient les noms de la publication et la seconde colonne, les références des éditions sous la forme de texte.
    Rien dans l'aide de VBA 2003
    Faudrait simplement savoir par quoi le Bill l'a remplacé.
    Je fouille !
    A+

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Autant pour moi, dans VBA 2003, je viens de trouver ça
    Citation Envoyé par L'aide VBA 2003
    LinkSources, méthode
    Voir aussi S'applique à Exemple Spécificités
    Cette méthode renvoie un tableau de liaisons dans le classeur. Les noms contenus dans le tableau sont ceux des documents, éditions ou serveurs DDE ou OLE liés. Cette méthode renvoie la valeur Empty s'il n'existe aucune liaison. Méthode de type Variant.

    expression.LinkSources(Type)

    expression Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.

    Type Argument XlLink facultatif. Type de liaison à renvoyer.

    XlLink peut être l'une de ces constantes XlLink.
    xlExcelLinks
    xlOLELinks (gère également des liaisons DDE)
    xlPublishers

    xlSubscribers


    Notes
    Le tableau est à une dimension pour tous les types, quel que soit le type de liaisons, à l'exception de la publication et de l'abonnement. Les chaînes de caractères renvoyées contiennent le nom de la source de la liaison dans la notation appropriée au type de liaison. Par exemple, les liaisons DDE utilisent la syntaxe « Server|Document!Item ».

    Pour les liaisons de publication et d'abonnement, le tableau renvoyé est à double entrée. La première colonne du tableau contient les noms de la publication et la seconde colonne, les références des éditions sous la forme de texte.

    Exemple
    Cet exemple montre comment afficher une liste de liaisons OLE et DDE dans le classeur actif. Il doit être exécuté sur un classeur qui contient un ou plusieurs objets Word liés.

    aLinks = ActiveWorkbook.LinkSources(xlOLELinks)
    If Not IsEmpty(aLinks) Then
    For i = 1 To UBound(aLinks)
    MsgBox "Link " & i & ":" & Chr(13) & aLinks(i)
    Next i
    End If
    Je précise pour ne pas paraître encore plus idiot : En tapant "liaisons dans le classeur" dans l'aide intuitive.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ouskel'n'or
    Effectivement, on retrouve bien LinSources (avec un s) dans VBA 97 mais pas dans VBA 2003
    Rien dans l'aide de VBA 2003
    Faudrait simplement savoir par quoi le Bill l'a remplacé.
    Je fouille !
    A+
    Essaye avec LinkSources.
    Excuse moi Ouskel'n'or, mais cela existe dans 2003, sur mon poste actuel j'ai en local 2000 (où il est présent), et je me connecte à une ferme Citrix où on a un Excel 2003, je l'ai aussi. (2002 at home peut pas voir pour l'instant).

    Je pense que le problème vient qu'une partie du code est dans VB6, et avec le ActiveWorkbook, il faudrait tester et mettre vraiment le nom du classeur pour voir.

    Chris_Kill A la place de ActiveWorkbook, met le nom du classeur.

    Dans ce domaine Ouskel'n'or est largement meilleur que moi sur Excel.

    Starec

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Starec
    Dans ce domaine Ouskel'n'or est largement meilleur que moi sur Excel.
    Là tu me prêtes plus que je ne mérite. Pour les liaison OLE les DDE et autres, j'y vais toujours à tâtons... Alors je t'en prie, ne nous quittes pas

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2009, 18h49
  2. Réponses: 76
    Dernier message: 04/11/2007, 06h48
  3. Réponses: 5
    Dernier message: 26/11/2006, 18h32
  4. Réponses: 2
    Dernier message: 03/05/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo