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

VB.NET Discussion :

Déclaration de variables : Bonnes pratiques, interrogation


Sujet :

VB.NET

  1. #1
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut Déclaration de variables : Bonnes pratiques, interrogation
    Bonjour à tous,
    Je développe un pettit AddIn pour Excel sous VB2013
    Dans une Sub je suis amené à déclarer plusieurs variables de types comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Cellule_1 As Range = Feuille_Excel.Cells(5, 1)
    Dim Cellule_2 As Range = Feuille_Excel.Cells(5, 2)
    Dim Cellule_3 As Range = Feuille_Excel.Cells(5, 3)
    ...
    Puis leurs assignées une valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Cellule_1.Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    Cellule_2.Value = Fenetre_dialogue.FileName
    Cellule_3.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Référence")
    ...
    Et ainsi plus d'une dizaine.
    Je pense que cela est disgracieux et de surcroit fort peu pratique a coder.
    Je pense donc qu'il doit avoir une autre façon de procéder ou que je m'y prend pas du tout de la bonne façon.
    Alors j'ai testé cela sans résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille_Excel.Cells(5, 1).Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    J'ai ensuite regarder dans les cours disponibles sur le site. Sans résultat également.

    Je vous remercie par avance pour vos réponses à ma question qui va certainement vous paraitre "bête".
    Merci de ainsi que d'utiliser les boutons et

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tout d'abord c'est une excellente habitude de s'obliger à déclarer ses variables.

    Sans avoir testé et de mémoire pour que ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Cellule_1 As Range = Feuille_Excel.Cells(5, 1)
    Feuille_Excel.Cells(5, 1).Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    soient équivalentes, il faut que "Feuille_Excel" soit définie comme Excel.Sheet ou Excel.Woksheet et qu'elle existe. Même pas nécessaire de l'activer ou de la sélectionner. Cependant elle doit être convenablement identifiée. Malheureusement, tu ne nous dis pas comment tu instancies ton objet Excel, ni ton objet Sheet ou Worksheet. Le modèle-objet d'Excel n'est pas complètement, ou même n'est pas vraiment conforme à la POO. L'objet range ne peut pas exister sans un objet parent (sheet ou worksheet), les objet Sheet et Worksheet ne peuvent pas exister sans un objet Workbook parent et l'objet Workbook ne peut pas exister sans un objet Application parent. N'importe comment, pour écrire quelque chose dans une feuille, il faut que tous les objets de la chaîne existent.

    Pour (re)venir à ta question, le choix de définir ou non plusieurs cellules par leur propre nom n'est qu'une question pratique et de goût.

    L'autre incertitude est ton Fenetre_dialogue. Tu ne nous dis pas si c'est un objet .net, ou une boîte de dialogue d'Excel. Encore là, si c'est une boîte de dialogue Excel elle doit être convenablement instanciée comme un objet Excel et appelée comme un objet Excel. C'est encore une que tous ne nous dit pas.

    En terminant, pour ceux que cela intéresse, pourquoi Excel a-t-il un objet Sheet et un objet Worksheet.

    L'objet Sheet comprend tout ce qu'Excel peut considérer comme une feuille, incluant une feuille de macros Excel 4 - 5, une feuille de graphiques et une feuille de calcul.

    L'objet Worksheet concerne les feuilles de calcul uniquement. Donc un Worsheet c'est un sheet et un sheet n'est pas forcément un worksheet.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Malheureusement, tu ne nous dis pas comment tu instancies ton objet Excel, ni ton objet Sheet ou Worksheet.
    Voici mes déclarations en début de module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Imports System.IO
    Imports System.Diagnostics
    Imports Microsoft.Office.Interop.Excel
    Imports System.Runtime.InteropServices
    Imports SldWorks
    Module Module_principal
        Dim Classeur_Excel As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook
        Dim Feuille_Excel As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet
        Dim Processus_SW As Process
        Dim Application_SW As SldWorks.SldWorks
        Dim Model_SW As SldWorks.ModelDoc2
        Dim Component_SW As SldWorks.Component2
        Dim Nom_fichier_SW As String
        Dim Liste_dependances As Object

    Citation Envoyé par clementmarcotte Voir le message
    L'autre incertitude est ton Fenetre_dialogue. Tu ne nous dis pas si c'est un objet .net, ou une boîte de dialogue d'Excel. Encore là, si c'est une boîte de dialogue Excel elle doit être convenablement instanciée comme un objet Excel et appelée comme un objet Excel. C'est encore une que tous ne nous dit pas.
    En fait il 'agit d'un complément qui ajoute un menu dans le ruban d'excel.
    Comme décris ici : http://jfdeterme.developpez.com/tuto...l-studio-2010/
    (J'espère avoir répondu correctement.)

    Ensuite le souci avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille_Excel.Cells(5, 1).Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    C'est que le .value est indisponible.

    Enfin existe il un moyen de déclarer mes variables sous forme de "boucle" dans lequel on incrémente le nom (+1) et la plage.?

    Merci pour cette réponse intéressante. On apprend plein de choses avec developpez.com ;-)
    Merci de ainsi que d'utiliser les boutons et

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par r.morel Voir le message
    Voici mes déclarations en début de module :]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Imports System.IO
    Imports System.Diagnostics
    Imports Microsoft.Office.Interop.Excel
    Imports System.Runtime.InteropServices
    Imports SldWorks
    Module Module_principal
        Dim Classeur_Excel As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook
        Dim Feuille_Excel As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet
        Dim Processus_SW As Process
        Dim Application_SW As SldWorks.SldWorks
        Dim Model_SW As SldWorks.ModelDoc2
        Dim Component_SW As SldWorks.Component2
        Dim Nom_fichier_SW As String
        Dim Liste_dependances As Object
    En fait il 'agit d'un complément qui ajoute un menu dans le ruban d'excel.
    Comme décris ici : http://jfdeterme.developpez.com/tuto...l-studio-2010/
    (J'espère avoir répondu correctement.)

    À ma (grande ) honte, je dois avouer que ce tutoriel ne m'as jamais sauté aux yeux. De plus, je ne peux pas dire que je connais bien VSTO. À vrai dire, je ne les ai jamais utilisés comme tel. Au plus, j'en ai rencontré dans des exemples de Microsoft. Pour faire une histoire courte, on peut utiliser Excel à partir de VB.net sans utiliser VSTO et en faire nécessairement un "add-in" pour Excel. VB.net, encore que c'est aussi vrai pour c#, peut piloter Office par Automation, sur le même principe qu'avec une macro Word, par exemple. et Cela va quand même me prendre un peu de temps pour lire le document.

    Est-ce que ces lignes font référence à SolidWorks ? Personnellement, je ne le connais pas, mais cela ne me dérange pas outre-mesure pour le reste. C'est juste pour être "sûr".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim Processus_SW As Proces
       Dim Application_SW As SldWorks.SldWorks
        Dim Model_SW As SldWorks.ModelDoc2
        Dim Component_SW As SldWorks.Component2
        Dim Nom_fichier_SW As String

    Ensuite le souci avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille_Excel.Cells(5, 1).Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    C'est que le .value est indisponible.
    En principe, la propriété Value est standard pour un objet Range, et la propriété Cells est une collection d'objets cell et l'objet cell est aussi un objet Range. Ce pourrait aussi être un message d'erreur de "dépannage"; en l'absence du vrai message d'erreur. C'est donc peut-être à cause d'une autre erreur, comme une erreur de conversion de type, d'une cellule protégée, ou de quelque chose qui fait que la donnée n'est pas reconnue pour être une valeur dans Excel. Tu peux toujours essayer de mettre un espion sur fenetre_dialogue et voir s'il n'est pas à Nothing et que .FileName existe vraiment, et qu'il n'y a pas de caractère parasite, ou essayer un Debug.print


    Enfin existe il un moyen de déclarer mes variables sous forme de "boucle" dans lequel on incrémente le nom (+1) et la plage.?
    Personnellement, je ne pense pas (ou peut-être même, je ne sais pas). Ce que je sais en tout cas, au sujet de ce forum et de la plate-forme .net, c'est qu'il ne faut jamais jurer de rien.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Bonjour,

    Citation Envoyé par clementmarcotte Voir le message
    Est-ce que ces lignes font référence à SolidWorks ? Personnellement, je ne le connais pas, mais cela ne me dérange pas outre-mesure pour le reste. C'est juste pour être "sûr".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim Processus_SW As Proces
       Dim Application_SW As SldWorks.SldWorks
        Dim Model_SW As SldWorks.ModelDoc2
        Dim Component_SW As SldWorks.Component2
        Dim Nom_fichier_SW As String
    Oui elles font référence a SolidWorks car l'AddIn a pour but de récupérer la liste des pièces qui composent un assemblage SolidWorks et de les lister avec leurs propriétés dans un classeur Excel.

    Citation Envoyé par clementmarcotte Voir le message
    En principe, la propriété Value est standard pour un objet Range, et la propriété Cells est une collection d'objets cell et l'objet cell est aussi un objet Range. Ce pourrait aussi être un message d'erreur de "dépannage"; en l'absence du vrai message d'erreur. C'est donc peut-être à cause d'une autre erreur, comme une erreur de conversion de type, d'une cellule protégée, ou de quelque chose qui fait que la donnée n'est pas reconnue pour être une valeur dans Excel. Tu peux toujours essayer de mettre un espion sur fenetre_dialogue et voir s'il n'est pas à Nothing et que .FileName existe vraiment, et qu'il n'y a pas de caractère parasite, ou essayer un Debug.print
    Suite à cette remarque, j'ai modifié le code comme ceci :

    Avant :
    Dim Cellule_1 As Range = Feuille_Excel.Cells(5, 1)
    Dim Cellule_2 As Range = Feuille_Excel.Cells(5, 2)
    Dim Cellule_3 As Range = Feuille_Excel.Cells(5, 3)
    Dim Cellule_4 As Range = Feuille_Excel.Cells(5, 4)
    Dim Cellule_5 As Range = Feuille_Excel.Cells(5, 5)
    Dim Cellule_6 As Range = Feuille_Excel.Cells(5, 6)
    Dim Cellule_7 As Range = Feuille_Excel.Cells(5, 7)
    Dim Cellule_8 As Range = Feuille_Excel.Cells(5, 8)
    Dim Cellule_9 As Range = Feuille_Excel.Cells(5, 9)
    Dim Cellule_10 As Range = Feuille_Excel.Cells(5, 10)
    Dim Cellule_11 As Range = Feuille_Excel.Cells(5, 11)
    Dim Cellule_12 As Range = Feuille_Excel.Cells(5, 12)
    Dim Cellule_13 As Range = Feuille_Excel.Cells(5, 13)
    Dim Cellule_14 As Range = Feuille_Excel.Cells(5, 14)
    Dim Cellule_15 As Range = Feuille_Excel.Cells(5, 15)
    Dim Cellule_16 As Range = Feuille_Excel.Cells(5, 16)
    Dim Cellule_17 As Range = Feuille_Excel.Cells(5, 17)
    Dim Cellule_18 As Range = Feuille_Excel.Cells(5, 18)

    Cellule_1.Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    Cellule_2.Value = Fenetre_dialogue.FileName
    Cellule_3.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Référence")
    Cellule_4.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Référence")
    Cellule_5.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Désignation")
    Cellule_6.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Désignation")
    Cellule_7.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Machine")
    Cellule_8.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Matière")
    Cellule_9.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Finition")
    Cellule_10.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Révision")
    Cellule_11.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Révision")
    Cellule_12.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Gestion_erp")
    Cellule_13.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Epaisseur")
    Cellule_14.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Ref.Assemblage")
    Cellule_15.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Assemblage")
    Cellule_16.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Désignation anglaise")
    Cellule_17.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Désignation allemande")
    Cellule_18.Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Chemin_fichier_erp")

    Après :
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 1)).Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 2)).Value = Fenetre_dialogue.FileName
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 3)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Référence")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 4)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Référence")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 5)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Désignation")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 6)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Désignation")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 7)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Machine")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 8)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Matière")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 9)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Finition")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 10)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Révision")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 11)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Révision")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 12)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Gestion_erp")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 13)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Epaisseur")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 14)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Ref.Assemblage")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 15)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Assemblage")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 16)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Désignation anglaise")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 17)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "Désignation allemande")
    Feuille_Excel.Range(Feuille_Excel.Cells(5, 18)).Value = Acquisition_propriete(Fenetre_dialogue.FileName, "ERP_Chemin_fichier_erp")


    Ce qui divise par deux le nombre de ligne. Mais me renvoie l'erreur :
    "Une exception de type 'System.Runtime.InteropServices.COMException' s'est produite dans ExcelAddIn1.dll mais n'a pas été gérée dans le code utilisateur
    Informations supplémentaires : Exception de HRESULT : 0x800A03EC"
    sur la première de cette partie du code.
    Merci de ainsi que d'utiliser les boutons et

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par r.morel Voir le message
    Bonjour,

    "Une exception de type 'System.Runtime.InteropServices.COMException' s'est produite dans ExcelAddIn1.dll mais n'a pas été gérée dans le code utilisateur
    Informations supplémentaires : Exception de HRESULT : 0x800A03EC"
    sur la première de cette partie du code.
    On en revient à une de mes premières questions

    Est-ce que Fenetre_dialogue est une boîte de dialogue d'Excel ou un composant .net ?
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Fenetre_dialogue est un composant .net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Fenetre_dialogue As New System.Windows.Forms.OpenFileDialog
    Merci.
    Merci de ainsi que d'utiliser les boutons et

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    J'ai fait une recherche sur Bing (je fais plus confiance à Microsoft qu'à Google. C'est peut-être parce que je suis déjà allé à Seattle et que j'ai vu Bill Gates en personne (de loin mais je l'ai vu et je l'ai entendu).

    Requête : MSDN 0x800A03EC si jamais tu veux aller plus loin que moi.

    Et je suis tombé sur cette page:

    https://social.msdn.microsoft.com/Fo...3ec?forum=vsto

    (il y a d'autres liens dans la colonne de gauche)

    J'ai survolé la page et j'en ai retenu deux causes possibles :

    L'adresse de la cellule et la valeur de la donnée. Donc, je dirais, comme autre question :

    As-tu vraiment une valeur valide pour ton Fenetre_dialogue.FileName ?

    Ceci dit, tu peux programmer comme tu le veux, mais je pense que c'est plus facile à déboguer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim fichier as string = Fenetre_dialogue.FileName
    dim lefichier as string = Path.GetFileNameWithoutExtension(fichier)
    Feuille_Excel.Cells(5, 1).Value = lefichier
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille_Excel.Cells(5, 1).Value = Path.GetFileNameWithoutExtension(Fenetre_dialogue.FileName)
    Et cela, peu importe qui programme et peu importe le programme.

    Je sais. Cela prend plus de lignes et c'est peut-être moins rapide à l'exécution et cela prend un peu plus de mémoire et cela peut déplaire à certains, mais c'est plus flexible à la fin.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Bonne pratique sur les variables
    Par cetteame dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 07/09/2012, 09h59
  2. Réponses: 3
    Dernier message: 11/06/2012, 20h19
  3. Bonnes pratiques d'optimisation JS et gestion interne des variables
    Par nouknouk dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/11/2009, 14h42
  4. Réponses: 5
    Dernier message: 17/04/2008, 09h11
  5. De la bonne pratique des variables globales...
    Par say dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/11/2005, 09h47

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