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

PyQt Python Discussion :

Récupérer les valeurs des cellules avec QWidget.TabFocus et QWidget.ClickFocus [QtCore]


Sujet :

PyQt Python

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    Salut
    ok , et merci
    Citation Envoyé par tyrtamos Voir le message
    Tu n'as toujours pas dis ce que tu voulais que ça fasse (voir mon message #13).
    je t'avais répondu (message :15)
    je voudrais récupérer le contenu de la cellule à chaque fois que je clique sur la cellule suivante (en utilisant les flèches , tabulation ou la souris ) , j'ai des listes déroulantes dans mes cellules .
    j'ai testé ton code ça marche pour les QComboBox
    mais le souci pour récupérer la valeur de la dernière cellule on est obligé de ré-cliquer sur une autre cellule du tableau
    NB:même quand on change une liste déroulante avec les flèche (flèche basse) ça tourne . les flèches haute ne fonctionnent pas comme il faut ...
    aussi si on se déplace en utilisant la tabulation ça fonctionne
    je ne vois rien dans le code qui permet de faire ça , je pense que c'est par défaut il prend en compte la tabulation et les flèches , qu'en pense tu de ça ??!!!

  2. #22
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par nancy maman Voir le message
    mais le souci pour récupérer la valeur de la dernière cellule on est obligé de ré-cliquer sur une autre cellule du tableau
    Quand on est à la dernière cellule (en bas à droite), il suffit de faire encore tab pour se retrouver en haut à gauche, en ayant en même temps récupéré la valeur de la dernière cellule.

    Ce qui veut dire: pour récupérer la totalité du tableau avec tab, on part de n'importe quelle case (celle en haut à gauche par exemple), et on fait autant de fois tab qu'il faut pour revenir à cette même case (et pas seulement celle d'avant).

    Citation Envoyé par nancy maman Voir le message
    NB:même quand on change une liste déroulante avec les flèche (flèche basse) ça tourne . les flèches haute ne fonctionnent pas comme il faut ...
    aussi si on se déplace en utilisant la tabulation ça fonctionne
    je ne vois rien dans le code qui permet de faire ça , je pense que c'est par défaut il prend en compte la tabulation et les flèches , qu'en pense tu de ça ??!!!
    Comme je l'ai dit:

    - Les flèches haute et basse sur un combobox servent à modifier la valeur affichée du combobox en navigant dans sa liste.

    - les flèches gauche et droite sont utilisées par l'éditeur de ligne, dès qu'on veut rentrer une nouvelle valeur dans une case normale (non-combobox).

    De ce fait, les flèches ne sont pas une bonne solution pour naviguer dans le tableau.

    Alors que les touches tab ou maj-tab font aller sur la case suivante ou précédente pour n'importe quelle case (case normale ou combobox), qu'elle soit on non en mode édition, et en récupérant ici la valeur affichée .

    Tyrtamos

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Quand on est à la dernière cellule (en bas à droite), il suffit de faire encore tab pour se retrouver en haut à gauche, en ayant en même temps récupéré la valeur de la dernière cellule.
    merci
    oui mais rien ne nous confirme qu'il clique encore sur tab .
    dans ce que cas l'utilisateur n'a que ré-cliquer sur une autre case pour valider ou sur tab pour la récupération de donnée de la dernière case , c'est vrais que ce n'est pas l'idéal mais bon , y a pas une autre solution .

  4. #24
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par nancy maman Voir le message
    c'est vrais que ce n'est pas l'idéal mais bon , y a pas une autre solution .
    Peux-tu décrire précisément une solution idéale pour toi? On est sur la dernière case, et on a donc saisi l'avant dernière valeur au dernier tab: tu souhaites quoi?

    Tyrtamos

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    en arrivant à la dernière case l'utilisateur doit valider l'ensemble des informations , donc il dispose d'un bouton , vu que c'est la dernière case donc :
    je vois que j'ai deux choix que je vais tester :
    choix 1: obliger l’utilisateur via un message d'alerte de cliquer sur une autre case ou sur la touche Entrée pour récupérer la valeur de la dernière cellule.
    choix 2: quand il clique sur le bouton de validation on récupère en même temps la valeur de la dernière cellule
    j'ai testé le choix 2 : j'ai ajouté ce code (tableau deux ligne et deux colonnes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a=self.table.item(1,1)
    print a.data(0).toString()
    en le testant j'ai cette erreur :
    print a.data(0).toString()
    AttributeError: 'NoneType' object has no attribute 'data'

  6. #26
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Il y a une solution très simple: modifier la méthode saisieval exécutée à chaque changement de case, pour qu'elle renvoie 2 valeurs au lieu d'une à la dernière case :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        def saisieval(self, row, col, row0, col0):
            """Méthode lancée à chaque changement de case du tableau
               row, col = coordonnées de la nouvelle case
               row0, col0 = coordonnées de l'ancienne case
            """
            val = prendcase(self.tableWidget, row0, col0)
            if row==self.tableWidget.rowCount()-1 and col==self.tableWidget.columnCount()-1:
                val = val + u"," + prendcase(self.tableWidget, row, col)
            self.lineEdit.setText(val)
    Puisque dans cette méthode on a la case précédente: [row0, col0] et la nouvelle [row, col], on peut tester si la nouvelle case est la dernière. Auquel cas, on renvoie les 2 contenus, séparés par exemple par une virgule (ou n'importe quoi d'autre).

    Le programme qui exploite les résultats devra, bien sûr, tester la présence de 2 valeurs par la virgule, et séparer les 2 valeurs avec un .split(',').

    A noter que pour l'exemple je me suis contenté d'envoyer la valeur des cases dans un lineEdit, mais rien n'empêche de renvoyer un tuple composé de la valeur accompagnée de l'adresse de la case: (val, row, col).

    Ok?

    Tyrtamos

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    j'ai testé ton code , mais
    la partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = val + u"," + prendcase(self.tableWidget, row, col)
    renvoie : la valeur de la case avant dernière suivi de virgule seulement
    je n'ai pas toujours la valeur de la dernière case

  8. #28
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bizarre, chez moi, ça marche!

    Tu as bien quelque chose dans la dernière case (en bas à droite)? Cette case a pour adresse:

    row = self.tableWidget.rowCount()-1,
    col = self.tableWidget.columnCount()-1

    Cette case contient-elle un QTableWidgetItem ou un combobox?

    Tyrtamos

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    elle contient un QTableWidgetItem
    quand je lance le programme mes cases sont toutes vides , mais à chaque fois que je remplis une case et je me déplace vers la case suivante j'affiche le contenu de la case précédente ....
    le pb: quand je teste j'ai comme résultat les valeurs des cases (sauf la dernière) .... et j'ai la valeur de la case avant dernière suivi d'un virgule mais pour afficher la valeur de la dernière case il faut toujours faire un tab ou cliquer sur une autre case

  10. #30
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    J'ai un doute:

    - Tu es dans l'avant dernière case.
    - Tu fais tab => tu te retrouves donc dans la dernière case.

    => à ce moment précis, et sans avoir rien fait d'autre, qu'y a-t-il dans la dernière case?

    Tyrtamos

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    je suis à la case avant dernière : je saisi un mot Nancy par exemple
    je fais tab : je suis à la case dernière et en même temps je récupère le mot Nancy , à ce moment y a rien dans la dernière case (elle est vide) mais je commence à saisir dans la dernière case et quand je termine pour récupérer la valeur de la dernière case je dois faire tab encore

  12. #32
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par nancy maman Voir le message
    ...je commence à saisir dans la dernière case et quand je termine pour récupérer la valeur de la dernière case je dois faire tab encore
    Tu peux retirer la dernière modif du code (celui avec la virgule) qui n'est pas adaptée avec ton mode opératoire.

    Quand tu es à la dernière case, tu es dans le mode d'édition pour écrire du texte. Il faut bien que tu dises au programme quand tu as fini, afin de sortir du mode d'édition! Un tab, un maj-tab, une flèche haute ou basse une touche entrée ou un changement de case avec la souris font ça très bien. Mais seule la touche entrée te permet de sortir du mode édition sans changer de case.

    Alors, je te propose la solution suivante:

    Ajouter dans __init__ la connexion au signal 'itemChanged' qui lancera une méthode 'saisievalder':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('itemChanged(QTableWidgetItem *)'), self.saisievalder)
    Et ajouter la méthode saisievalder:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        def saisievalder(self, item):
            """méthode lancée à chaque changement de contenu en fin d'édition"""
            row = self.tableWidget.currentRow()
            col = self.tableWidget.currentColumn()
            if row==self.tableWidget.rowCount()-1 and col==self.tableWidget.columnCount()-1:
                val = prendcase(self.tableWidget, row, col)
                self.lineEdit.setText(val)
    Cette méthode récupèrera la valeur de la case à la sortie du mode d'édition, donc même avec la touche entrée (=> sans changement de case) et seulement:
    1- s'il y a un QTableWidgetItem (et pas autre chose: combobox, ...)
    2- si c'est la dernière case (la dernière en bas à droite)
    2- seulement quand il y a changement de contenu!

    J'insiste: s'il n'y a pas de changement de contenu de la dernière case, la touche entrée terminera bien le mode d'édition, mais ne permettra pas de récupérer la valeur de la case. La seule solution dans ce cas sera de changer de case (tab, maj-tab, ...)!

    J'ai cherché un signal qui serait émis dans tous les cas à la sortie du mode d'édition, mais je n'ai pas trouvé.

    Voilà le code complet:

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from __future__ import division
    # Python 2.7
     
    import sys
    from PyQt4 import QtCore, QtGui
     
    #############################################################################
    def prendcase(table, row, col):
        """Retourne la valeur de la case [row, col] de la table QTableWidget"""
        item = table.item(row, col)
        if item == None:
            # soit la case n'a jamais été initialisée, soit elle a un widget
            if issubclass(type(table.cellWidget(row,col)), QtGui.QComboBox):
                # c'est un combobox: renvoyer la valeur affichée
                item = table.cellWidget(row,col) 
                return unicode(item.currentText()) 
            # la case ne contient rien: renvoyer une chaine vide
            return u""
        else:
            return unicode(item.text())
     
    #############################################################################
    class Fenetre(QtGui.QWidget):
     
        # =======================================================================
        def __init__(self, parent=None):
            super(Fenetre, self).__init__(parent)
     
            # créer le lineEdit
            self.lineEdit = QtGui.QLineEdit(self)
     
            # créer le tableau
            self.tableWidget = QtGui.QTableWidget(self)
            self.tableWidget.setGeometry(QtCore.QRect(0, 30, 361, 301))
            self.nbrow, self.nbcol = 5, 3
            self.tableWidget.setRowCount(self.nbrow)
            self.tableWidget.setColumnCount(self.nbcol)
     
            # on met un combobox en [row=1, col=1]
            self.listecombo = ['toto', 'titi', 'tata', 'tutu']
            self.combo = QtGui.QComboBox()
            self.combo.addItems(self.listecombo)
            self.rowcombo, self.colcombo = 1, 1
            self.tableWidget.setCellWidget(self.rowcombo, self.colcombo, self.combo)
     
            # lancera la méthode saisieval à chaque changement de case
            QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('currentCellChanged(int,int,int,int)'), self.saisieval)
     
            # lancera la méthode saisievalder à chaque changement de contenu de case
            QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('itemChanged(QTableWidgetItem *)'), self.saisievalder)
     
            # mettre le focus sur la case [0,0] du tableau
            self.tableWidget.setFocus()
            self.tableWidget.setCurrentCell(0, 0)
     
        # =======================================================================
        def saisieval(self, row, col, row0, col0):
            """Méthode lancée à chaque changement de case du tableau
               row, col = coordonnées de la nouvelle case
               row0, col0 = coordonnées de l'ancienne case
            """
            val = prendcase(self.tableWidget, row0, col0)
            self.lineEdit.setText(val)
     
        # =======================================================================
        def saisievalder(self, item):
            """méthode lancée à chaque changement de contenu en fin d'édition"""
            row = self.tableWidget.currentRow()
            col = self.tableWidget.currentColumn()
            if row==self.tableWidget.rowCount()-1 and col==self.tableWidget.columnCount()-1:
                val = prendcase(self.tableWidget, row, col)
                self.lineEdit.setText(val)
     
    #############################################################################
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        fen = Fenetre()
        fen.show()
        sys.exit(app.exec_())
    Regarde si ça marche dans tous les cas de ton mode opératoire.

    Tyrtamos

  13. #33
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    j'ai testé ton code j'ai juste une simple remarque
    quand on valide la dernière case avec la touche entrée on a résultat1 pour le test 1
    et quand on valide la dernière case avec tab , on a resultat 2 pour le test 2
    on remarque que la validation avec tab affiche 2 fois le contenu de la dernière case
    voici le code qu'ai j'ai tout petit peu modifié , tu pourra le tester :
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from __future__ import division
    # Python 2.7
     
    import sys
    from PyQt4 import QtCore, QtGui
     
    #############################################################################
    def prendcase(table, row, col):
        """Retourne la valeur de la case [row, col] de la table QTableWidget"""
        item = table.item(row, col)
        if item == None:
            # soit la case n'a jamais �t� initialis�e, soit elle a un widget
            if issubclass(type(table.cellWidget(row,col)), QtGui.QComboBox):
                # c'est un combobox: renvoyer la valeur affich�e
                item = table.cellWidget(row,col) 
                return unicode(item.currentText()) 
            # la case ne contient rien: renvoyer une chaine vide
            return u""
        else:
            return unicode(item.text())
     
    #############################################################################
    class Fenetre(QtGui.QWidget):
     
        # =======================================================================
        def __init__(self, parent=None):
            super(Fenetre, self).__init__(parent)
     
            # cr�er le lineEdit
            #self.lineEdit = QtGui.QLineEdit(self)
     
            # cr�er le tableau
            self.tableWidget = QtGui.QTableWidget(self)
            self.tableWidget.setGeometry(QtCore.QRect(0, 30, 361, 301))
            self.nbrow, self.nbcol = 3, 3
            self.tableWidget.setRowCount(self.nbrow)
            self.tableWidget.setColumnCount(self.nbcol)
     
            # on met un combobox en [row=1, col=1]
            self.listecombo = ['toto', 'titi', 'tata', 'tutu']
            self.combo = QtGui.QComboBox()
            self.combo.addItems(self.listecombo)
            self.rowcombo, self.colcombo = 1, 1
            self.tableWidget.setCellWidget(self.rowcombo, self.colcombo, self.combo)
     
            # lancera la m�thode saisieval � chaque changement de case
            QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('currentCellChanged(int,int,int,int)'), self.saisieval)
     
            # lancera la m�thode saisievalder � chaque changement de contenu de case
            QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL('itemChanged(QTableWidgetItem *)'), self.saisievalder)
     
            # mettre le focus sur la case [0,0] du tableau
            self.tableWidget.setFocus()
            self.tableWidget.setCurrentCell(0, 0)
     
        # =======================================================================
        def saisieval(self, row, col, row0, col0):
            """M�thode lanc�e � chaque changement de case du tableau
               row, col = coordonn�es de la nouvelle case
               row0, col0 = coordonn�es de l'ancienne case
            """
            val = prendcase(self.tableWidget, row0, col0)
            print val
            #self.lineEdit.setText(val)
     
        # =======================================================================
        def saisievalder(self, item):
            """m�thode lanc�e � chaque changement de contenu en fin d'�dition"""
            row = self.tableWidget.currentRow()
            col = self.tableWidget.currentColumn()
            if row==self.tableWidget.rowCount()-1 and col==self.tableWidget.columnCount()-1:
                val = prendcase(self.tableWidget, row, col)
                print val
                #self.lineEdit.setText(val)
     
    #############################################################################
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        fen = Fenetre()
        fen.show()
        sys.exit(app.exec_())
    ci joint les images test 1 ,resultat 1 , test 2 et resultat 2 .
    Images attachées Images attachées     

  14. #34
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 278
    Points
    9 278
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Effectivement, le signal de changement de case déclenche aussi le signal de changement de valeur lorsqu'il y en a un! D'où les 2 affichages identiques pour la dernière case.

    Je ne vois pas comment éviter cela.

    La seule manip qui marche dans tous les cas, c'est: tab et maj-tab. Je n'ai rien trouvé qui permette de traiter spécialement la dernière case sans inconvénient.

    Tyrtamos

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    merci à toi et à ta disponibilité.
    la solution de tab est bonne mais le souci avec le dernier case ce que on peut pas s'assurer que l'utilisateur va faire un tab en arrivant à la fin du tableau !
    du coup l'idée que je vais essayer d’implémenter c'est de forcer l’utilisateur de faire un tab en arrivant à la dernière case peut être via un message d'alerte.
    si on peut par exemple désactiver le bouton de validation du tableau et l’activer quand l'utilisateur arrive à la dernière case et faire un tab .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/11/2013, 15h16
  2. [XL-2003] Garder uniquement les valeurs des cellules avec PasteSpecial et With Worksheets
    Par tibs1502 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2013, 14h57
  3. Réponses: 3
    Dernier message: 10/05/2012, 20h31
  4. Réponses: 6
    Dernier message: 21/12/2009, 11h08
  5. Réponses: 2
    Dernier message: 10/02/2009, 16h03

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