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 :

Bouton pour supprimer des éléments de l'interface


Sujet :

PyQt Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Bouton pour supprimer des éléments de l'interface
    Salut,

    Je me suis mis à Python y'a peu (depuis le début du mois) pour faire 1 ou 2 petits programmes dont je peux avoir besoin pour le boulot.
    Pour le moment je bosse sur le premier programme, un petit utilitaire pour créer un fichier de batch (fichier qui lance des simulations de fluides en mode -nogui )

    Jusque là j'ai réussi à bien avancer et à trouver des réponses aux problèmes que j'ai eu, merci Google , mais là je trouve pas (surtout que je sais pas vraiment comment formuler ma recherche).

    Comme je ne sais pas à l'avance combien je vais avoir de simulations à lancer j'ai besoin d'une interface "dynamique".
    Pour chaque simulation j'ai besoin de quelques paramètres ( chemin du fichier, range si besoin, etc... ), pour ça j'ai donc fait une groupbox dans laquelle se trouve tous les éléments dont j'ai besoin.
    J'ai un bouton qui créer une nouvelle groupbox et l'ajoute dans l'interface, jusque là ça marche.
    Par contre je voudrais avoir un bouton pour supprimer une groupbox si besoin, le problème c'est que ma groupbox est définie dans un autre fichier .py

    La question est comment faire en sorte qu'à chaque fois que je crée ma groupbox, elle et les éléments qu'elle contient soient uniques ( avec un nom unique ) et pour qu'ensuite mon bouton supprime bien la groupbox correspondante ?

    J'ai peur que l'explication soit un peu confuse , du coup, et aussi pour travailler sur mon code sans détruite tout ce qui fonctionne, j'ai fait une version simplifiée de mon problème.
    Une interface avec un bouton "Add", à chaque fois que je clique sur "Add" je crée un QLineEdit et un bouton "-"
    Ce que je voudrais c'est que le bouton "-" supprime le "LineEdit" correspondant, pour le moment j'arrive uniquement à supprimer le dernier créé.

    voilà le code des 2 fichiers, sans la fonction delete ( comme je débute le code est très certainement merdique )

    Fichier Main.py :
    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
    # -*- coding: utf-8 -*-
     
    from PyQt5 import QtCore, QtGui, QtWidgets
    from Mon_Module import *
     
    class Ui_Mon_Interface(object):
    	def setupUi(self, Mon_Interface):
    		Mon_Interface.setObjectName("Mon_Interface")
    		Mon_Interface.setWindowTitle("Test")
    		Mon_Interface.resize(450, 250)
     
    		self.Layout_Zone = QFormLayout()
     
    		self.Add_Btn = QtWidgets.QPushButton(Mon_Interface)
    		self.Add_Btn.setObjectName("Add_Btn")
    		self.Add_Btn.setText("Add")
     
    		self.Widget_Affichage = QtWidgets.QWidget(Mon_Interface)
    		self.Widget_Affichage.setObjectName("Widget_Affichage")
    		self.Widget_Affichage.setGeometry(QtCore.QRect(30,30,250,200))
    		self.Widget_Affichage.setMaximumSize(250,450)
    		self.Widget_Affichage.setAutoFillBackground(True)				
    		self.Widget_Affichage.setLayout(self.Layout_Zone)
     
    		self.Add_Btn.clicked.connect(self.addMonModule)
     
    	def addMonModule(self):
    		self.Layout_Zone.addRow(My_Module())
    		new_widget_size = (self.Widget_Affichage.height()) + 25
    		self.Widget_Affichage.setGeometry(QtCore.QRect(30,30,250,new_widget_size))
     
    if __name__ == "__main__":
    	import sys
    	app = QtWidgets.QApplication(sys.argv)
    	Mon_Interface = QtWidgets.QDialog()
    	ui = Ui_Mon_Interface()
    	ui.setupUi(Mon_Interface)
    	Mon_Interface.show()
    	sys.exit(app.exec_())
    fichier Mon_Module.py ( LineEdit et bouton "-" ):

    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
    # -*- coding: utf-8 -*-
     
    from PyQt5 import QtCore, QtGui
    from PyQt5.QtWidgets import *
     
    increment = 0
     
    class My_Module(QWidget):
    	def __init__(self, parent = None):
    		super(My_Module, self).__init__(parent)
     
    		global increment
     
    		self.lineEdit = QLineEdit()
    		self.lineEdit.setGeometry(QtCore.QRect(40, 70, 320, 25))
    		self.lineEdit.setObjectName("lineEdit"+str(increment))
    		self.lineEdit.setText("Bidule "+str(increment))
     
    		self.delete_btn = QPushButton()
    		self.delete_btn.setGeometry(QtCore.QRect(0,0,30,25))
    		self.delete_btn.setMinimumSize(QtCore.QSize(30, 25))
    		self.delete_btn.setMaximumSize(QtCore.QSize(30, 25))
    		self.delete_btn.setText("-")
     
    		increment +=1
     
    		layout = QHBoxLayout()
    		layout.addWidget(self.lineEdit)	
    		layout.addWidget(self.delete_btn)
    		self.setLayout(layout)
     
    		print(self.lineEdit.objectName())

    En espérant que vous puissiez m'aider
    Merci pour vos réponse

    Bye
    Ben

    P.S : Pour info j'utilise Python 3.3 et PyQt 5

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Il y a bien sur plusieurs solutions, je t'en montre une qui me parait simple et qui correspond à ton énoncé.

    Le bouton "Add" dans l'interface principale.
    Les group boxes dans une classe séparée
    Les boutons remove dans leur propre group box

    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
     
    # -*- coding: utf-8  -*-
     
    import sys
     
    from PyQt5 import QtGui, QtWidgets
     
    class Main(QtWidgets.QWidget):
        def __init__(self):
            super(Main, self).__init__()
            self.layout = QtWidgets.QVBoxLayout(self)
            self.title = QtWidgets.QLabel("Mes group boxes", self)
            self.layout.addWidget(self.title)
            self.add_btn = QtWidgets.QPushButton("Add", self)
            self.layout.addWidget(self.add_btn)
            self.add_btn.clicked.connect(self.add_group_box)
            self.boxes = []
     
        def add_group_box(self):
            new = GroupBox(len(self.boxes), self)
            self.layout.addWidget(new)
            self.boxes.append(new)
     
        def remove_box(self, box):
            inst = self.boxes[box]
            self.layout.removeWidget(inst)
            self.boxes.remove(inst)
            inst.setParent(None)
     
     
    class GroupBox(QtWidgets.QGroupBox):
        def __init__(self, idx, parent=None):
            super(GroupBox, self).__init__(parent)
            self.index = idx
            self.setTitle('My box %s' % idx)
            self.layout = QtWidgets.QVBoxLayout(self)
            self.remove_btn = QtWidgets.QPushButton("Remove", self)
            self.layout.addWidget(self.remove_btn)
            self.remove_btn.clicked.connect(self.remove_me)
     
        def remove_me(self):
            self.parent().remove_box(self.index)
     
    app = QtWidgets.QApplication([])
    main = Main()
    main.show()
    sys.exit(app.exec_())
    Conseil: efface tous les "setGeometry()" et utilise exclusivement les layouts.


    Edit: Remarque qu'il faudra un moyen moins simpliste d'indexer les groupBox que leur position dans la liste, quand on supprime une box autre que la dernière les indexes des suivantes ne correspondent plus. Ça je te laisse à titre d'exercice.

  3. #3
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Merci pour ta réponse, ça m'apporte déjà pas mal de réponse..

    ça fonctionne presque, j'ai adapté ton code sur mes fichiers et j'ai un problème avec le layout, python cherche mon layout dans le fichier Mon_Module.py alors qu'il est définie dans le fichier Main.py, j'ai essayé un peu près toute les combinaisons possibles pour lui indiquer le bon "chemin" mais rien à faire il arrive pas à le trouver.

    Bye
    Ben

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    C'est à dire que dans mon exemple je les ai tous les deux appelés self.layout puisqu'ils sont dans des classes différentes.

    Ce qu'il faut comprendre c'est que le layout de la classe Main sert à aligner les widgets de l'interface dont les groupBox alors que le layout de la classe GroupBox ne sert qu'à aligner les widgets intérieur au dit groupBox.
    Donc tu ne devrais pas à devoir communiquer d'instance de layout d'une classe à l'autre.

    Lorsqu'une fenêtre commence à accumuler (et imbriquer) les layouts, en général, on utilise Qt Designer pour éviter de s'emmêler les pinceaux.

  5. #5
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'ai oublié de préciser que le problème vient du layout.removeWidget, dans ce cas là le layout correspond bien à mon layout "principal" normalement.

    (Pour la vraie interface j'ai fait ça avec QtDesigner )

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Ah ben non hein, ta fonction de remove doit aussi se trouver dans la classe Main.

    Ta classe GroupBox reçoit simplement référence de Main et lui demandera de procéder à sa suppression, la classe GroupBox ne se supprime pas elle-même.

  7. #7
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Oui c'est le cas, ma fonction remove est dans le Main, mais elle cherche le layout dans l'autre fichier, celui à partir duquel elle à été appellée ( le fichier Mon_Module.py dans ce cas-ci )

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Comment sais-tu qu'elle "cherche" l'autre layout ?

    Montre-nous cette fonction remove().

  9. #9
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    La fonction est la même que sur ton code, j'ai juste modifier les noms pour qu'ils correspondent à ce que j'ai dans mon fichier.

    Si je pense qu'elle "cherche" dans l'autre fichier c'est à cause du message d'erreur:

    AttributeError: 'My_Module' object has no attribute 'Layout_Zone'

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Je préfère que tu colles ici entre balises code ton script, ce que j'ai ressortis de ma corbeille ne me montre pas le problème, d'ailleurs il y avait toujours des global dans le deuxième script.

  11. #11
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Merci pour ton aide VinsS

    Je remet le code en entier

    Main.py :

    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
    # -*- coding: utf-8 -*-
     
    from PyQt5 import QtCore, QtGui, QtWidgets
    from Mon_Module import *
    import globals
    globals.init()
     
     
    class Ui_Mon_Interface(QWidget):
    	def setupUi(self, Mon_Interface):
    		Mon_Interface.setObjectName("Mon_Interface")
    		Mon_Interface.setWindowTitle("Test")
    		Mon_Interface.resize(450, 250)
     
    		self.Layout_Zone = QFormLayout()
     
    		self.Add_Btn = QtWidgets.QPushButton(Mon_Interface)
    		self.Add_Btn.setObjectName("Add_Btn")
    		self.Add_Btn.setText("Add")
     
    		self.Widget_Affichage = QtWidgets.QWidget(Mon_Interface)
    		self.Widget_Affichage.setObjectName("Widget_Affichage")
    		self.Widget_Affichage.setGeometry(QtCore.QRect(30,30,250,200))
    		self.Widget_Affichage.setMaximumSize(250,450)
    		self.Widget_Affichage.setAutoFillBackground(True)				
    		self.Widget_Affichage.setLayout(self.Layout_Zone)
     
    		self.Add_Btn.clicked.connect(self.addMonModule)
     
    	def addMonModule(self):
    		new = My_Module(len(globals.boxes), self)
    		self.Layout_Zone.addRow(new)
    		globals.boxes.append(new)
    		new_widget_size = (self.Widget_Affichage.height()) + 25
    		self.Widget_Affichage.setGeometry(QtCore.QRect(30,30,250,new_widget_size))
     
    	def remove_MonModule(self, box):
    		inst = globals.boxes[box]
    		self.Layout_Zone.removeWidget(inst)
    		self.globals.boxes.remove(inst)
    		inst.setParent(None)
     
    if __name__ == "__main__":
    	import sys
    	app = QtWidgets.QApplication(sys.argv)
    	Mon_Interface = QtWidgets.QDialog()
    	ui = Ui_Mon_Interface()
    	ui.setupUi(Mon_Interface)
    	Mon_Interface.show()
    	sys.exit(app.exec_())
    Mon_Module.py

    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
    # -*- coding: utf-8 -*-
     
    from PyQt5 import QtCore, QtGui
    from PyQt5.QtWidgets import *
    from Main import *
    import globals
    globals.init()
     
    increment = 0
     
    class My_Module(QWidget):
    	def __init__(self, idx, parent=None):
    		super(My_Module, self).__init__()
     
    		self.index = idx
    		global increment
     
    		self.lineEdit = QLineEdit()
    		self.lineEdit.setGeometry(QtCore.QRect(40, 70, 320, 25))
    		self.lineEdit.setObjectName("lineEdit"+str(increment))
    		self.lineEdit.setText("Bidule "+str(increment))
     
    		self.delete_btn = QPushButton()
    		self.delete_btn.setGeometry(QtCore.QRect(0,0,30,25))
    		self.delete_btn.setMinimumSize(QtCore.QSize(30, 25))
    		self.delete_btn.setMaximumSize(QtCore.QSize(30, 25))
    		self.delete_btn.setText("-")
     
    		increment +=1
     
    		layout = QHBoxLayout()
    		layout.addWidget(self.lineEdit)	
    		layout.addWidget(self.delete_btn)
    		self.setLayout(layout)
     
    		self.delete_btn.clicked.connect(self.remove_me)
     
    	def remove_me(self):
    		Ui_Mon_Interface.remove_MonModule(self, self.index)#c'est là qu'est le problème visiblement, ce code c'est juste un test, j'ai quasiment tout essayer
    le fichier globals c'est juste pour la liste boxes, j'avais une erreur sinon, c'est temporaire, comme tu l'a dit c'est pas idéal pour indexer mes élements, je verrais ça après.

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Ton groupBox ne sait pas ce que c'est que Ui_Mon_Interface, pour lui c'est son parent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	def remove_me(self):
    		self.parent().remove_MonModule(self.index)
    Je ne vois pas à quoi sert increment .

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    VinsS j'ai esoin de ton aide please, répond moi sur mon topic "Pointeur sur un objet "

    Merci d'avance

  14. #14
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Voilà l'erreur que j'obtient avec ce code quand je clique sur le bouton pour supprimer:

    Traceback (most recent call last):
    File "...\Mon_Module.py", line 42, in remove_me
    self.parent().remove_MonModule(self.index)
    AttributeError: 'QWidget' object has no attribute 'remove_MonModule'

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Il ne voit pas la même instance, tu as omis de lui passer le parent en question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class My_Module(QWidget):
    	def __init__(self, idx, parent=None):
    		super(My_Module, self).__init__(parent)

  16. #16
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Désolé mais j'ai du mal à comprendre comment lui passer le bon parent, pour le moment je me retrouve avec la même erreur qu'avant.

    Merci pour ton aide VinsS

    Bye
    Ben

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Lorsque tu crées un module tu lui passes une référence de ta classe principale.

    Du moins dans la dernière version de ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		new = My_Module(len(globals.boxes), self)
    Alors pour lever toute ambiguité, procède ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class My_Module(QWidget):
        def __init__(self, idx, parent=None):
            super(My_Module, self).__init__(parent)
            self.ui = parent
            ...
    
        def remove_me(self):
            self.ui.remove_MonModule(self.index)
    Ce qui est en caractère gras représente toujours la même chose; ta classe Ui_Mon_Interface.


    Note: J'utilise 4 espaces pour l'indentation.

  18. #18
    Candidat au Club
    Homme Profil pro
    Infographiste 3D
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Infographiste 3D

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Super ça fonctionne, je vais pouvoir finir mon projet rapidement, merci pour ton aide.

    Bye
    Ben

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

Discussions similaires

  1. [XL-2003] Macro pour supprimer des boutons sauf le premier
    Par Un Internaute dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2014, 16h46
  2. [AC-2007] Bouton pour supprimer des enregistrements
    Par pikamo dans le forum IHM
    Réponses: 5
    Dernier message: 10/01/2012, 20h17
  3. Supprimé des éléments vide d'un tableau
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2005, 19h40
  4. Utiliser awk pour supprimer des retours charrios
    Par tomsoyer dans le forum Linux
    Réponses: 3
    Dernier message: 03/01/2005, 18h27
  5. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26

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