Autres Inputbox bis xl 2007

  • Initiateur de la discussion Initiateur de la discussion kkamadou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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+
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
 
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
8
Affichages
1 K
Réponses
2
Affichages
2 K
Retour