Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2774 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Editer des cellules d'une listbox en VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Editer des cellules d'une listbox en VBA

n°1741191
Silarion
Posté le 04-06-2008 à 10:35:19  profilanswer
 

Bonjour,
 
Aucune piste, donc je viens vers vous pour tenter de trouver une sorte de bricolage qui me permette de modifier la valeur d'une "cellule" de la listbox.
 
Description :
J'ai une listbox avec 2 colonnes, et un bouton Ajouter
J'ai une feuille excel avec des données de ce genre :
ColonneG                          ColonneH
 
Nom de l'opération 1           140.554
Nom deux                         198.658
Nom 3 de l'opération           96
Huitième opération             303.4
 
Je clique sur l'opération qui m'intéresse dans la feuille Excel, puis sur le bouton Ajouter de mon userform. Ca m'ajoute le nom de l'opération dans la listbox colonne1 et le temps associé dans la listbox colonne2. Voici le code pour ajouter cette opération :
 

Code :
  1. Private Sub btnAjouter_Click()
  2. Dim R As Integer, temp As String, val As String
  3.     ListBox1.ColumnCount = 2                'Initialisation de la listbox
  4.     ListBox1.ColumnWidths = "10 cm;2 cm"
  5.    
  6.     R = ActiveCell.Row                      'Garde en mémoire la ligne qui m'intéresse
  7.     If Cells(R, 7) = "" Then Exit Sub
  8.     ListBox1.AddItem Cells(R, 7).Value     'Ajout dans la listbox colonne 1 la valeur de la cellule active
  9.     ListBox1.List(ListBox1.ListCount - 1, 1) = Replace(Cells(R, 8).Value, ",", "." )          'Ajout dans la listbox colonne 2, la cellule à droite de ma cellule active.
  10. End Sub


 
Idéalement :
ce que je voudrais, c'est de pouvoir éditer certaines valeurs de la listbox (on touche pas aux valeurs d'origine de la feuille excel)
Exple de valeurs de ma listbox :
Nom de l'opération 1           140.554
Nom 3 de l'opération           96
 
Exple de modif que je veux apporter dans la listbox :
Nom de l'opé1                 140
Nom 3 de l'opé                100
 
Par avance, merci à ceux qui consacreront du temps à ce post !


Message édité par Silarion le 04-06-2008 à 10:36:33
mood
Publicité
Posté le 04-06-2008 à 10:35:19  profilanswer
 

n°1741417
Silarion
Posté le 04-06-2008 à 15:22:16  profilanswer
 

Peut être une piste si ça peut faire rebondir un développeur. Je ne sais pas encore comment le programmer mais je vais réfléchir dessus.
 
1) Copier dans un textbox la ligne sélectionnée dans la listbox1.  (mais en le faisant pour les 2colonnes donc 2textbox)
2) List1.List(i-1) = textbox.value   '(Mais bon le souci c'est que j'ai deux colonnes ds la listbox)
 
Ou alors un truc du genre
1) Copier la ligne
2) Supprimer l'élément de liste avec list1.RemoveItem i-1
3) Modifier les valeurs (comment faire par contre ...)
4) Ajouter l'élément Modifié à la meme place avec un list1.AddItem élément,i-1

n°1741446
Silarion
Posté le 04-06-2008 à 15:58:09  profilanswer
 

J'ai trouvé à force d'essai, j'ai contourné le souci en faisant apparaitre un userform avec deux textbox hehe.
Je modifie les textbox et je mets à jour ma listbox sur l'autre userform.
 

Code :
  1. Private Sub btnEdit_Click()
  2. If ListBox1.ListCount >= 1 Then         'On s'assure que la listbox contient des lignes
  3.     If ListBox1.ListIndex = -1 Then     'Si aucune sélection, on choisit la dernière ligne
  4.         ListBox1.ListIndex = ListBox1.ListCount - 1
  5.     End If
  6. End If
  7.     UserForm2.TextBox1 = UserForm1.ListBox1.List(ListBox1.ListIndex, 0)
  8.     UserForm2.TextBox2 = UserForm1.ListBox1.List(ListBox1.ListIndex, 1)
  9.     UserForm2.Show
  10. End Sub
  11. Private Sub btnModifier_Click()
  12. UserForm1.ListBox1.List(UserForm1.ListBox1.ListIndex, 0) = UserForm2.TextBox1.Value
  13. UserForm1.ListBox1.List(UserForm1.ListBox1.ListIndex, 1) = UserForm2.TextBox2.Value
  14. UserForm2.Hide
  15. End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Editer des cellules d'une listbox en VBA

 

Sujets relatifs
deplacement des cellules d'un tableau mais est possibleVBA Excel - selection de valeurs distinctes
[VBA Excel] Separation Variables de GraphiquesOuvrir un fichier excel en VBA
Génération de rectangles par VBA sous ACCESS 2000[Word] fusion de cellules (vba)
[RESOLU] [VBA Excel] ajout dynamique de boutons dans une feuille excelSyntaxe VBA pour copie entre fichiers XL
Plus de sujets relatifs à : Editer des cellules d'une listbox en VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR