recherche chaine de caractère + stxt en vba

vistla

XLDnaute Junior
Bonjour!

J'ai un soucis en VBA. J'ai fait des recherches sur le forum afin de régler mon problème comme un grand, mais après quelques essais infructueux, je fais appel à vous!

Dans ma colonne B, la chaine de caractère suivante s'y retrouve aléatoirement : CLIENT: 0000000xxx NOM DU CLIENT.

Je voudrais qu'à chaque fois que cette chaine de caractère est trouvé, une extraction de la chaine 0000000xxx soit faite dans la colonne A, devant chaque date (onglet EXEMPLE 1). Au pire, l'extraction pourrait se faire sur chaque ligne et je ferai un tri par la suite (EXEMPLE 2)

J'avais trouvé sur le forum que je devais utiliser la fonction FIND, avec MID, mais je n'ai pas réussi à les combiner ensemble.



Merci de votre aide!
 

Pièces jointes

  • ÉTAT DE COMPTE SEMI DÉTAILLÉ.xls
    42 KB · Affichages: 78

Littledave

XLDnaute Junior
Re : recherche chaine de caractère + stxt en vba

Salut Vistla

Je te propose une solution mais en ajoutant une colonne à ton tableau que tu peux masquer par la suite.

Dans la premier colonne, je teste la présence du mot CLIENT dans la colonne C. S'il est présent alors j'inscrit la ligne correspondante.

Dans la colonne B, je teste la présence du mot FACTURE dans la colonne C. S'il est présent alors je recherche la dernière occurrence de la colonne A (son maximum jusque cette ligne()-1 et en retire le numéro du client grâce à stxt

Je te joins le fichier pour exemple

@++
David
 

Pièces jointes

  • Proposition Etat Comptes.xls
    22.5 KB · Affichages: 91

vistla

XLDnaute Junior
Re : recherche chaine de caractère + stxt en vba

Je m'attendais à un code VBA, mais ceci fait parfaitement l'affaire! Merci! Je dois formater plusieurs fichiers comme ceci pour une importation dans un nouveau logiciel comptable, et ça va me sauver beaucoup de temps!

un gros merci!
 

Littledave

XLDnaute Junior
Re : recherche chaine de caractère + stxt en vba

Re Vistla,

Si tu veux à tout prix le faire en vba, je te propose cette procédure à insérer dans la méthode Open de ton Workbook

Code:
Private Sub Workbook_Open()
For Each Feuilles In Worksheets
   For Each Cellule In Feuilles.UsedRange.Cells
      If Left(Cellule.Value, 6) = "CLIENT" And Cellule.Column = 2 Then NumClient = Mid(Cellule.Value, 9, 10)
      If Left(Cellule.Value, 7) = "FACTURE" And Cellule.Column = 3 Then
        Feuilles.Cells(Cellule.Row, 1).NumberFormat = "0000000000"
        Feuilles.Cells(Cellule.Row, 1).Value = NumClient
      End If
   Next
Next
End Sub

Je te joins ton fichier d'origine modifié avec la procédure VBA

@++
David
 

Pièces jointes

  • Proposition Etat Comptes vba.xls
    48 KB · Affichages: 79

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 528
dernier inscrit
hplus