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 !

babap1

XLDnaute Occasionnel
Bonjour,

j'essaye de chercher s'il y a au moins une lettre dans le contenu de ma cellule "G"&LRow en comparant ma strChaine avec la méthode InStr() mais il faut qu'il y ait toutes les lettres pour que cela fonctionne... 😕

Code:
 Dim strChaine As String
 Dim charCar As String

'Cannot contain the extentions xls or xml
    strChaine = Range("G" & LRow).Value
    charCar = InStr(1, strChaine, "abcdefghijklmnopqrstuvwxyz", vbTextCompare)
    If charCar > 0 Then
        EquipmentManager.Opt_Name.Value = True
    Else
        EquipmentManager.Opt_IpAddress.Value = True
    End If

Est ce que quelqu'un connait la méthode à utiliser ?
Merci 🙂
 
Re : Où est l'erreur ??

Bonsoir

Une piste utiliser le code ascii ( ou décimal des des carractères).
Code:
Sub lettre()
Dim data1 As String
Dim i As Long

data1 = Sheets("Feuil1").Range("a1")
if data1 = "" then exit sub
For i = 1 To Len(data1)
If Asc(Mid(data1, i, 1)) > 96 And Asc(Mid(data1, i, 1)) < 123 Then
    Call MsgBox("une lettre minuscule à été trouvée : " & Mid(data1, i, 1), vbExclamation, Application.Name)
 End If
Next i
End Sub

A tester
JP
 
Re : Où est l'erreur ??

Bonjour babap1, jp14, Banzai64, pierrejean

Teste ceci:

Code:
'.../...
If IsNumeric(Range("G" & LRow)) Then
  EquipmentManager.Opt_Name.Value = True
Else
  EquipmentManager.Opt_IpAddress.Value = True
End If
'.../...

A+
 
Re : Où est l'erreur ??

bonjour a tous

la fonction adaptée et son usage en Vba (avec la collaboration de Pierre Olivier)

Code:
Function lettre(cellule As Range) As Boolean
For n = 1 To Len(cellule)
  If Asc(UCase(Mid(cellule, n, 1))) > 64 And Asc(UCase(Mid(cellule, n, 1))) < 91 Then
   lettre = True
   Exit Function
  End If
Next n
 lettre = False
End Function
 
'.../...
If lettre(Range("G" & LRow)) Then
  EquipmentManager.Opt_Name.Value = True
Else
  EquipmentManager.Opt_IpAddress.Value = True
End If
'.../...
 
Re : Où est l'erreur ??

Bonjour bqtr, pierrejean, le forum

la fonction adaptée et son usage en Vba (avec la collaboration de Pierre Olivier)

merci pour les tuyaux... voila ce que j'ai fait du coup et ça marche très bien :
Code:
 For n = 1 To Len(Range("G" & LRow))
        If Asc(UCase(Mid(Range("G" & LRow), n, 1))) > 64 And Asc(UCase(Mid(Range("G" & LRow), n, 1))) < 91 Then
            EquipmentManager.Opt_Name.Value = True
        Else
            EquipmentManager.Opt_IpAddress.Value = True
        End If
    Next n

Merci, @ plus
 
Re : Où est l'erreur ??

RE

Désolé de doucher ton enthousiasme mais si cela fonctionne c'est que la lettre est le dernier caractere de range("G" & LRow)
Teste avec un chiffre en dernier pour t'en convaincre

cette version devrait etre meilleure;

Code:
For n = 1 To Len(Range("G" & LRow))
If Asc(UCase(Mid(Range("G" & LRow), n, 1))) > 64 And Asc(UCase(Mid(Range("G" & LRow), n, 1))) < 91 Then
EquipmentManager.Opt_Name.Value = True
[COLOR=red]exit for[/COLOR]
Else
EquipmentManager.Opt_IpAddress.Value = True
End If
Next n
 
Dernière édition:
- 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

L
Réponses
5
Affichages
2 K
lumiexcel
L
Réponses
3
Affichages
13 K
Compte Supprimé 979
C
3
Réponses
18
Affichages
27 K
solonath
S
Retour