SOS remplissage de Listview et TextBox [Résolu/Fermé]

cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 4 juil. 2009 à 10:59 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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
Afficher la suite 

13 réponses

PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 4 juil. 2009 à 12:17
+3
Utile
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%" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 4 juil. 2009 à 13:12
+3
Utile
Merci pour ton aide PCPT, je vais appliquer voir ce que ça va donner, je te ferai signe après.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_yabross
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 4 juil. 2009 à 15:13
+3
Utile
(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%" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 4 juil. 2009 à 17:07
+3
Utile
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%" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 4 juil. 2009 à 14:34
0
Utile
jai regler comme tu as fais mais ça trouve une erreur à ce niveau :
 Call AppendLineToLV(Me.ListView1, TxtNom.Text, TxtPrenom.Text, TxtProfession.Text)
Commenter la réponse de cs_yabross
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 4 juil. 2009 à 14:58
0
Utile
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
Commenter la réponse de cs_yabross
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 4 juil. 2009 à 16:16
0
Utile
ok merci pour ton aide, je vais vous derranger un peu, quelle est la procédure pour ne pas l'appeler, merci
Commenter la réponse de cs_yabross
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 4 juil. 2009 à 17:13
0
Utile
ç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.
Commenter la réponse de cs_yabross
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 4 juil. 2009 à 17:59
0
Utile
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
Commenter la réponse de PCPT
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 6 juil. 2009 à 11:33
0
Utile
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
Commenter la réponse de cs_yabross
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 6 juil. 2009 à 11:47
0
Utile
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!
Commenter la réponse de PCPT
cs_yabross 58 Messages postés mercredi 23 juillet 2008Date d'inscription 23 juin 2016 Dernière intervention - 6 juil. 2009 à 12:44
0
Utile
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
Commenter la réponse de cs_yabross
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 6 juil. 2009 à 12:51
0
Utile
http://www.vbfrance.com/forum/sujet-ENREGISTRER-LISTVIEW-TOUJOURS_1334413.aspx

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

clos
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.