Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !



  1. #1
    mirroiratrou

    Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !


    ------

    Bonjour à tous,

    Je voudrais vous présenter mon problème que je n'ai pas encore pu résoudre :
    J'ai codé un petit programme dans Excel via VBA qui communique avec des instruments de mesures et sauvegarde automatiquement la mesure dans un second fichier Excel.

    Le programme fonctionne parfaitement sur mon PC de développement.
    Mais une fois le dossier collé sur un second PC j'ai une erreur 13 sur la ligne en gras :

    ...
    Dim val As Double, valO As Double, valC As Double
    ...
    instr_spectrum.WriteString ":CALC:MARK1:Y?"
    val = instr_spectrum.ReadString()
    ...

    Voila un exemple de valeur lu sur l'instrument : -9.37E-01 ou encore -1.207E+00

    La communication avec l'instrument fonctionne car d'autres informations (format string) sont lues correctement.

    Je me demandais si ce n'était pas lié au séparateur de décimal ou à une protection quelconque.
    Merci d'avance pour vos lumières.
    Cordialement

    -----
    A t-on besoin d'une raison pour aider quelqu'un?

  2. #2
    mirroiratrou

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    L'origine du problème est bien le séparateur décimal :

    Ce code fonctionne correctement.

    ...
    Dim value As String, valu As String
    Dim val As Double
    ...
    instr_spectrum.WriteString ":CALC:MARK1:Y?"
    value = instr_spectrum.ReadString()
    valu = Replace(value, ".", ",")
    val = valu
    ...

    Y a t'il un réglage a effectuer pour que le même code fonctionne sur les 2 PCs ?
    Merci
    Dernière modification par JPL ; 31/01/2022 à 14h02. Motif: Titre corrigé
    A t-on besoin d'une raison pour aider quelqu'un?

  3. #3
    vande545

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Bonjour
    Le type de séparateur décimal est un problème récurrent en VB et VBA et il est recommandé d'utiliser le point [.] dans les paramètres système de Windows.
    Cependant et c'est curieux, il semble que ce soit l'appareil connecté qui génère une valeur avec comme séparateur un virgule ou je me trompe ?
    Cela dit, tu as trouvé la solution en passant par le format texte que tu peux à nouveau convertir en numérique après avoir remplacé la virgule.
    Dernière modification par JPL ; 31/01/2022 à 14h03. Motif: Titre corrigé

  4. #4
    Merlin95

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Ca dépend certainement de la "langue par défaut" du pc configuré dans windows, je dirais.

  5. A voir en vidéo sur Futura
  6. #5
    vande545

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Ca dépend certainement de la "langue par défaut" du pc configuré dans windows, je dirais.
    Non, je n'ai jamais eu de soucis avec la langue. Ce sont les séparateurs décimaux et les dates qu'il faut remettre au « format américain» si le programme VBA en manipule.

  7. #6
    umfred

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    on peut changer le point décimal quelque soit la langue du PC.
    Mais là, de ce que je vois, tu fais une lecture de chaine (ReadString) donc on retourne une chaine. A tester en "forçant" la conversion en double avec CDbl(..), ça devrait marcher
    Code:
    val = CDbl(instr_spectrum.ReadString())

  8. #7
    Merlin95

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Ha oui ca me rappelle de vieux souvenirs, c'est peut-être pas aussi la même version excel entre les deux pc.

  9. #8
    mirroiratrou

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Bonjour,

    Merci à tous pour vos retours et vos compléments d'information.
    Je me trouve confronter à un second problème similaire mais plus ennuyeux.

    Je diffuse mon petit programme autour de moi sur différents PC.
    La plupart tout fonctionne très bien.

    Mais sur un des PC, disons PCx, la communication avec les instruments ne fonctionne pas du tout.
    Sur ce PCx, Je suis en mesure de communiquer avec mes instruments via d'autres logiciel dédiés.
    Je sais donc que j'utilise la bonne adresse de communication et je sais que mes commandes fonctionnent.

    Mais c'est comme si Vba refusait d'utiliser les resources VISA ou qu'il y a un conflit.
    J'ai pris le temps de vérifier la liste des références. La version VISA-COM8 Type Library est bien activité sur le PCx. Pas de différence notable de ce côté là.

    Théorie 1 : Le problème peut-il venir de la version de Excel mon PC utilise une version 14729.20260 64bit and the PCx une version 14729.20224 32bit.
    Théorie 2 : 2 versions de VISA installer sur le PCx : "Use Keysight 32-bit VISA with another vendor’s VISA on the same PC"

    N'hésitez pas à me partager vos éventuels autres théories.
    Je travail activement sur le sujet en parallèle.
    Merci à tous
    A t-on besoin d'une raison pour aider quelqu'un?

  10. #9
    umfred

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Je pense qu'il faudrait effectivement utiliser la même version de VISA (elle doit être visible dans les références il me semble)
    Si tu déclares des fonctions externes, il faut modifier/adapter leur déclaration https://docs.microsoft.com/fr-fr/off...20d'Office.
    Autre chose, est-ce que c'est la bonne interface qui est utilisée ? (GPIB:0 et pas GPIB:1 par exemple) ou qu'un logiciel n'utilise pas déjà cette interface ?

  11. #10
    mirroiratrou

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Merci pour ce retour,

    Pour l'interface de communication, je suis sur que c'est bien la bonne. Aucun doute la dessus.
    Je ne déclare pas de fonction externe dans ce programme.
    Je vais essayer de faire les diverses mise à jour possible pour essayer de faire correspodre au mieux le PCx.
    D'autres idées ?
    A t-on besoin d'une raison pour aider quelqu'un?

  12. #11
    mirroiratrou

    Re : Excel VBA Erreur 13 sur 1 PC mais pas sur l'autre !

    Problème résolu, cela venait de la version d'Excel, l'installation de la dernière mise a jour à résolu ce problème.
    Merci de m'avoir aidé
    A t-on besoin d'une raison pour aider quelqu'un?

Discussions similaires

  1. Copie de donnée excel vers un autre excel
    Par invite2c7d42fe dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 16/03/2017, 09h23
  2. transfert de données excel vers une autre page excel
    Par invite595b98a5 dans le forum Logiciel - Software - Open Source
    Réponses: 38
    Dernier message: 01/10/2015, 13h36
  3. Excel Recherche V ou autre
    Par Palombe40 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 24/07/2014, 17h46
  4. Excel : formule ou autre astuce...
    Par invited9437926 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 21/09/2006, 12h09
  5. Mes macros Excel ne passent plus d'un XP à l'autre
    Par inviteb0e19553 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 05/06/2006, 17h20