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 :

Ecrire dans Excel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut Ecrire dans Excel
    Bonjour,

    je développe actuellement une application permettant de gérer des données et je suis entrain d'écrire un programme pour écrire ces données dans excel.

    Les données se rentrent correctement mais mes lignes de codes permettant la mise en forme du tableau créent des erreurs.

    Ce code marchait parfaitement auparavant mais j'ai changer de version d'excel. Je suis revenu a l'ancienne version mais sa ne marche plus quand même.

    ma ligne de code est : feuille.range("A" & i).borders(excel.XlBordersIndex.xlEdgeLeft).linestyle = excel.XlLineStyle.xlContinuous

    l'erreur affiché est : Public member 'XlBordersIndex' on type 'Workbook' not found.

    Si quelqu un pouvais me venir en aide.

    Pendant que j'y suis, mon application marche actuellement avec ma version d'excel car je l'ai mis en réference mais si un autre utilisateur possède une autre version cela ne marche pas, comment faut il faire?

    cordialement

    Adrien

  2. #2
    Membre confirmé
    Homme Profil pro
    demandeur d'emploi
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : demandeur d'emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    Comment tu as ajoute reference a Excel?
    Ton "excel" c'est quoi?

    Tu peux:
    1. ajouter reference avant ("early binding") - ca marche avec xlborder... mais aussi ce serait un probleme pour utilisateurs avec une version differente d'Excel...
    ou
    2. utiliser "late binding" - pas de probleme pour utilisateurs, mais c'est vrai - il y a un probleme avec xlborderindex en temps de temps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim xlApp As Object
    Dim xlBook As Object
    Dim xlSheet As Object
     
    xlApp = CreateObject("Excel.Application")
    xlBook = xlApp.Workbooks.Add()
    xlSheet = xlApp.Worksheets(1)
     
    xlApp.visible = True
    ' ...
    ... xlApp.XlBordersIndex.xlEdgeLeft ...
    ' ...
    Si marche pas - creer et utiliser ton enum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private enum mesxlborders
    xlDiagonalDown=5	
    xlDiagonalUp=6
    xlEdgeBottom=9
    xlEdgeLeft=7
    xlEdgeRight=10
    xlEdgeTop=8
    xlInsideHorizontal=12
    xlInsideVertical=11
    end enum
     
    '...
     
    ... mesxlborders.xlEdgeLeft ...
    C'est une seule solution j'ai trouve...

    PS. ok, sans ajouter un reference - as tu "Imports Microsoft.Office.Interop.Excel" ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut
    bonjour,

    merci déjà de votre réponse.

    alors en faite avant j'avais créer l'application avec la version excel de 2007 et ensuite je suis passe avec celle de 2013.

    quand j'ai changé la version, toutes les lignes de codes était en erreur. Ne comprenant pas j'ai donc voulu remettre mon ancienne version d'excel mais maintenant sa me met cette nouvelle erreur.
    Par contre je voudrai que l'application marche avec toutes les versions d'excel car lorsque je vais la générer plusieurs utilisateur l'utiliserons et n'aurons pas forcement la même version que moi.

    Pour ajouter excel en reference, je suis allé dans reference puis .com et j'ai inserer la librairie correspondante.

    Tous ce qui est pour écrire les donnée dans le classeur marche mais l'erreur est juste sur la ligne correspondant à la mise en forme.

    mon code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim excel, classeur, feuille
     
            excel = CreateObject("Excel.Application")
            excel.Visible = True
            excel = excel.Workbooks.Open(pathsauv & "\Base de donnée\Données BD\Heures Tâches.xls")
            feuille = excel.ActiveSheet
    après sa écrit des données

    apres sa met en forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For i = 11 To ligneinser
                feuille.range("A" & i).borders(excel.XlBordersIndex.xlEdgeLeft).linestyle = excel.XlLineStyle.xlContinuous
                feuille.range("A" & i).borders(excel.XlBordersIndex.xlEdgeLeft).Weight = excel.XlBorderWeight.xlMedium
                feuille.range("A" & i).borders(excel.XlBordersIndex.xlEdgeLeft).ColorIndex = excel.Constants.xlAutomatic
    next
    quand j'utilise enum c'est vb qui ne reconnait pas et le import en haut est bien présent.

    donc je bloque totalement

  4. #4
    Membre confirmé
    Homme Profil pro
    demandeur d'emploi
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : demandeur d'emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         excel = CreateObject("Excel.Application")
     ' ???????       excel = excel.Workbooks.Open(pathsauv & "\Base de donnée\Données BD\Heures Tâches.xls") '??????
    1e excel -> excel app
    2e excel -> excel wbook...

    bien sur ca marche pas...

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut
    le premier c'est "classeur" et non "excel" je me suis trompe et après j'ouvre un fichier excel spécial qui est déjà en partie mis en forme (les en tête et pied de page)

  6. #6
    Membre confirmé
    Homme Profil pro
    demandeur d'emploi
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : demandeur d'emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Par défaut
    Essayez ca et dites moi les resultats:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Public Class Form3
        Private Enum mesxlborders
            xlDiagonalDown = 5
            xlDiagonalUp = 6
            xlEdgeBottom = 9
            xlEdgeLeft = 7
            xlEdgeRight = 10
            xlEdgeTop = 8
            xlInsideHorizontal = 12
            xlInsideVertical = 11
        End Enum
     
        Private Enum mesxllinestyle
            xlContinuous = 1
            xlDash = -4115
            xlDashDot = 4
            xlDashDotDot = 5
            xlDot = -4118
            xlDouble = -4119
            xlLineStyleNone = -4142
            xlSlantDashDot = 13
        End Enum
     
     
        Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim xlApp = CreateObject("Excel.Application")
            xlApp.Visible = True
            Dim xlbook = xlApp.Workbooks.Add()
            Dim xlSheet = xlApp.Worksheets(1)
     
            For i = 10 To 20
                xlSheet.range("c" & i).value = i
     
                With xlSheet.range("c" & i).Borders(mesxlborders.xlEdgeBottom)
                    .LineStyle = mesxllinestyle.xlDashDot
                    .ColorIndex = 0
                    .TintAndShade = 0
                    .Weight = 2
                End With
     
            Next
        End Sub
    End Class

Discussions similaires

  1. ecrire dans excel
    Par philguio dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/07/2009, 22h46
  2. Ecrire dans Excel via DDE quand plusieurs fichiers Excel ouverts
    Par Lolly dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 09/07/2009, 17h26
  3. ecrire dans excel
    Par jeanlucsl dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 03/12/2007, 14h07
  4. [VB.NET] Ecrire dans EXCEL 2002 depuis VB.net
    Par vijeo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/06/2006, 13h09

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