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 :

remplir ligne excel via textbox vb net


Sujet :

VB.NET

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut remplir ligne excel via textbox vb net
    Bonjour a tous, j'ai un souci.
    J'arrive à ouvrir un fichier excel à partir de vb net 2010, à assigner la valeur d'un textbox à une cellule excel. Mais je n'arrive pas a remplir les cellules successive d'une ligne excel à partir des valeurs rentrées dans un seul textbox.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 196
    Par défaut
    C'est bien d'avoir fait une recherche. Part contre si tu n'expliques pas quel est ton problème on ne pourra pas t'aider

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    Bjr, merci d'avance pour ta réponse. ce que je veux c'est que j'ai pu ouvrir un fichier excel a partir de vb. et je récupérer la valeur d'un textbox vb dans une cellule excel avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbook.Worksheets("linebasetps").Range("E5").Value =Me.TypeTextBox.Text
    Maintenant j'aimerai remplir toute les cellules d'une ligne excel constituant un tableau à partir des différentes valeurs rentrées dans un seul textbox, ces valeur seront par la suite utilisées pour faire une courbe sur excel.

    Merci d'avance.

    Edit

    je vais reprendre mon explication:
    je veux saisir les données dans la textbox et les insérer une à une dans les cellules successive d'excel. En fait j'ai deux textbox, dans lesquelles je rentre les données pour mon calcul.Chacune des données rentrées doivent se loger successivement dans les cellules excel sur deux lignes différentes( chaque ligne pour un textbox, un peu comme un tableau)

    on peut mettre un bouton qui permet d'ajouter la donnée entrée dans le textbox ( apres avoir fait mon opération).
    J'espere avoir été assez clair. Merci

  4. #4
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    oui en soit c'est pas compliqué, mais je ne comprend pas trop le truc.

    Ce que tu veux c'est ajouter des données à la suite de ton fichier Excel?

    Parce que s'il contient déjà des valeurs, comment fait tu?
    tu les effaces? ou tu les mets a la suite?

    J'ai l'impression que tu ne fait qu'exposer ton problème,
    sans montrer ton code, on ne peu donc pas t'aider...
    et on a pas forcément le temps de coder a ta place.

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    Bjr,désolé mais je n'ai pas vraiment de code car je ne sais pas comment faire.Mais en voici un que j'ai trouvé sur le net:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim ligne As Integer
     
            ligne = 20
            With workbook.Worksheets("lineattenuat")
            While excel.Cells(ligne, 1) = ""
            ligne = ligne + 1
            End While
            excel.Cells(ligne, 1).Value = TextBox1.Text
     
            End With
    Mais il ne fonctionne pas.

    Edit 1
    Mon fichier excel est un rapport de vérification contenant le titre, la courbe à tracer et en desous de la courbe, il doit y avoir le tableau de données.
    Donc je rentre mes données à partir d'une cellule précise et ainsi de suite. exemple :si la première valeur est en A36, la deuxieme sera en B36, la 3ème en C36........G36.

    Edit 2
    Et a chaque fois que je ferai ma vérification, j'utiliserai le meme emplacement pour les données.Si j'utilise 6 cellules, à ma prochaine vérification, mes données s'insèrerons dans ces 6 cellules.

    Désolé, je sais ce que je veux faire, mais je ne sais pas cmt le faire.

  6. #6
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    je vois bien oui...

    en ce qui concerne le fichier Excel, je peux te proposer une méthode:
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
            ' #####################################################
            ' ############# Déclaration des variables #############
            ' #####################################################
     
            ' Fichier Excel
            Dim Excel_App As New Microsoft.Office.Interop.Excel.Application
            Dim Workbook As Microsoft.Office.Interop.Excel.Workbook
            Dim CheminFicher As String
            Dim BoiteDialogue As New OpenFileDialog
     
            ' #####################################################
            ' ############ Recherche du fichier Excel #############
            ' #####################################################
     
            With BoiteDialogue
                ' Initialisation de la boite de dialogue
                .Title = "Selection d'un essai"
                .InitialDirectory = My.Application.Info.DirectoryPath ' répertoire de l'application
                .Filter = "Fichiers Excel |*.xls; *xlsx"
                ' vérification de la séléction
                If .ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                    CheminFicher = .FileName
                Else
                    Exit Sub ' Abandon de la routine
                End If
            End With
     
            ' #####################################################
            ' ############## Lecture du fichier Excel #############
            ' #####################################################
     
            Try
                ' Ouverture du fichier Excel
                Workbook = Excel_App.Workbooks.Open(CheminFicher)
     
                ' Parcours du feuillet Excel
                For Each ExcelWorkSheets As Microsoft.Office.Interop.Excel.Worksheet In Workbook.Worksheets
     
                    ' #####################################################
                    ' ################## Feuille lineattenuat #################
                    ' #####################################################
     
                    If (ExcelWorkSheets.Name = "lineattenuat") Then
     
     
                        ' Exemple de lecture que je te laisse
                        Dim Nom_Formule As String
     
                        Try
                            ' Recupération du nom de formule
                            Nom_Formule = ExcelWorkSheets.Range("C8").Value.ToString
                        Catch ex As Exception
                            Nom_Formule = Nothing
                        End Try
     
     
                    End If
                Next
            Catch ex As Exception
                MsgBox(ex.ToString, MsgBoxStyle.Critical, "Erreur lors de la lecture du fichier Excel")
                Exit Sub ' Abandon de la routine
            End Try
    Voila, j’espère qu'avec ça tu aura de quoi a avancer

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    slt, merci pour ton code mais il ne m'aide pas vraiment!

    regarde celui que j'éssai d'ajuster:

    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
    Dim excel As New Excel.Application
        Dim workbook As Excel.Workbook
        Dim worksheet As Excel.Worksheet
        Dim rng As OXL.Range = Nothing
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            excel.Visible = False 'la fenêtre excel est visible 
     
            workbook = excel.Workbooks.Add("C:\Documents and Settings\stagiaire1\Bureau\exemple")
     
            worksheet = workbook.Worksheets("Feuil1") 'on ouvre une feuille dans le classeur excel
     
            Dim i As Integer = 5
            Dim cellule As String
            cellule = "C" + i
            workbook.Worksheets("Feuil1").Range(cellule).Value = Me.TextBox1.Text
            i = i + 1
        End Sub

  8. #8
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    regarde celui que j'éssai d'ajuster
    Oui... Quel est la Question?
    Et merci de mettre des balises de code, sinon j'arrive pas a lire...

  9. #9
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    ben lorsque je debug, j'ai l'érreur suivante:
    La conversion de la chaîne "C" en type 'Double' n'est pas valide.
    Voila, encore bloqué!!!!

  10. #10
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    tu ne regarde même pas la ligne ou ça bug...
    tu aurais compris sinon que le bug se situe à la ligne suivante

    Si je peux me permettre, ton code est très maladroit...
    Tu commente trop peut, et puis c'est tout tassé, tu ne fait aucune vérifications

    il y a aussi le
    i = i + 1
    je me demandais a quoi il sert

  11. #11
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    Bjr, le i = i + 1 me sert doit me servir à passer d'une cellule à l'autre quand je rentre une nouvelle valeur(exemple: C5, C6, C7...)
    pour l'instant j'arrive juste à rentrer une seule valeur en C5.

  12. #12
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,
    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
        Dim excel As New Excel.Application
        Dim workbook As Excel.Workbook
        Dim worksheet As Excel.Worksheet
        Dim rng As OXL.Range = Nothing
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                '...
     
                Dim i As Integer = 5    'déclaration et instantiation de la variable locale
                Dim cellule As String
                cellule = "C" + i   'valeur variable locale => 5
                workbook.Worksheets("Feuil1").Range(cellule).Value = Me.TextBox1.Text
                i = i + 1  'changement valeur variable locale => 6
     
                'fin de la méthode...
                'destruction de la variable locale!
            End Sub
    Si tu veux que i soit toujours "en vie" après l’exécution de la méthode, il faut la déclarer en dehors de ta méthode (avec les variable workbook, worksheet, rng).

    De plus, quand tu fais cellule = "C" + i tu essaie d'ajouter un nombre (type Integer) à une chaîne de caractères (type String), d'ou l'erreur citée au dessus. Fais plutôt cellule = "C" + i.ToString().

  13. #13
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    Bjr et merci, mon compteur fonctionne maintenant! Mais ça ouvre un nouveau document excel a chaque fois que j'ajoute une valeur.ça n'implémente pas dans le meme document.

  14. #14
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    pour l'instant j'arrive juste à rentrer une seule valeur en C5
    donc ton code fonctionne?

    il tes reste plus qu'a dérouler les boucles For ou While,
    et tu a fini

  15. #15
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    ça ouvre un nouveau document excel a chaque fois
    montre nous la boucle.

    je ne serais pas surpris que tu ais mis cette ligne dedans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     workbook = excel.Workbooks.Add("C:\Documents and Settings\stagiaire1\Bureau\exemple")

  16. #16
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Par défaut
    voici le code:

    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
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            excel.Visible = False 'la fenêtre excel est visible 
     
            workbook = excel.Workbooks.Add("C:\Documents and Settings\stagiaire1\Bureau\exemple")
     
            worksheet = workbook.Worksheets("Feuil1") 'on ouvre une feuille dans le classeur excel
     
     
            Dim cellule As String
            With workbook.Worksheets("Feuil1")
                cellule = "C" + i.ToString()
                workbook.Worksheets("Feuil1").Range(cellule).Value = Me.TextBox1.Text
                i = i + 1
     
            End With
     
        End Sub

  17. #17
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Citation Envoyé par raye2010 Voir le message
    Mais ça ouvre un nouveau document excel a chaque fois que j'ajoute une valeur.ça n'implémente pas dans le meme document.
    Je n'ai jamais utilisé Excel dans mes applications mais quelques lignes me troublent un peu:

    Dans ta méthode Button1_Click:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            workbook = excel.Workbooks.Add("C:\Documents and Settings\stagiaire1\Bureau\exemple")
     
            worksheet = workbook.Worksheets("Feuil1") 'on ouvre une feuille dans le classeur excel
    A chaque fois que tu vas clicker ça va exécuter ce code donc à chaque fois "on ouvre une feuille dans le classeur excel"..
    Donc ce n'est peut-être pas le meilleur endroit pour placer ce code ?!

    PS: Pense à la balise CODE (icone #) pour placer du code, ça sera beaucoup plus lisible.

  18. #18
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    ah ok... c'est normale, ton code ne va jamais fonctionner

    a chaque click sur le bouton_1, tu créer un nouveau fichier excel ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbook = excel.Workbooks.Add("C:\Documents and Settings\stagiaire1\Bureau\exemple")
    Pourquoi ne pas faire simplement une ouverture de fichier plutôt que d'en créer un a chaque fois?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' Ouverture du fichier Excel
    Workbook = Excel_App.Workbooks.Open("C:\Toto.xls")
    ensuite ton déplacement de cellule "i = i + 1" ne marchera pas non plus,
    à chaque click sur le bouton_1, tu créer ta variable "i" et tu l'initialise à 5.
    Donc tu restera tout le temps sur la cellule "C5"


    Ce que tu veux faire, c'est un code qui te permet d'ajouter des valeurs via une TextBox à les unes à la suite des autres,
    mais il faut que tu click à chaque fois?
    c'est spéciale comme idée, surtout si tu doit ajouter 100 valeurs, ça va etre long...


    PS: Merci de ne pas oublier les balises de code !
    PPS: c'est un truc qu'on aime pas beaucoup voir sur le forum

  19. #19
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Salut raye2010

    ah ok... c'est normale, ton code ne va jamais fonctionner

    a chaque click sur le bouton_1, tu créer un nouveau fichier excel ...
    fais gafe
    petit conseil verifie avec le gestionaires des taches onglet processus
    remplit d'excel

  20. #20
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Oui, je voulais pas en parler pour éviter de compliquer les explications,
    mais le gros défaut de cet automation est qu'il ferme mal les process "EXCEL.EXE"

    Je n'ai pas retravaillé ma solution parceque je développe l'appli finale en Windev

    Si tu veux une solution propre, passe par OLEDB
    c'est plus rapide, et pas besoin d'avoir Excel,
    Word ou Access d'installé sur ton pc.
    *alors qu'avec le code que tu utilise actuellement, tu en a besoin...*

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/03/2014, 13h39
  2. [XL-2007] Suppression lignes excel via formulaire sous vba
    Par nanousik dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2012, 07h00
  3. somme des effectifs de lignes excel via VBA
    Par soul330 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2010, 20h42
  4. [VB.NET] problème d'utilisation de substotal (excel via VB)
    Par Pynuch dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/11/2005, 13h53
  5. [VB.NET] [excel] Pb remplir colonne excel
    Par mikolirto dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/04/2005, 14h55

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