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 :

Calcule cellule datagridview


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut Calcule cellule datagridview
    Bonjour, pour mon programme je doit faire un système de recherche de cellule d'une datagridview.

    En sachant que j'ai 18 colonnes et 1667 lignes par page soit 30006 cellules par page (18*1667).

    En réalité c'est plutôt un problème de calcule plutôt que de programmation. Par exemple si l'utilisateur veut se rendre à la cellule 5 la cellule numéro 5 de la ligne 1 doit être souligné.

    Si l'utilisateur veut se rendre à la cellule 20 là, c'est la cellule numéro 2 de la ligne 2 qui doit être souligné puisqu'il y à 18 cellules par ligne avec "20" on passe donc à la ligne 2 et la deuxième cellule (colonne) de cette ligne.

    Autre exemple, si l'utilisateur veut se rendre à la cellule 30008 je doit donc me rendre à la page 2, la ligne numéro 1 et souligner la cellule numéro 2 (puisque j'ai 30006 cellule total par page).

    Actuellement, pour trouver la bonne page avec la bonne ligne et la bonne cellule j'utilise une boucle (o = numéro de cellule, l la ligne et p la page) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
             While a <> val
                    o = o + 1
                    If (o = 19) Then
                        o = 1
                        l = l + 1
                    End If
                    If (l > 1666) Then
                        p = p + 1
                        o = 1
                        l = 0
                    End If
     
                    a = a + 1
                End While
    Le code fonctionne bien mais si l'utilisateur veux se rendre à la cellule 25 654 198 458 vous comprendrez que le temps que la boucle While se termine on a le temps de lire son journal et de boire un café

    Je doit être bête puisque je ne trouve pas de calcule pour trouver directement la page, la ligne et le numéro de cellule de cette ligne à souligner

    Si une personne bonne en calcule pouvez m'aider je serrais ravis

  2. #2
    Invité de passage
    Inscrit en
    Mai 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1
    Par défaut
    salut Guyome41
    le calcul que tu cherche est celui d'un ploynome il faut un tout petit peu de math
    Dim x As Integer
    If IsNumeric(TextBox1.Text) Then
    x = Int(TextBox1.Text) - 1
    TextBox2.Text = (x \ (18 * 1667)) + 1 'Page
    TextBox3.Text = (x Mod 18) + 1 ' Colonne
    TextBox4.Text = ((x Mod (18 * 1667)) \ 18) + 1 ' ligne
    essaye c'est le resultat que chrche

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

Discussions similaires

  1. Problème de conversion type de cellule (DataGridView)
    Par ColDay dans le forum Windows Forms
    Réponses: 6
    Dernier message: 18/02/2010, 17h28
  2. lecture cellule datagridview
    Par lao.patrick dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/09/2009, 00h16
  3. héberger des contrôles dans des cellules DataGridView Windows Forms
    Par abdallah2007 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 29/07/2009, 19h53
  4. Réponses: 4
    Dernier message: 17/12/2007, 12h10
  5. [VB.net] Test de cellules DataGridView
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/04/2006, 16h22

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