[Catégorie modifiée VB6 --> VBA] Syntaxe d"appel de Combo dans Fonction
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
3 août 2010 à 02:22
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
3 août 2010 à 20:47
Bonjour,
Je voudrais donner le focus sur un ComboBox appelée dans une Fonction
Voila le code :
Private Sub ChangeInputBox(sTest As String, iTest As Integer, iRange As Integer)
Dim i As Integer
If gblInit Then Exit Sub
Application.ScreenUpdating = False
Range(sTest & ".Test" & iTest & ".Inputs").Cells(3, iRange).Value = _
Me.Controls("Test" & iTest & "Input" & iRange & "Box").Value
For i = 1 To MaxPts
myval = Range(sTest & ".Test" & iTest & ".Outputs").Cells(6, i).Value
If myval = "Too Low" Then
'Je veux obtenir : TestWRT.Test1Input3Box.SetFocus
'sRest = WRT
'iTest = 1
'iRange= 3
'Je fais ça, qui marche pas : Normal on a Z="TestWRT.Test1Input3Box" !
Dim Z
Z = "Test" & sTest & ".Test" & iTest & "Input" & iRange & "Box"
Z.SetFocus
'............... ????????
MsgBox "Débit trop faible : Changer de Calibre", vbCritical
Exit Sub
End If
Me.Controls("Test" & iTest & "Flow" & i & "Box").Caption IIf(myval "", "", Format(myval, IIf(myval > 1000, "0", IIf(myval > 100, "0.0", "0.00"))))
myval = Range(sTest & ".Test" & iTest & ".Outputs").Cells(7, i).Value
Me.Controls("Test" & iTest & "Error" & i & "Box").Caption IIf(myval "", "", Format(myval, "0.0%"))
Next i
Application.ScreenUpdating = True
End Sub
Ce qui serait encore mieux, ce serait de mettre la valeur 'erronée) de la combo en "surbrillance"..., mais je ne sais pas faire (à part changer la couleur, mais c'est trop contraignant).
Si une bonne âme voulais me guider pour trouver cette de syntaxe, on serait deux au paradis!
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 août 2010 à 20:47
Re
Chez moi, ça fonctionne très bien :
Une UserForm
Un CommandButton
Une TextBox
Mettre le TabIndex du CommandButton à Zéro pour qu'il prenne le focus au lancement
+ dans le code de ce bouton :
Dim z As MSForms.TextBox
Set z = Me.Controls("TextBox1")
z.SetFocus
Et la TextBox prend bien le focus.
Méfie toi, les TextBox des UserForm ne sont pas des TextBox sous forme OCX mais appartenant à la librairie MSForms.
As-tu un affreux "On Error Resume Next" qui traine qqpart et qui masquerait le problème réel ?
Oups, j'avais pas fait attention que le composant auquel tu veux passer le focus semble se trouver sur une autre UserForm ?
Si non : enlève le nom du support de la syntaxe
Si oui : Il faut d'abord donner le focus à l'objet support de ce composant, mais pas sûr que cela puisse fonctionner