Problème macro avec une recherche non numérique

Angelista

XLDnaute Occasionnel
Bonjour le Forum,

Voilà mon soucis pour lequel j'ai besoin de vos lumières.
Sur le morceau de macro ci-dessous j'ai besoin de rechercher dans un tableau en colonne A un type d'information contenant des chiffres, des - - et des lettres, par exemple 122-400-FR

If (IsNumeric(CAffi)) Then === > cela me permet de déterminer que c'est du numérique mais ça ne marche pas avant les - et autre lettres que je peux avoir à rechercher

Merci par avance de votre aide.

Sub Recher()

Dim lastLine As Long
Dim repere As Boolean
Dim trouve As Boolean
repere = False
trouve = False
lastLine = derniereLigne()

If (CFormulaire.DAffi = "") Then
vcontrat = 0
Else
CAffi = CFormulaire.DAffi
End If

If (CAffi <> 0) Then
If (IsNumeric(CAffi)) Then
ligne = 1
Do While (repere = False)
ligne = ligne + 1
If Cells(ligne, 1).Value = "" Then
repere = True
End If
If Cells(ligne, 1).Value = Val(CAffi) Then
repere = True
trouve = True
End If
Loop
CFormulaire.DManu = Cells(ligne, 2).Value
CFormulaire.DCase = Cells(ligne, 3).Value
CFormulaire.DVersion = Cells(ligne, 4).Value
CFormulaire.DCountry = Cells(ligne, 5).Value
CFormulaire.DDateIRF = Cells(ligne, 6).Value
CFormulaire.DDatereceived = Cells(ligne, 7).Value
CFormulaire.D1st = Cells(ligne, 8).Value
CFormulaire.D2nd = Cells(ligne, 9).Value
CFormulaire.D3rd = Cells(ligne, 10).Value
CFormulaire.DComments = Cells(ligne, 11).Value

Else
MsgBox ("Cas non trouvé")
End If
Else
MsgBox ("Veuillez saisir un numéro de cas valide SVP")
End If

End Sub
 
Dernière édition:

Angelista

XLDnaute Occasionnel
Re : Problème macro avec une recherche non numérique

Bonjour Lone-wolf,

Merci pour ton retour, j'ai tenté avec If Not IsNumeric mais malheureusement cela ne fonctionne pas.
Voici un fichier, merci.
 

Pièces jointes

  • Test.xls
    153 KB · Affichages: 54
  • Test.xls
    153 KB · Affichages: 57
  • Test.xls
    153 KB · Affichages: 59

Angelista

XLDnaute Occasionnel
Re : Problème macro avec une recherche non numérique

Bonjour Tototiti,

Le format sera toujours le même (3 chiffres-3 chiffres-des lettres) mais le code que tu m'a donné me fonctionne pas :(
Si quelqu'un a une idée je suis preneur.

Merci à tous.

Angelista.
 

Angelista

XLDnaute Occasionnel
Re : Problème macro avec une recherche non numérique

Bonjour le fil, le forum,

Quelqu'un aurait il une méthode pour faire la recherche que j'ai marqué au dessus (3 Chiffres - 3 Chiffres - 2 Lettes) avec les -
Quitte à modifier la macro complètement, car la je sèche :(

Merci d'avance pour vos recherches / idées.

Angelista
 

Angelista

XLDnaute Occasionnel
Re : Problème macro avec une recherche non numérique

Bonjour tototiti,

Merci pour ta réponse, en fait je souhaite chercher un numéro de type CCC-CCC-LL via le formulaire et que les informations apparaissent dans ce dernier par rapport à ma recherche, mon quand je met le code que tu m'a donné, ça m'affiche "Cas non trouvé" donc le retour.

Else
MsgBox ("Cas non trouvé")
End If
 

Angelista

XLDnaute Occasionnel
Re : Problème macro avec une recherche non numérique

Rebonjour Tototiti,

Je recopie le code avec le morceau de code remplacé, en fait le résultat et qu'il ne se passe rien quand je clique sur le bouton rechercher du formulaire :

Sub Recher()

Dim lastLine As Long
Dim repere As Boolean
Dim trouve As Boolean
repere = False
trouve = False
lastLine = derniereLigne()

If (CFormulaire.DAffi = "") Then
vcontrat = 0
Else
CAffi = CFormulaire.DAffi
End If

If (CAffi <> 0) Then
If CAffi Like "###-###-*" Then
ligne = 1
Do While (repere = False)
ligne = ligne + 1
If Cells(ligne, 1).Value = "" Then
repere = True
End If
If Cells(ligne, 1).Value = Val(CAffi) Then
repere = True
trouve = True
End If
Loop
CFormulaire.DManu = Cells(ligne, 2).Value
CFormulaire.DCase = Cells(ligne, 3).Value
CFormulaire.DVersion = Cells(ligne, 4).Value
CFormulaire.DCountry = Cells(ligne, 5).Value
CFormulaire.DDateIRF = Cells(ligne, 6).Value
CFormulaire.DDatereceived = Cells(ligne, 7).Value
CFormulaire.D1st = Cells(ligne, 8).Value
CFormulaire.D2nd = Cells(ligne, 9).Value
CFormulaire.D3rd = Cells(ligne, 10).Value
CFormulaire.DComments = Cells(ligne, 11).Value

Else
MsgBox ("Cas non trouvé")
End If
Else
MsgBox ("Veuillez saisir un numéro de cas valide SVP")
End If

End Sub


Merci d'avance
 

tototiti2008

XLDnaute Barbatruc
Re : Problème macro avec une recherche non numérique

Re,

tu peux me décrire ce que tu fais point par point quand tu fais une recherche, le userform s'affiche, et puis ?

tu tapes un code dans Affi et tu cliques sur le bouton Rechercher ?

à quoi sert cette partie du code ?

Code:
    If (CFormulaire.DAffi = "") Then
            vcontrat = 0
        Else
            CAffi = CFormulaire.DAffi
    End If

as-tu remarqué que dans tes 2 lignes, les codes Affi ne sont pas 3 chiffres-3 chiffres-2 lettres
mais 2 chiffres-3 chiffres-2 lettres ?

explique avec des mots les différents cas que doit traiter ta recherche
 

Angelista

XLDnaute Occasionnel
Re : Problème macro avec une recherche non numérique

Merci Tototiti,

Je me mélange les pinceaux avec tous les tests afin que ce fichier fonctionne, donc pour la partie du code c'est comme cela qu'il faut le lire :

If (CFormulaire.DAffi = "") Then
CAffi = 0
Else
CAffi = CFormulaire.DAffi
End If

C'est bien 2 chiffres - 3 chiffres - 2 Lettres qu'il faut rechercher, j'ai donc retiré un # dans le code, mais cela ne fonctionne pas.
Pour répondre, je souhaite simplement via le furmulaire que tu vois à l'ouverture du fichier rechercher les informations de la ligne correspondant à ma recherche fait dans la cellule Affi du formulaire.
Sinon tu mets un chiffre en cellule A2 ou A3 ... et la recherche fonctionne mais pas avec CC-CCC-LL
J'espère avoir était clair mais pas sûr :p

Merci encore
 

tototiti2008

XLDnaute Barbatruc
Re : Problème macro avec une recherche non numérique

Re,

Peut-être un truc comme ça

Code:
Sub Recher()


Dim lastLine As Long, ligne As Long, CAffi As String

    lastLine = derniereLigne()
    ligne = 0
    CAffi = CFormulaire.DAffi
    
    If (CAffi <> "") Then
        If Not CAffi Like "##-###-*" Then
            MsgBox "Format du code non correct"
        Else
            If IsError(Application.Match(CAffi, Range("A2:A" & lastLine), 0)) Then
                MsgBox "Cas non trouvé"
            Else
                ligne = Application.Match(CAffi, Range("A2:A" & lastLine), 0) + 1
                CFormulaire.DManu = Cells(ligne, 2).Value
                CFormulaire.DCase = Cells(ligne, 3).Value
                CFormulaire.DVersion = Cells(ligne, 4).Value
                CFormulaire.DCountry = Cells(ligne, 5).Value
                CFormulaire.DDateIRF = Cells(ligne, 6).Value
                CFormulaire.DDatereceived = Cells(ligne, 7).Value
                CFormulaire.D1st = Cells(ligne, 8).Value
                CFormulaire.D2nd = Cells(ligne, 9).Value
                CFormulaire.D3rd = Cells(ligne, 10).Value
                CFormulaire.DComments = Cells(ligne, 11).Value
            End If
        End If
    Else
            MsgBox "Veuillez saisir un numéro de cas valide SVP"
    End If
        
End Sub
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
157
Réponses
1
Affichages
178

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS