SpinButtonm - Suivant et Précédent
Bien le bonjour à vous "XCEL"lent amis de ce forum ^_^' !
Je me demandais s'il était possible de m'indiquer où pourrais se retrouver la faille dans mon code VBA puisque je suis en train de faire un SpinButton dans un USF . Je m'explique...
Je suis en train de faire une base de données servant à recenser les fiches signalétiques d'un endroit, et, pour ne pas mentir, je suis tout de même novice en matière d'excel VBA et autres Programmation du genre. Je connais tout de même quelques notions et je peux ainsi me débrouiller pour ''bidouiller" du mieux que je me peux, mais là, je galère totalement. Cela fait quelques temps que je cherche sur des forums différent et oui j'avais eu quelques réponses, mais cela ne correspondait pas à mes attentes et je ne suis pas "difficile" pourtant hihihi
Voilà donc mon problème. Mon incrémentation de mon SpinButton ne fonctionne pas. En fait, lorsque je tente de l'utiliser au suivant ou précédent, cela m'affiche ""Erreur d'exécution'424' : Objet Requis ""
Bref, ce que j'aimerais, dans la mesure du possible bien sur, car je ne suis qu'un novice en la matière, que lorsque je clique sur le SpinButton suivant ou précédent, alors cela me fait ''naviguer'' de un ''pas'' dans ma liste de données, un à la suite de l'autre et sans en changer leurs valeurs.. Les données doivent donc apparaître et se suivre dans:
"ComboBox_ProductName"
''TextBox1''
"TextBox2"
J'ai aussi quelques problèmes d'affichage mais je réglerai sa seul, car il faut bien que je me débrouille non ? Bref, si un petit coup de main vous dit alors je suis preneur !! Et au fait, j'ai mis le code du SpinButton sous ''Tiret'' en commentaire afin de ne pas perturber mon restant de code car cela me faisait vraiment arracher les cheveux de sur la tête que je n’avançais plus ....
En passant je vous souhaite une magnifique journée à tous et toutes !!
journeydo
P.S. Un fichier ""fictif"" de mes données 'compressés' vous est donc envoyé ! Tourlou
Et donc un gros gros merci à ceux et celles qui prendront la peine d'au moins y jeter un coup d’œil !!
Bonjour
Je n'ai pas tout vérifié
Mais corriges ces macros (parties surlignées)
Private Sub SpinButton2_Change()
Dim I As Long
I = Me.SpinButton2.Value
If I < 2 Then Exit Sub
With Sheets("MsdsProduct")
ComboBox_ProductName = .Cells(I, "A")
' TextBox1 = .Cells(I, B)
' TextBox2 = .Cells(I, C)
End With
End Sub
Private Sub SpinButton2_SpinDown()
If Me.SpinButton2.Value < 2 Then
Me.SpinButton2.Value = Sheets("MsdsProduct").Range("A65536").End(xlUp).Row
End If
End Sub
Private Sub SpinButton2_SpinUp()
If Me.SpinButton2.Value > Sheets("MsdsProduct").Range("A65536").End(xlUp).Row Then
Me.SpinButton2.Value = 2 'Me.SpinButton2.Value - 1
End If
End SubUn grand grand grand Merci à toi, Banzai64, pour ce temps que tu m'a accordé !! En effet, je n'avais pas bien référencer la feuille (Sheets) et aussi, erreur de ma part, que la référence de cellules en A n'était pas entre Guillemet ... Bref, je crois que c'est parce que j'étais trop fatigué pour voir ça, Erreur bête en tout cas hihihi Mais un grand merci de m'avoir "Ouvert" les yeux !
Merci merci merci !! Et passe un bel été dans ton coin de pays !
Journeydo
Rebonjour !!
En fait je vient de m’apercevoir d'une erreur causé lors de la sélection de mes données.
Lorsque je clique sur mon bouton "Consult MSDS", le formulaire "Consult And print MSDS" s'affiche bien correctement. Je peut effectivement passé par le SpinButton afin de faire afficher les données suivante ou précédente.
Cependant, lorsque je sélectionne à la main une des données ou que je sélectionne une donnée parmis la liste par la sélection de la liste alors là, si je clique sur le SpinButton, cela me renvoi soit au début de ma liste, soit au niveau d'une autre donnée dans la liste elle-même. Je ne peut pas avoir la donnée suivante ou précédente.
Je m'explique par un exemple concret. Supposons que je sélectionne dans la liste de donnée, soit manuellement ou en la sélectionnant parmi la liste, la donnée "Oxygene -- En" et que je clique sur le SpinButton suivant, je devrais normalement avoir "Oxygene -- Fr", mais cela m'Affiche la donnée suivante: "Alodine 1200 S -- En". Si je revient à une autre donnée manuellement, exemple: "Ardrox 985P 14 -- En" et que je clique suivant, j'obtient "Alodine 1200 S -- Fr" .. Donc on dirais que la liste du SpinButton ne se """"vide""" pas. De même que lorsque je ferme le classeur même chose, cela m,affiche au départ de la liste, la dernière donnée affiché précédemment par le SpinButton.
Je ne sais pas comment faire """vider""" le SpinButton de manière à ce qu,il puisse me renvoyer au départ à l;a première donné de ma liste de donnée ou tout simplement de faire afficher la donnée suivante ou précédente lorsque je sélectionne une donnée manuellement ou en la sélectionnant dans la liste.
Je ne sais pas si je suis assez clair dans ce que j'ai dit, sinon veuillez m'en faire part et je tenterai de vous en refaire une meilleure explication.
Ci-joint, mon fichier corrigé précédemment avec l'aide que m'a fourni Banzai64, que je remercie encore une fois!!
Au plaisir,
journeydo
Bonjour
T'avais une merde un caractère parasite dans ta cellule A709 de la page "MsdsProduct" qui gênait la macro
A tester
Merci bien pour ton temps encore une fois.
Pourais-tu m'expliquer la merde en "A709" que tu as vu car je ne la vois pas, même en changeant de fond de couleur, ou de style ou même côté code VBA, bref je ne la voit pas... Suis-je dans le champ hihihi
Après quelques "test" de sélection de données, tout semble bien fonctionner mise à part une chose.
Présentement c'est moi qui gère ce classeur. Cependant, plusieurs autres utilisateurs auront accès à ce classeur et tenterons de choisir une donnée dans la ComboBox_ProductName, soit en la sélectionnant directement, soit en y inscrivant une nouvelle jusqu'à l'arrivé de la donnée, c'est à ce moment que cela se corse...
Je m'explique.
Si je tente, par la ComboBox_ProductName, de sélectionner la donnée, encore une fois, "Oxygen -- En", je peut à partir de là faire suivant ou précédent, tout est bien !! Mais lorsque je tente, par exemple de trouver une donnée manuellement, je fais soit effacer avec le bouton "retour en arrière" sur le clavier, soit en sélectionnant au complet et je ré-écrit ce que je souhaite obtenir. Dans le cas où je fait la touche "retour en arrière" du clavier, si par mégarde j'arrive au "O" dans "Oxygen -- En" et on tente d'effacer ce dernier caractère, alors là, il y a un message d'erreur indiquant :
""Erreur d'exécution '-2147352571 (800200005)':
Impossible de définir la propriété Value. Le type ne correspond pas.
Continuer Fin Débogage Aide
... Même chose qui arrive lorsque l,on sélectionne la donnée au complet et que l'on clique supprimé (Touche retour en arrière) sur le clavier... Donc je me demandais pourquoi...
Et en passant, j'ai été voir le code et j'ai remarquer les modifications et l'ajout de "WsPro" Que veut-il dire, car je ne trouve rien sur le Web ou dans le forum à ce propos, suis-je bête et je n'y comprend pas cette valeur ou bien j'ai les yeux qui ne voit rien, bref, un café ---> J'y suis dû car la fatigue ouffffff hihiihhihihi Quand tu tombe presque endormie devant le Pc ... C'est le temps d'un Café ^_^' !!
Merci de ton temps et du temps des autres qui ont vu ce post !! C'est fort, fort apprécié !
journeydo
Re-Re-Re-rebonjour !!! hihiih
Je vient de recevoir une modification d'un pote sur un autre forum alors je n'ai plus le problème de "plantage" du classeur.
Merci beaucoup beaucoup pour ton temps, ce fut extrêmement apprécié !!
Passe une belle journée et profite de l'été !!
Merci Banzai64,
journeydo
Bonjour
Avec ton fichier (original)
Exécutes la macro, et déroule la ComboxBox jusqu'au bout et tu verras qu'il y a une entrée vide qui correspond à la cellule A709
Je mes suis placé sur cette cellule puis "Suppression", et après plus cette entrée vide
Remplaces la macro actuelle par celle-ci
Private Sub ComboBox_ProductName_Change()
Dim I As Long
Me.TextBox1 = ""
Me.TextBox2 = ""
If Me.ComboBox_ProductName.ListIndex = -1 Then Exit Sub
Me.SpinButton2 = ComboBox_ProductName.ListIndex + 2
End SubÉdit : Tant pis
Merci beaucoup pour ton temps !
En fait, si je remplace ma macro d'origine par celle que tu vient de me donner, alors là, cela ne fonctionne plus car je n'ai plus de données apparaissant dans "TextBox1 et "TextBox2" donc c'est corect, mon USF fontionne désormais très bien avec l'autre version que j'ai eu.
Merci beaucoup,
journeydo