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 :

Changement de la couleur d'une cellule dans une tabledatagridview selon sa valeur [Débutant]


Sujet :

VB.NET

  1. #61
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 1
    Points
    1
    Par défaut
    Salut,
    Merci bcp , sur montock effectivement cela fonctionne très bien et du coup je l'ai mis de manière à choisir la couleur du label de la page d'accueil, c'est cool....comme dans ton code ci-dessus.

    Oui a force, recherche et test, je commence a être copain avec le datagridview, il est très important dans mes projets.

    Cependant ma réflexion vise plus loin comme d'habitude, ce que je souhaite réussir cette fois-ci, toujours dans le thème des couleurs du datagridview c'est de pouvoir mettre autant de couleur que je veux dans les cellules des lignes grâce au colordialog.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub BtCouleur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtCouleur.Click
     
      Dim color As DialogResult
            color = ColorDialog1.ShowDialog()
            If color = Windows.Forms.DialogResult.OK Then
                HeureDataGridView.CurrentCell.Style.BackColor = ColorDialog1.Color
           End If
     
        End Sub
    Jusque là tout fonctionne, je peux mettre pleins de couleurs différentes dans la même ligne et sur plusieurs lignes différentes. C'est le but recherché.... Par contre la ou je bloque c'est pour mémoriser toutes ces couleurs et de pouvoir les recharger.



    Sur les textbox j'y arrive très bien , Un petit exemple avec trois boutons et un textbox:
    deux paramétres : 1 de type "string" avec le nom "Valeur" pour le text et 1 de type "System.Drawing.Color" avec le nom "Couleur" pour la couleur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'Bouton pour choisir sa couleur
     
    Private Sub BtChoixCouleur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtCouleur.Click
     
    Dim color As DialogResult
            color = ColorDialog1.ShowDialog()
     
     If color = Windows.Forms.DialogResult.OK Then
                          TextBox1.BackColor = ColorDialog1.Color    ' affiche notre couleur dans le textbox
                        End If
     
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'Bouton pour sauvegarder le texte et la couleur du texbox
     
    Private Sub BtSauvegarderSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
     
            Settings.valeur = TextBox1.Text
            Settings.couleur = ColorDialog1.Color
            Settings.Save()
     
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    'Bouton pour recharger a la réouverture du form
     
    Private Sub BtChargeSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
     
    TextBox1.Text = Settings.valeur
    TextBox1.BackColor = Settings.couleur
     
      End Sub
    Donc est ce possible sous VB de pouvoir mémoriser toutes les couleurs que l'on ajoute dans chaque lignes d'un datagridview et de pouvoir les recharger dans les bonnes cellules ?

    Merci.

  2. #62
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Personnellement, pour ce qui est de ta dernière question (la mémorisation des couleurs), j'opterais pour le fichier de paramètres comme déjà implémenté dans ton application "MonStock". Le nombre de paramètres est illimité (à condition de bien t'organiser ).
    Ce fichier de paramètres peut en outre être accédé avec le NotePad et aussi servir une autre application réalisée avec le même design.
    A toi de voir ...

  3. #63
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Bon je n'ai pas réussi a mémoriser toutes les couleurs individuellement , je ne suis pas assez bon pour le moment avec les settings donc je range cette idée et je reviendrai dessus par la suite.
    J'ai réussi a mettre les lien pdf dans le datagridview et à les ouvrir à ma convenance . Ce qui me permet d'avoir un lien direct avec des documentations sur mes produits dans le stock. J'ai compris le truc , en fait on peut appeler plein de type de fichier avec openfiledialog
    Je commence a bien utiliser les événements du datagridview et autre c'est très pratique ....
    VB est très passionnant.

  4. #64
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bravo
    Etonnant tout de même que tu puisses mémoriser la dernière couleur du Label "Attention" et que tu ne puisses pas mémoriser les autres ... ça viendra plus tard.
    Bonne continuation,

  5. #65
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 1
    Points
    1
    Par défaut
    Salut,
    Excuse moi de te poser cette question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Try
     
    Catch ex As Exception
     
     End Try
    Peut-on en mettre autant que l'on désire pour pouvoir "exemple" sortir d'un SUB au cas ou , ou bien il faut éviter d'en mettre partout?

    Je viens de réaliser ce soir ma première action double sur une cellule du datagridview avec l’événement CellClick, si la cellule est vide alors j'ouvre l'openfiledialog sinon je lance le fichier. J'ai également pensé à rajouter au clic droit la possibilité de changer le lien actif.

    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
     
    Private Sub LienpdfDataGridView_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles LienpdfDataGridView.CellClick
     
            If e.ColumnIndex = 4 Then
     
                Dim ValLien As Object = LienpdfDataGridView.CurrentRow.Cells(4).Value
     
                If ValLien IsNot DBNull.Value And ValLien IsNot Nothing Then
                    Process.Start(LienpdfDataGridView.CurrentRow.Cells(4).Value)
                Else
                    Dim opf As New OpenFileDialog
                    opf.Filter = "Choisir un fichier (*.pdf|*.pdf"
     
                    If opf.ShowDialog = DialogResult.OK Then
                        LienpdfDataGridView.CurrentRow.Cells(4).Value = opf.FileName
                    End If
     
                End If
            End If
     
        End Sub
    Effectivement j'arrive a mémoriser les couleurs des lignes , d'une cellule ,d'un élément mais je n'arrive pas a mémoriser 2 ou 3 couleurs différentes sur une ligne. Je reste sur le fait que ça doit pas être le moment... Mon chemin m'y amènera en temps voulu mais en tout cas je pense que je suis sur la bonne voie, je m'amuse.
    Merci.

  6. #66
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Pour ce qui est Try, que tu peux effectivement en mettre partout mais ils "ralentissent" un peu le code contrôlé.
    Personnellement, je les utilise là où mon algorithme de contrôle serait trop "lourd", sinon je préfère coder moi-même le contrôle.
    Par exemple, une division pas zéro donne une erreur (généralement) ou quelque chose comme ±infini. Il faut donc contrôler la valeur d'un diviseur ou le résultat de la division.
    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Resutat As Single
    Dim Diviseur As Single
    '................
    Try
        Resultat = 123456.123 / Diviseur
    Catch
        MessageBox.Show "Erreur ... blabla ... "
        Exit Sub
    End Try
    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Resutat As Single
    Dim Diviseur As Single
    '................
    If Diviseur <> 0 then
        Resultat = 123456.123 / Diviseur
    Else
        MessageBox.Show "Erreur ... blabla ... "
        Exit Sub
    End IF
    Dans cet exemple où l'algorithme de contrôle est simple, mieux vaut éviter le Try.

  7. #67
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Août 2018
    Messages : 34
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse , je vais modifier selon le cas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. [XL-2007] Copie d'image dans une cellule vers une cellule d'une autre feuille
    Par natsamfa dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2017, 21h27
  2. Réponses: 2
    Dernier message: 29/07/2016, 16h49
  3. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  4. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  5. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59

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