Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…