corloste
XLDnaute Nouveau
Bonsoir à toutes et tous,
Voilà, pour poser le cadre, j'ai créé sur Excel 2003 (windows) un classeur dont la première feuille contient un tableau dans lequel j'ai inséré des combobox et des commandbuttons (active X). Ces contrôles de formulaire permettent de rediriger vers certaines autres feuilles. Pour cela j'ai utilisé pour les combobox :
Private Sub ComboBox3_Click()
Dim maFeuil As String
On Error Resume Next
maFeuil = ComboBox3.Value
Sheets(maFeuil).Select
End Sub
Private Sub ComboBox3_DropButtonClick()
Dim F As Worksheet
ComboBox3.Clear
ComboBox3.AddItem "le nom de l'onglet"
End sub
Cela fonctionne très bien. Comme j'ai utilisé 15 combobox et 13 commandbutton pour 110 feuilles la recherche d'un élément peut rapidement être fastidieuse, donc j'ai voulu créer un équivalent de moteur de recherche en installant un autre combobox pour lequel j'ai supprimé le "dropbutton" et dont la saisie d'un des item enclenche l' évènement "click" grâce au réglage dans les propriétés du matchentry sur : fmmatchentrycomplete.
Pour que ce combobox ait constamment en référence l'ensemble de toutes les feuilles de mon classeur (surtout si plus tard je dois en rajouter) j'ai utilisé les codes :
1) Dans la première feuille :
Private Sub combobox16_click()
Sheets(ComboBox16.ListIndex + 1).Activate
End Sub
2) Dans le "thisworkbook" :
Private Sub Workbook_Open()
For i = 1 To ThisWorkbook.Sheets.Count
Sheets(1).ComboBox16.AddItem Sheets(i).Name
Next i
End Sub
Bon jusque là ça va, mais voilà le problème :
D'après l'aide d'Excel lorsqu'on rentre une première lettre dans le combobox, matchentry recherche les solutions dans onglets de feuille (pour mon cas) et si il n'y a pas d'ambiguité dans la correspondance il est censé déclencher l'évènement "click" or cela fonctionne pour certaines feuilles mais pas pour d'autres.
Exemple : Pour certains onglets qui ont pour nom : "recherche", "renvoi" quand je saisi le "r" il détecte bien une ambiguïté donc pas d'évènement "click", puis je saisi le "e", il continu pareil car ambiguïté, puis soit le "c" ou le "n" et là il détecte bien qu'il n'y a pas d'autre possibilité et déclenche l'évènement "click" et me renvoi bien sur la feuille en question. Là ça fonctionne bien.
Par contre, pour certains onglets qui se nomment : "SVP", "Secteur", "service" dès que je saisi le "s" il envoi de suite sur la feuille SVP alors qu'il devrait détecter une ambiguïté avec les autres onglets qui commencent par la même lettre. Il faut alors revenir sur la 1ère feuille, continuer à saisir la 2ème lettre "e" et là encore il "click" sur "secteur" sans prendre en compte qu'il y a encore une possibilité et ainsi de suite. J'ai essayé de tout mettre en minuscule mais le problème reste.
Alors peut être ais-je fait un mauvais choix de code ou un paramétrage des propriétés qui m'échappe ou autre ???
En tous cas j'avoue j'ai glané et arrangé les codes d'après mes recherches sur la toile, je ne suis pas un professionnel de l'informatique et là je sèche ce qui est dommage car cette adaptation d'un moteur de recherche reste à la fois simple pour moi afin de le mettre en place (sauf mon problème) et assez intuitif et facile d'utilisation pour les futurs utilisateur, je ne voulais pas passer par un userform et code plus lourd pour faire un moteur de recherche (pour lequel il faut en plus saisir le mot exact et en entier).
Si quelqu'un ou quelqu'une pouvait m'apporter ses lanternes cela m'enlèverai une épine du pied, en tous cas merci d'avance (surtout si vous avez eu le courage de tout lire).
Voilà, pour poser le cadre, j'ai créé sur Excel 2003 (windows) un classeur dont la première feuille contient un tableau dans lequel j'ai inséré des combobox et des commandbuttons (active X). Ces contrôles de formulaire permettent de rediriger vers certaines autres feuilles. Pour cela j'ai utilisé pour les combobox :
Private Sub ComboBox3_Click()
Dim maFeuil As String
On Error Resume Next
maFeuil = ComboBox3.Value
Sheets(maFeuil).Select
End Sub
Private Sub ComboBox3_DropButtonClick()
Dim F As Worksheet
ComboBox3.Clear
ComboBox3.AddItem "le nom de l'onglet"
End sub
Cela fonctionne très bien. Comme j'ai utilisé 15 combobox et 13 commandbutton pour 110 feuilles la recherche d'un élément peut rapidement être fastidieuse, donc j'ai voulu créer un équivalent de moteur de recherche en installant un autre combobox pour lequel j'ai supprimé le "dropbutton" et dont la saisie d'un des item enclenche l' évènement "click" grâce au réglage dans les propriétés du matchentry sur : fmmatchentrycomplete.
Pour que ce combobox ait constamment en référence l'ensemble de toutes les feuilles de mon classeur (surtout si plus tard je dois en rajouter) j'ai utilisé les codes :
1) Dans la première feuille :
Private Sub combobox16_click()
Sheets(ComboBox16.ListIndex + 1).Activate
End Sub
2) Dans le "thisworkbook" :
Private Sub Workbook_Open()
For i = 1 To ThisWorkbook.Sheets.Count
Sheets(1).ComboBox16.AddItem Sheets(i).Name
Next i
End Sub
Bon jusque là ça va, mais voilà le problème :
D'après l'aide d'Excel lorsqu'on rentre une première lettre dans le combobox, matchentry recherche les solutions dans onglets de feuille (pour mon cas) et si il n'y a pas d'ambiguité dans la correspondance il est censé déclencher l'évènement "click" or cela fonctionne pour certaines feuilles mais pas pour d'autres.
Exemple : Pour certains onglets qui ont pour nom : "recherche", "renvoi" quand je saisi le "r" il détecte bien une ambiguïté donc pas d'évènement "click", puis je saisi le "e", il continu pareil car ambiguïté, puis soit le "c" ou le "n" et là il détecte bien qu'il n'y a pas d'autre possibilité et déclenche l'évènement "click" et me renvoi bien sur la feuille en question. Là ça fonctionne bien.
Par contre, pour certains onglets qui se nomment : "SVP", "Secteur", "service" dès que je saisi le "s" il envoi de suite sur la feuille SVP alors qu'il devrait détecter une ambiguïté avec les autres onglets qui commencent par la même lettre. Il faut alors revenir sur la 1ère feuille, continuer à saisir la 2ème lettre "e" et là encore il "click" sur "secteur" sans prendre en compte qu'il y a encore une possibilité et ainsi de suite. J'ai essayé de tout mettre en minuscule mais le problème reste.
Alors peut être ais-je fait un mauvais choix de code ou un paramétrage des propriétés qui m'échappe ou autre ???
En tous cas j'avoue j'ai glané et arrangé les codes d'après mes recherches sur la toile, je ne suis pas un professionnel de l'informatique et là je sèche ce qui est dommage car cette adaptation d'un moteur de recherche reste à la fois simple pour moi afin de le mettre en place (sauf mon problème) et assez intuitif et facile d'utilisation pour les futurs utilisateur, je ne voulais pas passer par un userform et code plus lourd pour faire un moteur de recherche (pour lequel il faut en plus saisir le mot exact et en entier).
Si quelqu'un ou quelqu'une pouvait m'apporter ses lanternes cela m'enlèverai une épine du pied, en tous cas merci d'avance (surtout si vous avez eu le courage de tout lire).