XL 2016 macro automatisation de remplissage de cellules

Manu9392

XLDnaute Nouveau
Bonjour,
Je suis à la recherche de codes VBA car je bloque sur un sujet.

Imaginons que j'octroie du crédit à 4 amis qui sont identifiés par des codes (ID).
Dans le fichier joint, il y'a :

- L'onglet "Détail" où on trouve l'ID, la maturité de la dette, le montant et le nombre de renouvellements possible pour chaque dette (Rotation).
Ensuite suivent 11 colonnes (Plage "Date_Projections") qui doivent afficher les ID en fonction du contenu de "rotation" (30D = 30 jours, 3M = 3mois...). J'ai mis des données en rouge pour illustrer le rendu attendu.

- L'onglet "Synthèse" où s'affichent en plus les montants des dettes en fonctions des ID qui apparaissent sur la plage "Date_Projections" de l'onglet "Détail".

Mon problème réside dans l'automatisation de l'affichage des ID dans la plage "Date_Projections" de l'onglet "Détail".

Auriez vous des idées? Je redoute de devoir me taper d'innombrables formules.
Manu
 

Pièces jointes

  • Projections.xlsx
    10.7 KB · Affichages: 61

Manu9392

XLDnaute Nouveau
En fait, si je me base sur la macro, je devrais faire 230 boucles correspondant à 230 rotations (de 0 à 599M, et 30D qui est unique).

Je suis donc entrain de réfléchir à comment avoir le minimum de boucles possible en m'inspirant de ce tu as fait.

La condition serait, en plus des conditions de date, et en excluant le cas du 30D:
- de regarder dans les cellules de la colonne rotation
- En fonction du nombre de caractères (min 2, max 4), prendre uniquement les chiffres. Ils serviront de base de rotation.

En résumé, je cherche à me baser sur ce code : If Cells(X, 20) Like "30*" And Cells(X, 20) Like "*D" And Cells(4, j) <> "" Then

Toute aide est sera la bienvenue.

Merci.
 

JBARBE

XLDnaute Barbatruc
Re,
La macro test1 a été simplifiée en y mettant deux inputbox demandant un N° et une lettre en majuscule ( exemple 3M)!
Ainsi l'on peut mettre le nombre de mois voulu mais seulement les MOIS !
Peut-être cela peut t'aider par la suite !
D'autre part, j'ai partagé la rotation les lettres d'un coté et les chiffres de l'autre !
Je ne vois pas d'autre solution !
Bonne soirée !
 

Pièces jointes

  • Projections.xlsm
    26.9 KB · Affichages: 40

JBARBE

XLDnaute Barbatruc
Bonsoir à tous,
La macro test1 prend en charge du nombre 1 à 31 ( peut aller au-delà )
Tout les mois tout les jours et toutes les Années sont pris en charge par la macro !
Identifié ainsi :
If Cells(X, 6) = "M" Then >>>pour mois
J'ai abandonné les deux inputbox trop encombrant !
Reste à savoir ce que tu veux faire sur les + de 200 lignes ?
A tester !
Bonne soirée !
 

Pièces jointes

  • Projections.xlsm
    30.4 KB · Affichages: 50
Dernière édition:

Manu9392

XLDnaute Nouveau
Bonjour JBarbe,

J'ai finalement essayé la version suivante, en ne séparant pas les rotations :
If Left(Sheets("Detail").Cells(X, 5), 1) = 1 Then ....
If Right(Sheets("Detail").Cells(X, 5), 1) = "M" Then ...

La prochaine étape est de voire s'il y'a moyen de faire une boucle pour ne pas avoir à répéter le code 230 fois.

Bonne journée !
 

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat