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 :

[vb.net Excel] comment selectionner une feuille par son nom et y écrire des données?


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut [vb.net Excel] comment selectionner une feuille par son nom et y écrire des données?
    Bonjour,

    Je rencontre actuellement un soucis pour écrire des données dans une feuille excel :

    à l'initialisation de mon application, je crée 2 classeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        'variable globale pour le fichier excel exporté depuis Kelio
        Private ExcelDepart As Excel.Application = New Excel.Application
        Private edWB As Excel.Workbook
        Private edSheet As Excel.Worksheet
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        'variable globale pour le fichier excel créé dans l'appli
        Private ExcelGenere As Excel.Application
        Private egWB As Excel.Workbook
        Private egSheet As Excel.Worksheet
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Le premier correspond aux données que je veux traiter via vb.net, le deuxieme stockera le resultat.

    Dans mon traitement je crée les feuille qui composeront mon fichier de résultat :

    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
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            'on crée tout les onglets nécessaires en fonction de l'association Secteur | Maitrise
            'Création avec association des secteurs aux maitrises auxquels ils sont liés
            'en utilisant le fichier 
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            For compteur = 0 To NbLigneSecteurMaitrise - 1
                secteur = collectionSecteurMaitrise(compteur, 0)
                maitrise = collectionSecteurMaitrise(compteur, 1)
                If FeuilleExiste(maitrise) Then
                Else
                    Dim lastSheet As Object = egWB.Sheets(egWB.Sheets.Count)                                 '
                    Dim Newsheet As Excel.Worksheet = CType(egWB.Sheets.Add(After:=lastSheet), Excel.Worksheet) '
                    Newsheet.Name = maitrise
                    creeEnTeteFctFeuille(maitrise)
                End If
                If FeuilleExiste(secteur) Then
                Else
                    Dim lastSheet As Object = egWB.Sheets(egWB.Sheets.Count)                                 '
                    Dim Newsheet As Excel.Worksheet = CType(egWB.Sheets.Add(After:=lastSheet), Excel.Worksheet) '
                    Newsheet.Name = secteur
                     'creeEnTeteFctFeuille(secteur)
                End If
            Next
    J'ai crée la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub creeEnTeteFctFeuille(ByVal nomFeuille As String)
     
            Dim selectEntete = edSheet.Rows("1:" & nbLigneEntete)
            Dim FeuilleCourante As Excel.Worksheet = egWB.Worksheets("nomFeuille")
     
            selectEntete.select()
            selectEntete.copy()
            FeuilleCourante.Paste()
     
            FeuilleCourante.Rows(2).hidden = True
            FeuilleCourante.Columns.AutoFit()
     
        End Sub
    Elle me permet de stocké l'entête de mon fichier de donner pour le copier dans la feuille que j'identifie par "nomFeuille"

    Cependant quand je compile j'obtient l'erreur suivante :
    Index non valide. (Exception de HRESULT : 0x8002000B (DISP_E_BADINDEX))
    Apperemment il ne semble pas "connaitre" la feuille que je crée juste au-dessus.

    Si quelqu'un vois où est mon erreur?

    est-ce que j'utilise la bonne méthode pour sélectionner mes feuilles excels créés pour ensuite écrire dedans?

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    bonjour

    Après une nuit de sommeil, j'ai trouvé la réponse à mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub creeEnTeteFctFeuille(ByVal nomFeuille As String)
     
            Dim selectEntete = edSheet.Rows("1:" & nbLigneEntete)
            Dim FeuilleCourante As Excel.Worksheet = egWB.Worksheets("nomFeuille")
     
            selectEntete.select()
            selectEntete.copy()
            FeuilleCourante.Paste()
     
            FeuilleCourante.Rows(2).hidden = True
            FeuilleCourante.Columns.AutoFit()
     
        End Sub
    Il suffisait d'enlever les ".

    erreur stupide du à la fatigue.

    Je met le poste en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] selectionner une feuille par son nom
    Par sharox dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2014, 11h19
  2. Réponses: 3
    Dernier message: 30/04/2009, 18h52
  3. [EXCEL] Comment renomer une feuille?
    Par bob1980 dans le forum Delphi
    Réponses: 1
    Dernier message: 30/10/2006, 11h56
  4. Réponses: 5
    Dernier message: 17/07/2006, 18h34
  5. [VBA Excel] Remettre toute une feuille par défaut
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 16h56

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