SOS remplissage de Listview et TextBox

Résolu/Fermé
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 juin 2016 - 4 juil. 2009 à 10:59
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Derniè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

Private Sub Text1_Change()
End Sub

Private Sub Text2_Change()
End Sub

Private Sub Text3_Change()
End Sub

13 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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





<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>






++

<hr size="2" width="100%" />
3
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 juin 2016
4 juil. 2009 à 13:12
Merci pour ton aide PCPT, je vais appliquer voir ce que ça va donner, je te ferai signe après.
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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

<hr size="2" width="100%" />
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2009 à 17:07
c'est vraiment de la demande de tout cuit du début à la fin !!!!



tu ne veux pas qu'une zone soit vide
donc SI PAS VIDE => appel

if (
(
len(trim$(

TxtNom.Text

))>0
) and
(
len(trim$(

TxtPrenom.Text

))>0
) and
(
len(trim$(

TxtProfession.Text

))>0
)
) then


Call 
AppendLineToLV(Me.ListView1, TxtNom.Text, TxtPrenom.Text, TxtProfession.Text)



else
msgbox "une ou plusieurs zones ne sont pas remplies"
endif

(saisi ici, tu devras vérifier que je ne me suis pas trompé au niveau des parenthèses)


<hr size="2" width="100%" />
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 juin 2016
4 juil. 2009 à 14:34
jai regler comme tu as fais mais ça trouve une erreur à ce niveau :
 Call AppendLineToLV(Me.ListView1, TxtNom.Text, TxtPrenom.Text, TxtProfession.Text)
0
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 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
0
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 juin 2016
4 juil. 2009 à 16:16
ok merci pour ton aide, je vais vous derranger un peu, quelle est la procédure pour ne pas l'appeler, merci
0
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 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.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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
0
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juil. 2009 à 11:47
et quel est ton code pour le moment?
quelles recherches as-tu fait?
AS-TU CHERCHé DANS LES SOURCES?

le forum ne sert pas à entre en contact avec des membres pour qu'ils fassent les recherches que tu n'as pas le courage de faire toi-même!
0
cs_yabross Messages postés 57 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 23 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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 juil. 2009 à 12:51
http://www.vbfrance.com/forum/sujet-ENREGISTRER-LISTVIEW-TOUJOURS_1334413.aspx

lis attentivement (et comprend) ce qui est écrit en rouge, merci

clos
0
Rejoignez-nous