Recherche et remplace avec condition (excel 2010)

Résolu/Fermé
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018 - 23 juin 2015 à 15:09
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018 - 25 juin 2015 à 14:37
Bonjour,

J'importe dans excel des relevés bancaires et je suis en train de refaire au complet ma macro pour le triage de toutes les transactions (tous les dépôts en haut, tous les retraits en bas, type de dépôt/retrait regroupés, avec un sous-total, ordre chronologique, etc...)

Je bute sur un petit problème. J'aimerais regrouper ensemble tous les différents types de frais bancaires. Je vous joins un exemple très résumé, avec quelques données seulement. Dans la section du haut, ce sont différents types de retraits. Ceux en jaune sont ceux que je veux regrouper. Le résultat souhaité se retrouve en bas.
A la ligne 9, ce sera très facile. Je n'aurai qu'à faire un recherche/remplace pour éliminer le terme Paiement préaut. pour le remplacer par rien, afin que le reste se retrouve au début de la cellule. Le tri en ordre alphabétique l'inclura automatiquement.
Le problème est à la ligne 10. Ce sont des frais de virement. Ils sont toujours de $25.00. Mais je ne peux pas rechercher "virement" et le remplacer par
"frais virement", car ça remplacerait aussi la ligne 11 qui elle, est un VRAI virement. Alors comment puis dire: si colonne B = virement ET colonne C = $25.00 alors remplace le mot virement par frais virement. Par la suite, le tri fera la job et je pourrai faire mon sous-total.
J'ai toujours des problèmes à composer une fonction. Mais je suis persuadée que c'est faisable.

merci pour votre aide.
bonne journée.
https://www.cjoint.com/c/EFxnjnhpyeV


A voir également:

7 réponses

via55 Messages postés 14398 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 10 avril 2024 2 701
23 juin 2015 à 16:38
Bonjour,

Une possibilité simple :
En colonne E recopier la colonne A et en colonne G recopier la colonne C
En F1 mettre cette formule :
=SIERREUR(SI(ET(TROUVE("Virement";B1);C1=25);"Frais virement";B1);B1)
et l'étirer au bas (double clic sur carré noir en bas à droite de la cellule)

Copier tout ce nouveau tableau et le coller sur une nouvelle feuille par collage spécial, Valeurs uniquement
Ne reste plus qu'à appliquer le tri sur ce tableau

Cdlmnt
Via
0
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018
23 juin 2015 à 16:47
Génial, ça fonctionne.
merci beaucoup
bonne journée.
0
via55 Messages postés 14398 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 10 avril 2024 2 701
23 juin 2015 à 16:49
Ou alors mieux, sans tableau annexe, par une seule formule :
=SOMME.SI(B1:B11;"*Frais*";C1:C11)+SOMME.SI.ENS(C1:C11;B1:B11;"*Virement*";C1:C11;25)

Cdlmnt
Via
0
j'aime bien aussi la 2e solution, mais je veux pouvoir trier par la suite en ordre alphabétique et que tous les frais se regroupent ensemble. Le pourquoi du virement qui devient frais virement.
La première solution est exactement ce que je cherchais. Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018
23 juin 2015 à 19:45
Via55: Il y a un détail auquel je n'avais pas pensé.
Comme le relevé bancaire n'a pas toujours le même nombre de ligne d'un mois à l'autre, ma macro doit tenir compte de ça. Donc, pour les besoins de l'exemple, j'extensionne ta commande jusqu'à la ligne 30.
Dans la feuille A, c'est le modèle de départ. Dans la feuille B, c'est la macro exécutée avant que je la continue. Etant donné que la formule dans la colonne E va jusqu'à la ligne 30, il est normal que ça donne comme résultat des 0. J'ai rajouté dans la macro une recherche pour remplacer ces 0 de cette colonne par rien du tout, mais regarde le résultat étrange. Non seulement les 0 ne sont pas disparus, mais ça rajoute des info dans la ligne 20 et 30 (et à chaque 10e ligne si je continue plus loin).
Et dans la feuille C, en principe, l'étape suivante dans ma macro serait que je copierais la colonne E à la colonne B, valeur seulement, puis j'effacerais la colonne E. Mais je ne suis pas plus avancée, j'ai encore ces 0 et des lignes non désirées. Comment puis-je dire dans ma macro de copier la formule vers le bas, mais jusqu'à ce qu'il n'y ait plus rien dans la colonne B ?

merci

https://www.cjoint.com/c/EFxrKUsjI3V
0
via55 Messages postés 14398 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 10 avril 2024 2 701
23 juin 2015 à 22:02
Re,

Macro qui copie la formule depuis E1 jusqu'à la dernière ligne remplie de B :
Sub remplacement()

Dim Ligne As Long
Ligne = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
    Range("E1").Select
    ActiveCell.FormulaR1C1 = _
        "=IFERROR(IF(AND(FIND(""Virement"",RC[-3]),RC[-2]=25),""Frais virement"",RC[-3]),RC[-3])"
    Selection.AutoFill Destination:=Range("E1:E" & Ligne), Type:=xlFillDefault
End Sub


Cdlmnt
Via
0
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018
25 juin 2015 à 14:37
merci beaucoup. ça fonctionne à merveille !
0