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 :

Fonction pour extraire les données d'un DataGridView


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Par défaut Fonction pour extraire les données d'un DataGridView
    Bonjour à tous,

    Auparavant, j'utilisais Excel VBA pour mes programmes mais je me suis décidé à utiliser Visual Studio pour faire de vrais programmes autonomes. J'ai créé un DatagridView et j'aimerais créer une fonction qui me serait utilisable sur tout un tas de DataGridView afin d'en extraire les valeurs (Que des chiffres).

    Avant sous excel VBA, je créé un tableau et je lui assignais les valeurs mais pour VB.net je n'ai pas d'idée car je ne sais pas comment savoir le maximum de ligne et de colonne de mon DataGridView. Sous Excel on avait des fonctions comme Ubound, .count ...

    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
     
    Public Function Retriever(ByVal source As DataGridView)
            'Retrieve data from a data grid view
            Dim output As Object, nr As Integer, nc As Integer
            nr = UBound(source, 1) '==> Error
            nc = UBound(source, 2) '==> Error
            ReDim output(nr, nc)
            '
            For i = 1 To nr
                For j = 1 To nc
                    output(i, j) = source.item(i, j).value
                Next
            Next
            '
        End Function
    Vous pouvez m'aider SVP, je suis un débutant ?

    Cheers

    Anthony

  2. #2
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Par défaut
    Ok en fait j'ai trouvé une solution comme suit:

    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
     
        Public Function Retriever(ByVal Source As DataGridView) As Object
            'Retrieve data from a data grid view
     
            If Source.DataMember = Nothing Then
                Retriever = Nothing
            Else
                Dim Output As Object, nr As Integer, nc As Integer
                nr = Source.ColumnCount
                nc = Source.RowCount
                ReDim output(nr, nc)
                '
                For i = 1 To nr
                    For j = 1 To nc
                        Output(i, j) = Source.Item(i, j).Value
                    Next j
                Next i
                '
                Retriever = Output
            End If
            ''
        End Function
    Quelqu'un a peut être une meilleur idée SVP?

    Aussi, est ce qu'il existe une fonction permettant de vérifier si un datagrid est vide car mon "Source.datamember = nothing" ne fonctionne pas et j'ai pas trouvé sur le web?
    Ce datagrid, c'est moi qui le remplit à la main et il est composé de trois colonnes et je l'Initialize à l'ouverture du winform. Ce que je voudrais c'est que quand je mets rien dedans Retriever soit égale à "nothing"

    Cheers

    Anthony

  3. #3
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Tu souhaites savoir si ton datagrid view n'a pas de DataSource plutôt?

    Dans ce cas essai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Source.DataSoure=Nothing

  4. #4
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Par défaut
    bonjour,

    j'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Source.DataSource = Nothing Then
    Mais il me renvoie un message:
    L'opérateur "=" est pas défini pour le type datatable et nothing
    Comme j'initialize mon datagridview au lancement de mon winform, alors il affiche les colonnes, ça c'est ok.

    Moi ce que je voudrais c'est que la fonction retriever renvoie 0 ou nothing, si je ne rentre pas de valeur dans mon data grid view car je les rentre à la main.

    Quelques idées?

    Merci tous

    Anthony

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Donc tu veux savoir si il y a des valeurs dans ton datagridview?

    Un simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if Me.DatagridView1.Row.Count = 0
    return 0
    End If

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Par défaut
    Merci encore.
    Pourtant je ne comprends pas car je ne rentre pas de valeur dans mon datagridview et il me renvoie qu'il existe une ligne (Me.DatagridView1.Row.Count = 1).
    Certes il y a une ligne mais elle est vide cette ligne... il devrait me renvoyer 0 dans ce cas ?

    Merci mactwist69 de votre aide

    Anthony

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2011, 15h52
  2. [XL-2002] Fonction pour chercher les données les plus commune
    Par sergio_gr66 dans le forum Excel
    Réponses: 1
    Dernier message: 24/06/2011, 19h29
  3. Réponses: 4
    Dernier message: 02/05/2010, 11h59
  4. Réponses: 1
    Dernier message: 26/01/2007, 08h15
  5. Pour extraire les données d'un fichier texte
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 02/05/2006, 15h01

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