buy6975
Messages postés8Date d'inscriptionvendredi 29 mai 2009StatutMembreDernière intervention 1 juin 2009
-
29 mai 2009 à 17:36
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
1 juin 2009 à 00:48
Bonjour,
J'ai créé un Userform qui contient un Combobox et une TextBox.
Dans la Combo je choisis un nom (de la liste) et je souhaite saisir un prix dans la TextBox, si je valide OK, je souhaiterai que ce prix s'inscrive dans la colonne J correspondant au choix du Nom.
J'espère avoir été clair.
Quelqu'un peut-il m'écrire la formule qui va bien, je suis débutant.
Merci d'avance.
buy6975
Messages postés8Date d'inscriptionvendredi 29 mai 2009StatutMembreDernière intervention 1 juin 2009 29 mai 2009 à 19:00
Pardon, j'ai du mal expliqué.
J'ai une feuille excel avec en colonne B, les noms
en colonne C les prénoms, etc.. Ma Combo pointe doit pointer sur B et C pour proposer la liste,
lorsque le nom souhaité est sélectionné en pointant dessus, je pointe ensuite sur une Textbox et je saisi un montant, puis je clique sur "OK". Je souhaiterai que le montant saisie dans la Textbox pour le nom choisi dans le Combo aille se mettre dans ma feuille excel en face du nom sélectionné. L'emplacement c'est la colonne J.
Merci de votre aide.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 mai 2009 à 22:35
je viens de poster la fonction getWordAdress à cette adresse :
http://www.codyx.org/snippet_chercher-mot-ou-partie-mot-dans-colonne-feuille_788.aspx#2368
en l'utilisant, ton code devient :
Dim iRow As Integer
iRow = getWordAdress(cboLastName.Text, "B", False, True, "Feuil1")
If (iRow = 0) Then
'pas possible normalement, puisque combo??
MsgBox "Nom introuvable"
Else
Cells(iRow, "J") = txtFirstName.Text
End If
buy6975
Messages postés8Date d'inscriptionvendredi 29 mai 2009StatutMembreDernière intervention 1 juin 2009 31 mai 2009 à 23:49
J'ai mis le code suivant :
Private Sub OK_Click()Public Function getWordAdress(ByVal sExpression As String, ByVal sColumnLetter As String, Optional ByVal bPartial As Boolean False, Optional ByVal bSelectResult As Boolean False, Optional vsSheetName As Variant) As Integer
' sExpression mot(s) ou partie de mot à chercher
' sColumnLetter lettre de la colonne dans laquelle chercher
' bPartial choix sur le mot comlet ou partie du mot
' bSelectResult sélectionner la cellule de la première occurence trouvée
' vsSheetName nom de la feuille dans laquelle cherche, celle active par défaut
' RETURN numéro de la ligne de la première occurence trouvée
Dim iColStop As Integer
Dim i As Integer
'selection feuille
If Not IsMissing(vsSheetName) Then Sheets(vsSheetName).Select
If bPartial Then
For i = 1 To iColStop
If Cells(i, sColumnLetter) Like "*" & sExpression & "*" Then
getWordAdress = i
If bSelectResult Then Cells(i, sColumnLetter).Select
Exit For
End If
Next i
Else
For i = 1 To iColStop
If Cells(i, sColumnLetter) = sExpression Then
getWordAdress = i
If bSelectResult Then Cells(i, sColumnLetter).Select
Exit For
End If
Next i
End If
End Function
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 juin 2009 à 00:06
une fonction dans une sub... le message d'erreur est tout ce qu'il y a de plus normal
tu appelles la fonction dans ta sub, tu ne l'écris pas !
tu n'avais pas copié tout à l'heure, là tu la copie au mauvais endroit
tu devrais quand même prendre 2 minutes de réflexion pour "essayer" avant de faure durer cet échange inutilement, tu ne crois pas?
c'est pire que du tout cuit que tu demandes
Private Sub
OK_Click()
Dim
iRow
As Integer
iRow = getWordAdress(cboLastName.Text, "B", False, True, "LISTE
DES MEMBRES")
If (iRow = 0) Then
'pas possible
normalement, puisque combo??
MsgBox "Nom
introuvable"
Else
Cells(iRow, "J") = txtFirstName.Text
End If
End Sub
'http://www.codyx.org/snippet_chercher-mot-ou-partie-mot-dans-colonne-feuille_788.aspx#2368
Private Function getWordAdress(ByVal sExpression As String, ByVal sColumnLetter As String, Optional ByVal bPartial As Boolean = False,
Optional ByVal bSelectResult As Boolean = False,
Optional vsSheetName
As Variant) As Integer
'
sExpression mot(s) ou partie de mot à chercher
' sColumnLetter lettre de la colonne dans laquelle
chercher
' bPartial choix sur le mot
comlet ou partie du mot
' bSelectResult
sélectionner la cellule de la première occurence trouvée
' vsSheetName nom de la feuille dans laquelle cherche,
celle active par défaut
' RETURN numéro
de la ligne de la première occurence trouvée
Dim iColStop As Integer
Dim i As Integer
'selection feuille
If Not IsMissing(vsSheetName) Then Sheets(vsSheetName).Select
If bPartial Then
For i = 1 To iColStop
If Cells(i, sColumnLetter) Like "*" & sExpression & "*" Then
getWordAdress = i
If bSelectResult Then Cells(i,
sColumnLetter).Select
Exit For
End If
Next i
Else
For i = 1 To iColStop
If Cells(i, sColumnLetter) = sExpression Then
getWordAdress = i
If bSelectResult Then Cells(i,
sColumnLetter).Select
Exit For
End If
Next i
End If
End Function