Petit soucis avec Find
Résolu
max850
Messages postés
304
Date d'inscription
Statut
Membre
Dernière intervention
-
max850 Messages postés 304 Date d'inscription Statut Membre Dernière intervention -
max850 Messages postés 304 Date d'inscription Statut Membre Dernière intervention -
Bonjour le forum
je voudrais rechercher que les deux premiers caractères d'un nombre de 5 chiffres figurant dans une colonne et n' y parviens pas en utilisant la formule ci-après
If .Find(What:=comptema, LookIn:=xlValues) .. dans la procédure suivante
Dim comptema As Variant
Dim derlig As Integer
comptema = TextBox1.Value
comptema = Left(comptema, 2)
With Feuil7
derlig = .Range("D" & Rows.Count).End(xlUp).Row
With Range("D6:D" & derlig)
'If .Find(comptema, LookIn:=xlValues) Is Nothing Then
If .Find(What:=comptema, LookIn:=xlValues) Is Nothing Then
MsgBox "Sélectionner un compte", vbExclamation + vbDefaultButton2, "erreur"
TextBox1 = ""
cancel = True
Exit Sub
End If
End With
ActiveSheet.Range("$D$5:$D$" & derlig).AutoFilter Field:=1, Criteria1:=comptema
End With
qu'est ce qui ne va pas ?
merci
je voudrais rechercher que les deux premiers caractères d'un nombre de 5 chiffres figurant dans une colonne et n' y parviens pas en utilisant la formule ci-après
If .Find(What:=comptema, LookIn:=xlValues) .. dans la procédure suivante
Dim comptema As Variant
Dim derlig As Integer
comptema = TextBox1.Value
comptema = Left(comptema, 2)
With Feuil7
derlig = .Range("D" & Rows.Count).End(xlUp).Row
With Range("D6:D" & derlig)
'If .Find(comptema, LookIn:=xlValues) Is Nothing Then
If .Find(What:=comptema, LookIn:=xlValues) Is Nothing Then
MsgBox "Sélectionner un compte", vbExclamation + vbDefaultButton2, "erreur"
TextBox1 = ""
cancel = True
Exit Sub
End If
End With
ActiveSheet.Range("$D$5:$D$" & derlig).AutoFilter Field:=1, Criteria1:=comptema
End With
qu'est ce qui ne va pas ?
merci
A voir également:
- Petit soucis avec Find
- Find and mount - Télécharger - Récupération de données
- Trier du plus petit au plus grand excel - Guide
- Petit 3 ✓ - Forum Word
- Petit 2 ✓ - Forum Windows
- Petit 9 - Forum Mail
7 réponses
Bonjour,
utilise un masque de ce genre :
comptema = "45*" si par exemple 45 sont les 2 premiers chiffres à rechercher.
utilise un masque de ce genre :
comptema = "45*" si par exemple 45 sont les 2 premiers chiffres à rechercher.
Bonjour
Sur ton code, tu testes uniquement l'absence de comptema ?
un essai
Michel
Sur ton code, tu testes uniquement l'absence de comptema ?
un essai
Option Explicit
'-----------------------------
Sub vvv()
Dim Comptema As String ' comptema est donné par un textbox et est donc du texte
Comptema = Left(TextBox1.Value, 2)
With Sheets("Feuil7")
On Error GoTo erreur
.Columns("D").Find(What:=Comptema, After:=Range("D5")).Select 'pour demo: on va sur la cellule trouvée contenant au moins comptema (valable si par ex "rrgggg" ou "hhhrrggg")
End With
'code éventuel.......
Exit Sub
erreur:
MsgBox "Sélectionner un compte", vbExclamation + vbDefaultButton2, "erreur"
'TextBox1 = ""
'cancel = True
End Sub
Michel
Michel
oui je teste uniquement l'absence de comptema
mais comment puis je avec ta solution filtrer sur toute la colonne les deux premiers caractères du nombre
oui je teste uniquement l'absence de comptema
mais comment puis je avec ta solution filtrer sur toute la colonne les deux premiers caractères du nombre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
SI tu veux simplement tester l'absence de comptema, tu as plus simple que la fonction Find (pas la peine de se prendre la tête !) ;-)
en résumant (comptema en 2 lettrrs)
si les 2 lettres seulement et pas d'autres lettres ou chiffres
If application.countif(Range("D6:D" & derlig),comptema)=0 then
Msgbox.....
si les 2 lettres incluses avec d'autres lettes ou chiffres
If application.countif(Range("D6:D" & derlig),"*" & comptema & "*")=0 then
Msgbox.....
Michel
SI tu veux simplement tester l'absence de comptema, tu as plus simple que la fonction Find (pas la peine de se prendre la tête !) ;-)
en résumant (comptema en 2 lettrrs)
si les 2 lettres seulement et pas d'autres lettres ou chiffres
If application.countif(Range("D6:D" & derlig),comptema)=0 then
Msgbox.....
si les 2 lettres incluses avec d'autres lettes ou chiffres
If application.countif(Range("D6:D" & derlig),"*" & comptema & "*")=0 then
Msgbox.....
Michel
Bonjour Michel
Tu as parfaitement raison Michel pourquoi faire compliqué quand on peut faire simple
j'ai appliqué l'une ou l'autre de tes formules mais j'obtiens le message d'erreur methode range de l'objet global a échoué"
j'ai certainement oublié quelque chose quelque part
comptema = Left(TextBox1.Value, 2)
Sheets("compte").Activate
' With Feuil7
With Sheets("compte")
derlig = Range("D" & Rows.Count).End(xlUp).Row
With Range("D5:D" & derlig)
If Application.CountIf(Range("D6:D") & derlig, "*" & comptema & "*") = 0 Then
MsgBox "Sélectionner une activité réalisée", vbExclamation + vbDefaultButton2, "Activité non réalisée"
TextBox1 = ""
cancel = True
Exit Sub
End If
End With
ActiveSheet.Range("$D$5:$D$" & derlig).AutoFilter Field:=1, Criteria1:="=" & comptema & "*", _
Operator:=xlAnd
End With
Tu as parfaitement raison Michel pourquoi faire compliqué quand on peut faire simple
j'ai appliqué l'une ou l'autre de tes formules mais j'obtiens le message d'erreur methode range de l'objet global a échoué"
j'ai certainement oublié quelque chose quelque part
comptema = Left(TextBox1.Value, 2)
Sheets("compte").Activate
' With Feuil7
With Sheets("compte")
derlig = Range("D" & Rows.Count).End(xlUp).Row
With Range("D5:D" & derlig)
If Application.CountIf(Range("D6:D") & derlig, "*" & comptema & "*") = 0 Then
MsgBox "Sélectionner une activité réalisée", vbExclamation + vbDefaultButton2, "Activité non réalisée"
TextBox1 = ""
cancel = True
Exit Sub
End If
End With
ActiveSheet.Range("$D$5:$D$" & derlig).AutoFilter Field:=1, Criteria1:="=" & comptema & "*", _
Operator:=xlAnd
End With