Recherche de mots dans cellules

laurent45

XLDnaute Occasionnel
Bonsoir le Forum,

Je repars avec un nouveau projet et j'ai un problème à vous soumettre.

Depuis que j'ai changé de banque, l'interprétation des téléchargements des relevés n'est plus reconnu correctement par le programme que j'utilisais pour la gestion de mon budget.

Je souhaite donc créer un programme qui pourra faire ce travail.

Je pars de la feuille que donne le téléchargement, mais pour être traité, j'ai besoin de créer des association entre les libellés du relevé de compte, et mes rubriques de gestion de budget afin de récupérer plus simplement les montants dans les bonnes colonnes.

Le soucis est le suivant, je n'arrive pas à faire ce travail d'interprétation.
J'ai une feuille "Compte"=>le relevé, une feuille "Associations"=>2 colonnes (mot clé dans le libellé ; nom rubrique feuille "Gestion Buget"), et enfin la feuille "Gestion Budget"=> récupération des montants.

J'ai fait se code, qui ne me crée pas d'erreur (c'est déjà ça), mais qui ne donne aucun résultat :

Code:
Option Explicit
Option Compare Text

Dim i As Integer, DerniereLigne As Integer
Dim cel As Range

Private Sub Association()
Dim LeMot(17, 1) As Variant, mot As String

'Remplissage du tableau LeMot avec la Feuille "Associations"
With Sheets("Associations")
    DerniereLigne = .Range("A65536").End(xlUp).Row
    'ReDim LeMot(DerniereLigne - 1, 1)
    For i = 1 To 18
        LeMot(i - 1, 0) = .Range("A" & i)
        LeMot(i - 1, 1) = .Range("B" & i)
    Next i
End With

'Test par ligne des associations aux mots clés
With Compte
    DerniereLigne = .Range("A65536").End(xlUp).Row
    For Each cel In .Range("C2:C" & DerniereLigne)
        For i = 0 To 17
            If cel.Value = LeMot(i, 0) Then
                Cells(cel.Row, 8) = LeMot(i, 1)
            End If
        Next i
    Next cel

End With
End Sub
Pour le remplissage du tableau LeMot, j'aimerais utiliser ReDim afin de pouvoir ajouter ultérieurement de nouvelles associations.
Après mes premiers tests, ce que je remarque, c'est que la lecture des cellules se fait en entier. Donc, je n'ai pas le résultat escompté. je souhaite que ne soit reconnu que les expressions saisie dans la feuille "Association", et non toute la cellule.

Si vous avez des suggestions...

Bonne soirée

Laurent
 
Dernière édition:

laurent45

XLDnaute Occasionnel
Re : Recherche de mots dans cellules

Re,

Petite modif, mais qui demande correction

Code:
'Test par ligne des associations aux mots clés
With Compte  'Feuille du relevé
    DerniereLigne = .Range("A65536").End(xlUp).Row
    For Each cel In .Range("C2:C" & DerniereLigne)
        For i = 0 To 17
            If cel.Find(LeMot(i, 0)) = True Then
                Cells(cel.Row, 8) = LeMot(i, 1)
            End If
        Next i
    Next cel
End With
 

ODVJ

XLDnaute Impliqué
Re : Recherche de mots dans cellules

Bonsoir,

je mettrais plutôt ce code :
Code:
'Test par ligne des associations aux mots clés
With [COLOR=red]Sheets("Compte")[/COLOR]  'Feuille du relevé
    DerniereLigne = .Range("[COLOR=red]C[/COLOR]65536").End(xlUp).Row
    For Each cel In .Range("C2:C" & DerniereLigne)
        For i = 0 To 17
            If [COLOR=red]InStr(cel, LeMot(i, 0)) > 0[/COLOR] Then
                Cells(cel.Row, 8) = LeMot(i, 1)
                [COLOR=red]Exit For[/COLOR]
            End If
        Next i
    Next cel
End With

A+
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 571
Messages
2 089 808
Membres
104 278
dernier inscrit
LENZY