Autres Inputbox bis xl 2007

kkamadou

XLDnaute Junior
Bonjour,
Ce code ci-dessous m'a permis de régler mon problème, mais seulement une dernière condition à remplir.
le numéro saisi doit existé parmi les numéros des Adhérents se trouvant dans la Colonne A de ma Feuil 2

Dim v As Variant, k
Do
v = Application.InputBox("Entrez un nombre entier :", "Numéro Adhérent", CStr(v), Type:=2)
If v = False Then Exit Sub
For k = 1 To Len(v)
If Not IsNumeric(Mid(v, k, 1)) Then Exit For
Next

Loop While k <= Len(v) Or v = ""
 
Solution
Bonjour kkamadou, jmfmarques, le forum,

Complétez comme ceci :
VB:
Dim v As Variant, k As Variant
Do
    v = Application.InputBox("Entrez un nombre entier :", "Numéro Adhérent", CStr(v), Type:=2)
    If v = False Then Exit Sub
    For k = 1 To Len(v)
        If Not IsNumeric(Mid(v, k, 1)) Then Exit For
    Next
Loop While k <= Len(v) Or v = ""
With ActiveSheet
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    k = Application.Match(Val(v), .[A:A], 0)
    If IsError(k) Then .Cells(.Rows.Count, 1).End(xlUp)(2) = v Else .Cells(k, 1).Select
End With
A+

jmfmarques

XLDnaute Accro
Il ressort de tes nouvelles explications qu'il ne s'agit nullement d'un nombre entier (donc d'un numérique) , mais d'une numéro (donc du texte)
Tu aurais dû le préciser bien avant lors de tes deux autres discussions ...
Voici une solution simple :
VB:
Dim toto As Boolean
Do While Not toto
   titi = Application.InputBox("Saisis un numéro d'adhérent", , , , , , 2)
   If titi = False Or (titi <> "" And WorksheetFunction.CountIf(Columns(1), titi)) > 0 Then toto = True
Loop
Ceci étant dit : j'ignore tout du reste, mais il est à peu près certain d'une simple liste de validation serait bien mieux adaptée à ta problématique
 

job75

XLDnaute Barbatruc
Bonjour kkamadou, jmfmarques, le forum,

Complétez comme ceci :
VB:
Dim v As Variant, k As Variant
Do
    v = Application.InputBox("Entrez un nombre entier :", "Numéro Adhérent", CStr(v), Type:=2)
    If v = False Then Exit Sub
    For k = 1 To Len(v)
        If Not IsNumeric(Mid(v, k, 1)) Then Exit For
    Next
Loop While k <= Len(v) Or v = ""
With ActiveSheet
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    k = Application.Match(Val(v), .[A:A], 0)
    If IsError(k) Then .Cells(.Rows.Count, 1).End(xlUp)(2) = v Else .Cells(k, 1).Select
End With
A+
 

job75

XLDnaute Barbatruc
Une autre solution, si l'on ne veut pas inscrire de nouveaux numéros :
VB:
Dim v As Variant, k As Variant
Do
    v = Application.InputBox("Entrez un nombre entier :", "Numéro Adhérent", CStr(v), Type:=2)
    If v = False Then Exit Sub
    If IsNumeric(v) Then
        k = Application.Match(CDbl(v), [A:A], 0)
        If IsNumeric(k) Then Cells(k, 1).Select: Exit Do
    End If
Loop
 

Discussions similaires

Réponses
8
Affichages
649

Statistiques des forums

Discussions
314 083
Messages
2 105 587
Membres
109 394
dernier inscrit
jackouille85