Valandil89
Messages postés2Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention 1 juillet 2012
-
28 juin 2012 à 09:24
Valandil89
Messages postés2Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention 1 juillet 2012
-
1 juil. 2012 à 21:57
Bonjour,
J'ai un problème concernant mon code pour remplir ma listview à partir de deux ComboBox successifs.
C'est à dire que je souhaite que la première ComboBox me remplisse ma listview par une première sélection puis en selectionnant mon deuxième choix affiner ma recherche.
Al'heure actuelle ca va faire 3 semaines que je cherche, que je change mon code en espérant que je trouve mais rien.
Voila le dernier code que j'ai trouvé s'il ne convient pas du tout et que cela prendrait trop de temps à m'expliquer pour vous (je n'oublie pas que vous êtes des bénévoles) dite le moi en me précisant pourquoi çà ne va pas car je suis vraiment désespéré.
Je pense que cela viens du début du code de mes combobox car c'est ce que je comprend le moins.(certains code font une partie listview??)
Merci d'avance pour tous conseils que vous pourrez m'apporter
Code VBScript :'---Prépare les entêtes des tableaux et remplit les liste des comboBox
Private Sub Userform_initialize() ' A l'ouverture du fichier
Dim DerL As Long
With ThisWorkbook.Worksheets("SUJETS")
DerL = .Range("A65536").End(xlUp).Row
TabTemp = .Range(.Cells(2, 1), .Cells(DerL, 10)).Value
.Range("A1").Sort Key1:=.Range("A2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
With Sheets("liste") 'Prend en compte l'onglet "liste"
Me.service.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
Me.TypeFormation.List = .Range("C2:C" & .Range("C65536").End(xlUp).Row).Value
End With
With Me.ListView1 'Vide la listview au cas ou il restera quelquechose
.ListItems.Clear
With .ColumnHeaders 'Prepare les entêtes des Colonnes
.Clear
.Add , , "Référence ", 70
.Add , , "Titre", 70
.Add , , "Date Début", 50
.Add , , "Temps de Formation", 50
.Add , , "Descriptif", 150
End With
End With
End Sub
Private Sub Service_Change()
If Me.service.Value = "" Then Exit Sub ' si service non remplit sortir de la boucle
If ResultatParService.TypeFormation.Value = "" Then Exit Sub
TotalCol = 0 ' dans ce cas indiquer que le résultat est nul
For L = 1 To UBound(TabTemp, 1) 'si au contraire la comboBox "service" est remplit
If TabTemp(L, 2) = Me.service.Value Then
.ListItems.Add , , TabTemp(L, 1)
X = .ListItems.Count
.ListItems(X).ListSubItems.Add , , TabTemp(L, 2)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 3)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 4)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 5)
X = X + 1
End If
Next
End With
With Me.TxtTotal 'remplissage de la textBox qui calcul combien de résultat trouvé
.Value = ListView1.ListItems.Count - 0
End With
End Sub
Private Sub TypeFormation_Change()
If ResultatParService.TypeFormation.Value = "" Then Exit Sub ' dans ce cas indiquer que le résultat est nul
Me.TypeFormation.Clear
TotalCol = 0 ' dans ce cas indiquer que le résultat est nul
With Me.ListView1
.ListItems.Clear
For L = 1 To UBound(TabTemp, 1)
If TabTemp(L, 2) Me.service.Value And TabTemp(L, 4) Me.TypeFormation.Value Then
.ListItems.Add , , TabTemp(L, 1)
X = .ListItems.Count
.ListItems(X).ListSubItems.Add , , TabTemp(L, 2)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 3)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 4)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 5)
X = X + 1
End If
Next L
End With
With Me.TxtTotal 'remplissage de la textBox qui calcul combien de résultat trouvé
.Value = ListView1.ListItems.Count - 0
End With
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 1 juil. 2012 à 02:09
Bonjour,
Tu dis coder en VB6 (classement du message), tu cherches une coloration VBS, pour un code qui est visiblement du VBA (UserForm), je change le classement.
Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).
Une fois le code remis en forme, je regarderais.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 1 juil. 2012 à 07:20
Bonjour,
Je pense que cela viens du début du code de mes combobox car c'est ce que je comprend le moins.
et je pense, moi, que tu veux mettre la charrue avant les boeufs, avec, pour résultat, des choses pour le moins étranges
Cette ligne de code, déjà (et par exemple) :
Tiens ! commente-nous la ... rien que le fait de la commenter devrait t'aider à comprendre pourquoi je le montre du doigt !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 1 juil. 2012 à 07:53
Toujours préférer travailler avec l'évènement Click d'une combobox ou d'une listbox, plutôt qu'avec l'évènement Change.
C'est encore plus prudent en ce qui concerne une combobox, qui comprend une zone de texte, modifiable par l'utilisateur et qui déclenche l'évènement Change !
L'article cliqué d'une combobox nommée service :
- a pour index : service.listindex
- si aucun article n'a été sélectionné, cet index = - 1
- la valeur sélectionnée correspondant à cet index (si <> -1) est donc :
service.list(service.listindex)
Tu n'es certes pas obligé de suivre cette recommandation, mais je te l'aurais faite (la prudence est en développement toujours essentielle).
J'attendrai, pour le reste, que tu aies présenté ton code indenté et entre balises codes.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Valandil89
Messages postés2Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention 1 juillet 2012 1 juil. 2012 à 21:57
Alors je ne sais pas quoi vous dire à part que je suis vraiment désolé.Je ne sais pas où me mettre car ucfoutu m'avait déjà dis que je n'étais pas sur le bon sujet alors je l'avais déplacé mais je me suis encore trompée. Je n'ai pas d'excuses. Veuillez me pardonner.
Pour le code que Ucfoutu me demande d'expliquer et bah je ne peux pas c'est justement une des parties que je ne comprend pas et qui comme je le pressentais sont certainement à l'origine de mon problème de code.
Je dirait (pour tenter de vous montrer que je ne viens pas vers vous pour avoir la réponse tous cru )que c'est pour la mise en page de ma listview
Je dirais Orientation = centré
range = Ou se mettre pour commencer a écrire dans la listview
Sort KEy je ne vais pas mentir je ne sais pas du tout
Order = ordre de succession des résultats par ligne s'affichent de façon successifs vers le bas
Header = Hauteur des colonnes
OrderCustom je ne sais pas
MatchCase = je ne sais pas encore
Voila avant que vous me demandiez je ne comprend pas non plus :
.CheckBoxes = True
.FullRowSelect = True
.Gridlines = True
.LabelEdit = 1
.View = lvwReport
For L = 1 To UBound(TabTemp, 1) 'si au contraire la comboBox "service" est remplit
Voila je peux comprendre que cela vous désespére....
C'est certainement pour cela que j'ai du mal a comprendre le dernier message de ucfoutu car si je viens vers vous c'est pour tenir compte de vos successions car je peux comprendre que des fois (comme ici certainement) vous vous arrachez les cheveux en voyant les codes de débutants comme moi)
Voila comme demandé j'ai mis mon code dans le bon format je l'espère.
J'espère ne pas vous avoir découragé de m'aider. bonne soiréé
:'---Prépare les entêtes des tableaux et remplit les liste des comboBox
Private Sub Userform_initialize() ' A l'ouverture du fichier
Dim DerL As Long
With ThisWorkbook.Worksheets("SUJETS")
DerL = .Range("A65536").End(xlUp).Row
TabTemp = .Range(.Cells(2, 1), .Cells(DerL, 10)).Value
.Range("A1").Sort Key1:=.Range("A2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
With Sheets("liste") 'Prend en compte l'onglet "liste"
Me.service.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
Me.TypeFormation.List = .Range("C2:C" & .Range("C65536").End(xlUp).Row).Value
End With
With Me.ListView1 'Vide la listview au cas ou il restera quelquechose
.ListItems.Clear
With .ColumnHeaders 'Prepare les entêtes des Colonnes
.Clear
.Add , , "Référence ", 70
.Add , , "Titre", 70
.Add , , "Date Début", 50
.Add , , "Temps de Formation", 50
.Add , , "Descriptif", 150
End With
End With
End Sub
Private Sub Service_Change()
If Me.service.Value = "" Then Exit Sub ' si service non remplit sortir de la boucle
If ResultatParService.TypeFormation.Value = "" Then Exit Sub
TotalCol = 0 ' dans ce cas indiquer que le résultat est nul
With Me.ListView1
.ListItems.Clear
.CheckBoxes = True
.FullRowSelect = True
.Gridlines = True
.LabelEdit = 1
.View = lvwReport
For L = 1 To UBound(TabTemp, 1) 'si au contraire la comboBox "service" est remplit
If TabTemp(L, 2) = Me.service.Value Then
.ListItems.Add , , TabTemp(L, 1)
X = .ListItems.Count
.ListItems(X).ListSubItems.Add , , TabTemp(L, 2)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 3)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 4)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 5)
X = X + 1
End If
Next
End With
With Me.TxtTotal 'remplissage de la textBox qui calcul combien de résultat trouvé
.Value = ListView1.ListItems.Count - 0
End With
End Sub
Private Sub TypeFormation_Change()
If ResultatParService.TypeFormation.Value = "" Then Exit Sub ' dans ce cas indiquer que le résultat est nul
Me.TypeFormation.Clear
TotalCol = 0 ' dans ce cas indiquer que le résultat est nul
With Me.ListView1
.ListItems.Clear
For L = 1 To UBound(TabTemp, 1)
If TabTemp(L, 2) Me.service.Value And TabTemp(L, 4) Me.TypeFormation.Value Then
.ListItems.Add , , TabTemp(L, 1)
X = .ListItems.Count
.ListItems(X).ListSubItems.Add , , TabTemp(L, 2)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 3)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 4)
.ListItems(X).ListSubItems.Add , , TabTemp(L, 5)
X = X + 1
End If
Next L
End With
With Me.TxtTotal 'remplissage de la textBox qui calcul combien de résultat trouvé
.Value = ListView1.ListItems.Count - 0
End With
End Sub