Recherche série de caractères

Bonsoir,

je recherche une formule simple ou un code VBA (je suis débutant en VBA) pour récupérer un série de caractères (chiffres) intégré dans une phrase.

exemple: Rapatrier dans une colonne un "Numéro de dossier" situé dans un autre onglet "Rapport1". Le numéro est unique.

Fichier en PJ pour expliciter mes commentaires.

Je vous remercie d'avance pour vos idées et le temps que vous voudrez bien me consacrer.

Bonne soirée

12classeur1.xlsx (13.47 Ko)

Bonjour,

A voir ton fichier de test je dirais

=RECHERCHEV(A2;Rapport1!A:B;2;FAUX)

tout simplement.

eric

Bonsoir Eriic,

merci pour ta réponse rapide claire et efficace. ça traite mon problème.

Bonne soirée

Bonsoir Ducrocq, Éric, bonsoir le forum,

Une proposition VBA :

Sub Macro1()
Dim O1 As Worksheet 'déclare la variable O1 (Onglet 1)
Dim O2 As Worksheet 'déclare la variable O2 (Onglet 2)
Dim TC1 As Variant ' déclare la variable TC1 (Tableau de Cellules 1)
Dim TC2 As Variant ' déclare la variable TC2 (Tableau de Cellules 2)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)

Set O1 = Sheets("Feuil1") 'définit l'onglet O1
Set O2 = Sheets("Rapport1") 'définit l'onglet O2
TC1 = O1.Range("A1").CurrentRegion 'définit le tableau de cellules TC1
TC2 = O2.Range("A1").CurrentRegion 'définit le tableau de cellules TC2
For I = 2 To UBound(TC1, 1) 'boucle 1 : sur toutes les lignes I du tableau de cellules TC1 (en partant de la seconde)
    For J = 2 To UBound(TC2, 1) 'boucle 2 : sur toutes les lignes J du tableau de cellules TC2 (en partant de la seconde)
        'condition 1 : si la valeur ligne I colonne 1 de TC1 est égale à la valeur ligne J colonne 1 de TC2
        If CStr(TC1(I, 1)) = CStr(TC2(J, 1)) Then
            'condition 2 : si la valeur ligne I colonne 2 de TC1 sans les espaces
            'est contenue dans la valeur ligne J colonne 3 sans les espaces
            If InStr(1, CStr(Replace(TC2(J, 3), " ", "")), CStr(Replace(TC1(I, 2), " ", ""))) > 0 Then
                'récupère dans la ligne I colonne 3 de TC1 la valeur sous forme de texte de la ligne J colonne 2 de TC2
                TC1(I, 3) = "'" & CStr(TC2(J, 2))
                Exit For 'sort de la boucle 2
            End If 'fin de la condition 2
        End If 'fin de la condition 1
    Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
'renvoie dans la cellule C1 (redimensionnée) de l'onglet O1 la troisième colonne du tabelau TC1
O1.Cells(1, 3).Resize(UBound(TC1, 1), 1) = Application.Index(TC1, , 3)
End Sub

Je crains Éric, que la formule ne fonctionne pas sur les références en doublons...

Je crains Éric, que la formule ne fonctionne pas sur les références en doublons...

C'est même sûr

Mais comme il ne l'a pas évoqué, et que je n'ai compris non plus intégré dans une phrase j'ai été au plus simple.

eric

Bonsoir ThauThème, Eriiic et le forum,

en effet les doublons ne sont pas pris en compte dans la formule rechercheV, je m'en suis aperçu après.

Je vais essayer ton code VBA.

Merci de votre aide


Je viens de tester, c'est nickel et en plus bien expliqué.

Merci pour tout, ça va me simplifier franchement mes saisies.

Bonne soirée, continuez comme ça, ne changez rien.

Rechercher des sujets similaires à "recherche serie caracteres"