Cube76
Messages postés11Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 mars 2005
-
23 mars 2005 à 16:50
Cube76
Messages postés11Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 mars 2005
-
25 mars 2005 à 17:49
Bonjour tout le monde,
je vous propose de m'aider à résoudre ce mystère.
J'ai une listview dans laquelle je souhaite afficher un historique d'actions.
Cet historique est stocké dans un fichier Excel.
Pendant l'utilisation, l'utilisateur commence par séléctionner une ville dans une combo, VB va alors chercher le fichier Excel qui correspond à cette ville et le charge dans la listview en respectant les lignes et collones, le tout en classant de facon chronologique(jusque là tout va bien).
Ensuite, l'utilisateur décide de passer à une autre ville qu'il sélectionne dans la combo précédemment citée, VB s'éxécute et charge à nouveau correctement l'historique spécifique à cette ville dans la listview.
Lorsque l'utilisateur choisi de supprimer une ligne dans la listview, il la sélectionne et par un clic droit la supprime, l'utilisateur clic alors sur un commandbutton pour mettre à jour le fichier excel (en l'ecrasant puis en copiant l'ensemble des infos contenu dans la listview après suppression). là encore tout va bien. en sélectionnant une autre ville après cette action de mise à jour, le fichier excel correspondant à cette ville et également bien chargé dans la listview.
A présent, l'utilisateur souhaite ajouter une entrée dans la listview (et donc dans le fichier excel), il remplit les champs nécessaires, clic sur le bouton mettre à jour, ce qui met correctement à jour la listview et le fichier excel correspondant (comme pour la suppression).L'utilisateur choisi une nouvelle ville dans la combobox et là mystère...
le chargement du fichier dans la listview à pour effet de n'afficher que la première ligne du fichier excel de manière complète, puis de ne remplir que la première colonne des lignes suivantes.
J'ai inséré des msgbox pour contrôler que chaque cellules du fichier excel était correctement récupérer et dans l'odre, c'est le cas. mais rien ne s'affiche pour autant.
J'ai constaté que lorsque je clic 2 fois sur le bouton "Mettre à jour", il ni a pas de problème.
Mais pour rentre l'utilisation moins ch...te, je ne voudrais avoir besoin de cliquer qu'une seule fois.
Si vous pouviez m'aider à résoudre ce mystère s'il vous plaît. j'espère avoir été assez clair et détaillé dans mon explication (au K ou n'hésitez pas à demander) je pe fournir le code également mais je préviens d'avance il y a très peu de commentaire mais comme la programmation est très basic...
Merci d'avance à toutes celles et ceux qui liront et répondront à ce message de détresse d'un débutant bientôt chauve.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 23 mars 2005 à 20:29
Salut, un bout de code (celui du remplissage qui ne fonctionne pas) aurait été plus parlant car là je ne vois pas, peut-être un problème d'index ou de boucle ? ou .... ?
Cube76
Messages postés11Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 mars 2005 24 mars 2005 à 08:48
Private Sub ComboSite_Click()
Dim rst As ADODB.Recordset
Dim cnx As ADODB.Connection
Dim exc As Excel.Application
Dim excline As Integer
Dim exccol As Integer
Dim excend As Integer
Dim contenu As String
Dim Fich As String
Dim i As Integer
Dim Moncritère As String
Set rst = New ADODB.Recordset
Set cnx = New ADODB.Connection
cnx.Provider = "Microsoft.Jet.Oledb.4.0"
cnx.ConnectionString = "[file://\\Serveur\ut \\Serveur\ut] serveur\PROPOSITIONS\PROSPECTION\SUIVI\MyDataBase.mdb"
cnx.Open
rst.Open "SELECT * FROM table1 WHERE NomSite =" + Moncritère, cnx
Do While Not rst.EOF
If (rst.Fields("NomContact").Value = "") Then
Combo2.Text = "N.C."
Else
Combo2.AddItem (rst.Fields("NomContact").Value)
Combo2.Text = Combo2.List(0)
End If
rst.MoveNext
Loop
Set exc = Excel.Application
' Chargement du fichier excel dans ListView1
On Error GoTo fin
exc.Workbooks.Open (Fich)
Je n'utilise ta méthode
ListView1.ListItems.Item(i).SubItems(j) ...
que pour récupérer ou modifier la valeur d'une des cellules déjà remplies.
Mais si ça marche comme ça ailleurs, .... ?
Visiblement, tu utilises des dropdown combo (type par défaut). Perso, je préfère le type dropdown list s'il n'y a pas besoin que l'utilisateur rajoute manuellement un item.
Les utilisations sont différentes, il faut voir. Les propriétés (comme text) et les évènements (comme change) ne sont pas utilisés de la même façon.
A part ça, comme je n'ai pas eu le temps de simuler ton code, je n'ai pas la solution miracle pour l'instant.
Cube76
Messages postés11Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 mars 2005 24 mars 2005 à 21:13
OK, je vais essayer ta méthode pour voir alors.
Je suis débutant alors en lisant ta possibilité, je ne sais pas si
chaque colonne sera correctement rempli mais on ne sait jamais et j'en
suis à un point ou toutes les solutions sont bonnes à essayer en tout K
merci beaucoup de t'interesser à mon problème.