Microsoft 365 Comprise entre deux valeurs

Francky79

XLDnaute Occasionnel
Bonjour le forum,

Dans un Worksheet_SelectionChange j'ai cette formule qui marche bien,

VB:
If InStr(Feuil2.Cells(lig, 7).Value, "40") Then
             Cells(lig, 8) = "w"
             Cells(lig, 9) = ""
        End If

mais si je veux remplacer la valeur "40" par comprise entre 1 et 52 là je coince.
Pouvez-vous m'aider ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Francky,
Peut être par analyse de la chaine.
Hors contexte qui permettrait d'être plus précis, un exemple avec une fonction perso :
VB:
Function RechercheNombre(Chaine)
    For i = 1 To Len(Chaine)
        If IsNumeric(Mid(Chaine, i, 1)) Then
            Nombre = Nombre & Mid(Chaine, i, 1)
        End If
        Nombre = Val(Nombre)
    Next i
    If Nombre >= 1 And Nombre <= 52 Then RechercheNombre = "OK : " & Nombre Else RechercheNombre = "Non"
End Function
 

Pièces jointes

  • Classeur2.xlsm
    14 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Hors contexte qui permettrait d'être plus précis,
Votre code est incomplet, j'ai fait au plus simple pour l'exemple, et montrer le principe.

Ca peut être adaptée comme ceci par ex :
Code:
Sub Essai()
    Lig = 4
    N = Cells(Lig, 7).Value
    Nombre = RechercheNombre(N)
    If Nombre <> "" Then
        If Nombre >= 1 And Nombre <= 52 Then
             Cells(Lig, 8) = "w"
             Cells(Lig, 9) = ""
        End If
    End If
End Sub
Function RechercheNombre(Chaine)
    For i = 1 To Len(Chaine)
        If IsNumeric(Mid(Chaine, i, 1)) Then
            Nombre = Nombre & Mid(Chaine, i, 1)
        End If
        Nombre = Val(Nombre)
    Next i
    RechercheNombre = Nombre
End Function
Sinon si vous n'arrivez pas à adapter, fournissez un petit fichier test.
 

Discussions similaires

Réponses
49
Affichages
987

Statistiques des forums

Discussions
314 634
Messages
2 111 445
Membres
111 141
dernier inscrit
merlinboilama