cs_yabross
Messages postés57Date d'inscriptionmercredi 23 juillet 2008StatutMembreDernière intervention23 juin 2016
-
4 juil. 2009 à 10:59
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
6 juil. 2009 à 12:51
Slt tout le monde, je suis debutant en programmantion, j'aimerai que vous m'aidiez à resoudre mon code inachever, je n'arrive pas à faire le code qui peut remplir le listview, je veux que lorsque je saisie dans mes texbox que le text sort au niveau de ma listview, la colonne1 NOM pour texbox1, la colonne2 PRENOM pour texbox2, la colonne3 PROFESSION pour texbox3, aidez moi SVP, merci
Voici mon code:
Private Sub CmdAjouter_Click()
' Remplissage du listview
End Sub
Private Sub CmdQuitter_Click()
Unload Me
End Sub
Private Sub Form_Initialize()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Form_Load()
Dim i As Long
' Sélection du mode détaillé
Me.ListView1.View = lvwReport
' Création des colonnes
Me.ListView1.ColumnHeaders.Add 1, , "NOM"
Me.ListView1.ColumnHeaders.Add 2, , "PRENOM"
Me.ListView1.ColumnHeaders.Add 3, , "PROFESSION"
End Sub
Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 4 juil. 2009 à 12:17
salut,
çà m'étonne que le forum ne contienne pas déjà ce genre de sujet...
as-tu regardé?
il y sera dans ce cas :
Option Explicit
Private Sub
Form_Load()
With ListView1
.View = lvwReport
.ColumnHeaders.Add 1, , "NOM"
.ColumnHeaders.Add 2, , "PRENOM"
.ColumnHeaders.Add 3, , "PROFESSION"
.GridLines = True
End With
End Sub
Private Sub CmdAjouter_Click()
Call AppendLineToLV(Me.ListView1, TxtNom.Text, TxtPrenom.Text,
TxtProfession.Text)
End Sub
Sub AppendLineToLV(ByRef LV As ListView, ParamArray vasValues() As Variant)
If (LV.ColumnHeaders.Count > 0) And
(Not UBound(vasValues) = -1) Then
Dim LI As ListItem
Dim i As Integer
LV.ListItems.Add , , vasValues(0)
Set LI = LV.ListItems.Item(LV.ListItems.Count)
For i = 1 To UBound(vasValues)
If i = LV.ColumnHeaders.Count
Then Exit For
LI.SubItems(i) = vasValues(i)
Next i
Set LI = Nothing
End If
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 4 juil. 2009 à 15:13
(ne valide pas toutes les réponses, uniquement celles qui apportent la ou les solutions)
tu avais une erreur parce que j'ai nommé les textboxes
un peu de lecture s'impose, il ne suffit pas de copier/coller
idem pour l'utilisation de
AppendLineToLV
.
comme tu le vois c'est une procédure générique, qui accepte 0 ou plusieurs arguments, pas juste 3 comme tu en avais besoin
à partir du moment où on utilise une procédure qui attend certains paramètres, il faut l'appeler correctement
donc ici c'est à toi de ne PAS appeler la procédure si tes zones sont vides
cs_yabross
Messages postés57Date d'inscriptionmercredi 23 juillet 2008StatutMembreDernière intervention23 juin 2016 4 juil. 2009 à 14:58
Slt merci pour ton aide ça marche corectement mais quand mes texbox sont vide et que je click sur la command ajouter, il m'ajoute des ligne vide, je ne veux pas qu'il ait des ligne vide au niveau de ma Listview, Svp aidez moi, merci pour tout
cs_yabross
Messages postés57Date d'inscriptionmercredi 23 juillet 2008StatutMembreDernière intervention23 juin 2016 4 juil. 2009 à 17:13
ça marche Merci Bcp, mon probleme est que je fais du Auto-Formation depuis que j'ai commencer ma programmation, j'ai jamais eu de formateur à part les gentils Homme comme vous qui m'aident quand je me bloque avec mon code, merci.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 4 juil. 2009 à 17:59
autoformation, y'a auto dedans...
faire ou au moins penser au IF quand on veut faire une action selon une condition, çà fait parti du B-A-BA
en un an tu as surement eu le temps de lire plusieurs sources, çà m'étonnerait qu'aucune d'entre elles n'ait jamais mentionné le IF ni le test de variable
avec ou sans formateur, il y a une recherche (réflexion) personnelle à faire, pour progresser
bon courage
cs_yabross
Messages postés57Date d'inscriptionmercredi 23 juillet 2008StatutMembreDernière intervention23 juin 2016 6 juil. 2009 à 11:33
Slt, excusez moi pour le dérangement mais il me reste un truc pour terminer mon petit projet, une commande enregistrer pour enregistrer les données que j'ai saisie au niveau de ma listview. Quand je saisie il reste dans ma listview mais lorsque je ferme mon formulaire et que je le relance me listview est vide il ya aucun donnée, merci
cs_yabross
Messages postés57Date d'inscriptionmercredi 23 juillet 2008StatutMembreDernière intervention23 juin 2016 6 juil. 2009 à 12:44
Voici mon code:
Private Sub CmdAjouter_Click()
'J'oblige l'utilisateur à saisir du text dans les TexBox
If ((Len(Trim$(TxtNom.Text)) > 0) And (Len(Trim$(TxtPrenom.Text)) > 0) _
And (Len(Trim$(TxtProfession.Text)) > 0)) Then
' Appelle de saisie
Call AppendLineToLV(Me.ListView1, TxtNom.Text, TxtPrenom.Text, TxtProfession.Text)
Else
'Si aucun text n'est saisie, ce message apparait
MsgBox "Une ou plusieurs zones ne sont pas remplies"
End If
'Effacer les TextBox
TxtNom.Text = ""
TxtPrenom.Text = ""
TxtProfession.Text = ""
TxtNom.SetFocus
End Sub
Private Sub CmdEnregistrer_Click()
'je sauvegarde mes données saisies sur ma Listview, je veux qu'il restent pour toujours
End Sub
Private Sub Form_Load()
With ListView1
.View = lvwReport
.ColumnHeaders.Add 1, , "NOM"
.ColumnHeaders.Add 2, , "PRENOM"
.ColumnHeaders.Add 3, , "PROFESSION"
.GridLines = True
End With
End Sub
Sub AppendLineToLV(ByRef LV As ListView, ParamArray vasValues() As Variant)
If (LV.ColumnHeaders.Count > 0) And (Not UBound(vasValues) = -1) Then
Dim LI As ListItem
Dim i As Integer
LV.ListItems.Add , , vasValues(0)
Set LI = LV.ListItems.Item(LV.ListItems.Count)
For i = 1 To UBound(vasValues)
If i = LV.ColumnHeaders.Count Then Exit For
LI.SubItems(i) = vasValues(i)
Next i
Set LI = Nothing
End If
End Sub