XL 2013 remplissage automatique d'onglet

Fitgy

XLDnaute Junior
Bonjour à tous et joyeux Poisson d'Avril !

Je bloque sur un gros sujet et je vous demande votre aide avant d'abandonner ^^
Je vous met mon excel en PJ. Je remplis mon premier onglet "Masque d'impression" dans les cellules jaune ce qui me calcul mon résultat dans les grise jusque là tout vas bien. Après je suis sensé copier coller ces cellules dans l'onglet du mois concerné à la bonne date. Vous l'aurez compris je cherche à automatiser ce système pour qu'à chaque fois que j'ai finis de remplir mes données et que mes résultats sont sortie celle-ci s'exporte automatiquement à leur place donc en fonction du mois et du jour.
J'espère avoir étais clair 😅
(les onglets recherche et données (2) ne sont pas utiles à me requête je fait des tests pour pouvoir rechercher un résultats en fonction de sa date ^^)

Merci d'avance ! 😁
 

Pièces jointes

  • Indicateur TRS.xls
    79 KB · Affichages: 22

Fitgy

XLDnaute Junior
Bonjour fanch55,

Je suis abasourdi tellement c'est génial 😍 je te remercie fortement j'essais encore de décortiquer ta macro pour mieux comprendre (parce que j'adore comprendre 😅)

Encore merci tu es au top ! (désolé d'avoir répondu si tard je n'avais plus internet depuis ^^')
 

Fitgy

XLDnaute Junior
Bonjour,
Proposition à analyser :
Bonjour fanch55,

Je reviens vers toi suite à ce sujet je tente de modifier cette macro que tu m'avais renvoyé mais je ne sais pas si il faut la modifier ou en créer une nouvelle pour que ce que je veux fonctionne.
Je m'explique le tableau qui est créer dans tous les onglets mois est un tableau pour que je fasse les calcul sur une machine. Je souhaiterais pouvoir faire les calculs sur d'autre machines maintenant en faite dans chaque moi j'aimerais qu'il y est le tableau 400T, 500T ... et que dans masque d'impression quand je choisi ma machine ça remplisse le bon tableau.
J'ai essayé une première modification qui n'avait rien fait appart planter la macro, j'ai réfléchie aussi sur refaire la même macro pour chaque tableau mais j'ai un doute sur le fait que ça fonctionne...

Je n'arrive pas à comprendre la formule dans la colonne C1 pour les titre comment puis-je intégrer le nom de la machine avec le mois ?

J'ai modifié la page modèle pour que tu vois comment je voudrais mettre les tableaux.

Merci d'avance pour ta réponse.
 

Pièces jointes

  • Indicateur TRS test.xls
    483 KB · Affichages: 8

fanch55

XLDnaute Barbatruc
Bonjour @Fitgy ,

La cellule C1 extrait le nom de la feuille en cours du nom du fichier :
CELLULE("nomfichier";C1) ==> c:\nom_du_dossier\[nom_du_fichier]Onglet
La formule si longue se résume à : on prend tous ce qui est à droite du crochet fermant ....

Pour ta demande, si je comprend bien,
tu voudrais juste que le texte qui est en cellule D28 de chaque mois :
Indicateur TRS 400T du Mois de Mai 2021
comporte le nom de la machine et du mois , nom que tu indiqueras sur le masque .

Ce que je te propose est de modifier pour chaque mois :

la formule de la cellule C1 pour y inclure l'année en cours
=DROITE(CELLULE("nomfichier";C1);NBCAR(CELLULE("nomfichier";C1))-TROUVE("]";CELLULE("nomfichier";C1))) & " " & ANNEE(AUJOURDHUI())
et la cellule D28 par la formule :
="Indicateur TRS du Mois de " & C1 & " pour la machine " & 'masque d''impression'!D3
tu peux la modifier à ta convenance, pas d'impact .

D'autre part, tu devrais modifier les formules sur le masque pour éviter les erreur comme Div/0 :
=SIERREUR(F15/F13;0)
 

Pièces jointes

  • Indicateur TRS.xls
    491 KB · Affichages: 5

Fitgy

XLDnaute Junior
Bonjour @Fitgy ,

La cellule C1 extrait le nom de la feuille en cours du nom du fichier :
CELLULE("nomfichier";C1) ==> c:\nom_du_dossier\[nom_du_fichier]Onglet
La formule si longue se résume à : on prend tous ce qui est à droite du crochet fermant ....

Pour ta demande, si je comprend bien,
tu voudrais juste que le texte qui est en cellule D28 de chaque mois :

comporte le nom de la machine et du mois , nom que tu indiqueras sur le masque .

Ce que je te propose est de modifier pour chaque mois :

la formule de la cellule C1 pour y inclure l'année en cours

et la cellule D28 par la formule :

tu peux la modifier à ta convenance, pas d'impact .

D'autre part, tu devrais modifier les formules sur le masque pour éviter les erreur comme Div/0 :
D'accord je comprend mieux la formule maintenant, je te remercie.

Et non ce n'est pas exactement ce que je recherche en me relisant je comprends que tu es mal compris je n'ai pas été clair.

En faite il me faut un tableau par machine par mois. Donc par exemple je dois rentrer un résultat pour la 500T le 15 Janvier il faudrait qu'en sélectionnant 500T dans D3 dans masque d'impression mon résultat ce range dans le deuxième tableau du mois de Janvier.
D'où mon problème comment faire pour qu'en choisissant dans D3 400T ce soit le Tableau de la 400T sur le bon mois qui ce remplisse et ainsi de suite pour les autres.
 

fanch55

XLDnaute Barbatruc
Modèle modifié :
  • cellule C1 intègre l'année
  • les descripteurs de graphique sont "formularisés"
  • chaque groupe de lignes débutent avec le nom de machine.
Sub Testenreg modifiée pour rechercher en premier lieu la "machine".
 

Pièces jointes

  • Indicateur TRS Multi.xls
    508.5 KB · Affichages: 4

Fitgy

XLDnaute Junior
C'est vraiment top et je comprends le principe ! Mais j'ai deux problèmes à chaque fois que j'ouvre un onglet il me dit qu'excel à rencontré un problème au niveau d'une ou plusieurs feuilles de calculs je me demande si ça ne viendrais pas de ma version d'excel ?
Et le deuxième c'est que quand je veux rentrer les données pour la 400t ça marche mais si je veux rentrer pour la 500t ça me réinitialise tout alors que je voudrais garder tout les résultats est ce que c'est à ce niveau là dans la macro qu'il faut que je modifie ?
"Voulez-vous ré-initialiser celui-ci ?", vbYesNo + vbQuestion) = vbYes Then
 

Pièces jointes

  • Indicateur TRS Multi.xls
    967 KB · Affichages: 4

fanch55

XLDnaute Barbatruc
Après analyse, j'ai modifié les graphiques de la feuille modèle ( il manquait des données/ ou la transpo copier/coller était incorrecte) ).

Le problème semble venir des graphiques:
Quand on travaille avec un fichier xlsm , tout fonctionne sans message d'erreur .
Si on prend la version Xls compatible 2013, un message d'erreur est affiché quand on découvre un graphique.

Pour le ré-init, la question n'est posée que le premier jour du mois.
Pour la première saisie ( quelle que soit la machine), répondre oui, pour les autres répondre non .
ceci ne concerne que le 1er jour .

Je joint les 2 versions (d'excel)
 

Pièces jointes

  • Indicateur TRS Multi.xlsm
    286.5 KB · Affichages: 7
  • Indicateur TRS Multi.xls
    961.5 KB · Affichages: 5

Fitgy

XLDnaute Junior
Après analyse, j'ai modifié les graphiques de la feuille modèle ( il manquait des données/ ou la transpo copier/coller était incorrecte) ).

Le problème semble venir des graphiques:
Quand on travaille avec un fichier xlsm , tout fonctionne sans message d'erreur .
Si on prend la version Xls compatible 2013, un message d'erreur est affiché quand on découvre un graphique.

Pour le ré-init, la question n'est posée que le premier jour du mois.
Pour la première saisie ( quelle que soit la machine), répondre oui, pour les autres répondre non .
ceci ne concerne que le 1er jour .

Je joint les 2 versions (d'excel)
Bonjour fanch55,

Ah super ça marche impeccable et donc maintenant quand je veux rajouter une machine je dois juste faire un nouveau tableau dans modèle avec le nom de la machine à gauche ?

et juste par curiosité je ne comprends à quoi sert cette fonction s'il te plaît ?
Function Inter(A, B) As Boolean
Inter = Not Intersect(A, B) Is Nothing
End Function

Merci pour le temps que tu me consacre 🤗
 

fanch55

XLDnaute Barbatruc
quand je veux rajouter une machine je dois juste faire un nouveau tableau dans modèle avec le nom de la machine à gauche ?
Tout à fait .
VB:
Function Inter(A, B) As Boolean
     Inter = Not Intersect(A, B) Is Nothing
End Function
Ce code est une fonction personnelle pour les mises en forme conditionnelles de la feuille "masque d'impression",
c'est elle qui donne les couleurs jaunes en colonne F pour indiquer les cellules qui vont être copiés dans les onglets Mois .
(machine n'a rien à voir ....)

Pour résumer, si la cellule fait partie de la zone "Zone_Jaune", elles est coloriée en jaune ... 🤗
1621361847287.png

1621362078079.png
 

Fitgy

XLDnaute Junior
Tout à fait .
VB:
Function Inter(A, B) As Boolean
     Inter = Not Intersect(A, B) Is Nothing
End Function
Ce code est une fonction personnelle pour les mises en forme conditionnelles de la feuille "masque d'impression",
c'est elle qui donne les couleurs jaunes en colonne F pour indiquer les cellules qui vont être copiés dans les onglets Mois .
(machine n'a rien à voir ....)

Pour résumer, si la cellule fait partie de la zone "Zone_Jaune", elles est coloriée en jaune ... 🤗
Regarde la pièce jointe 1106007
Regarde la pièce jointe 1106008
Ah d'accord je comprends mieux !

Je te remercie pour ta patience, ton aide et ta pédagogie tu m'as appris beaucoup de choses 😊

Encore merci et bonne soirée à toi 😊
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG