Recherche conditionnel spécifique

Bonjour à tous.

Après quelques recherche sur le net infructueuse je me tourne vers vous car je n' arrive pas à faire sur vb ce que je souhaites.

Ex : Dans la colonne D je voudrais rechercher tous termes composé de 5 chiffres, un point, une lettre et 4 chiffres ( 12345.A1234 ) le copier et le coller sur la même ligne mais dans la colonne A.

Je ne sais pas comment additionner la fonction rechercher + les différentes conditions.

Merci votre aide

Bonjour,

code à tester

Sub test()
Application.ScreenUpdating = True
Dim derLig As Long
derLig = Range("D" & Rows.Count).End(xlUp).Row

For a = 1 To derLig

If Cells(a, 4) Like "#####.[a-z A-Z]####" Then Cells(a, 1) = Cells(a, 4)

Next a

Application.ScreenUpdating = True
End Sub

Salut Game Over

Merci pour ta réponse aussi rapide.

J' ai testé mais il se passe rien. J' ai l impression qu' il reconnait pas le format "#####.[a-z A-Z]####".

Bizarre... est ce que tu peux poster ton fichier ?

Voilà ce que ça donne depuis mon fichier :

17benben.xlsm (15.01 Ko)

J'ai mis un exemple pour que tu puisses voir.

24benben-1.xlsm (17.18 Ko)

Le code fonctionne... tu n'avais pas de résultat en ligne 10 car ton No était suivi de 2 espaces.

lorsque tu les retires, le code fonctionne tout à fait normalement.

Exact je ne les avais pas vu

J' ai essayé de rajouter 2 espaces pour pouvoir utiliser la macro mais ça marche pas. J'ai trop de lignes pour pouvoir les changer à la main.

If Cells(a, 4) Like "#####.[a-z A-Z]####  " Then Cells(a, 1) = Cells(a, 4)

Je ne peux pas utiliser la fonction remplacer car trop de variables et j' ai rien trouvé dans le format personnalisé.

As tu une idée ?

BenBen a écrit :

As tu une idée ?

Remplace ta ligne par celle ci :

If Cells(a, 4) Like "#####.[a-z A-Z]####" Or Cells(a, 4) Like "#####.[a-z A-Z]#### " Or Cells(a, 4) Like "#####.[a-z A-Z]####  " Then Cells(a, 1) = Cells(a, 4)

Le code marche lorsqu'il n'y a pas d'espace du tout, lorsqu'il y en a un ou deux.

Lorsque je retape les chiffres en laissant zéro espace pour le premier, un espace pour le deuxième deux espaces pour le troisième, ça fonctionne.

    Sub test()
    Application.ScreenUpdating = True
    Dim derLig As Long
    derLig = Range("D" & Rows.Count).End(xlUp).Row

    For a = 1 To derLig

    If Cells(a, 4) Like "#####.[a-z A-Z]####" Or Cells(a, 4) Like "#####.[a-z A-Z]#### " Or Cells(a, 4) Like "#####.[a-z A-Z]####  " Then Cells(a, 1) = Cells(a, 4)

    Next a

    Application.ScreenUpdating = True
    End Sub

     

Mais si j' essai avec le format d' origine, il fonctionne pas ??

16benben-1.xlsm (17.93 Ko)

Le double espace à la fin des cellules posant problème n'est pas reconnu comme étant des espaces par Excel.

J'ai donc extrait ce double caractère et l'ai copié dans la cellule G1 en jaune... donc sans lui, cette macro ne fonctionnera pas correctement.

Si tu dois appliquer la macro sur un autre fichier, arrange toi pour copier/coller ( fais un Ctrl c - Ctrl v) la cellule G1 à la même place dans ton autre document. le code a également été modifié.

Salut Game over,

Ca fonction nickel. J'aurais pas pensé à ça.

Un grand merci pour ton aide.

Rechercher des sujets similaires à "recherche conditionnel specifique"