XL 2010 pages recap

fabrice31

XLDnaute Junior
bonjour,

tout d'abord, merci à Vgndron pour mon dernier problème, et à tous ceux qui nourrissent ce forum.

voici mon nouveau dilemme:
j'aimerai avoir un page de recap de mon suivi matériel évolutif en fction de la date du jour.
en sélectionnant une période grâce à 2 liste déroulantes (année / mois + trim), ou calendrier "de....à..." avec "à" aujourdhui() auto, je voudrai compiler les infos obtenue dans les pages suivantes à partir de la date du jour.
pb: sur la feuille 'année N', j'ai 1 semaine N-1 et 1 mois N+1. je ne veux pas compter 2 fois ces infos. (possibilité de supprimer ce système, mais je préférerai le garder.
je ne vois pas comment intégrer dans mes formule l'idée de commencer à telle date (liste déroulante) jusqu’à aujourd’hui....

mon fichier en PJ

en félicitant ceux qui ont compris, et remerciant ceux qui plancheront
 

Pièces jointes

  • tableau Off.xlsm
    1.2 MB · Affichages: 30

vgendron

XLDnaute Barbatruc
Re moi
une version 4bis avec plusieurs choses..
1) dans la feuille Données: j'ai remis TOUTES les zones nommées: Liste_Années, Liste_Mois.....
2) pour définir ton calendrier (colonnes M à ....)
tu as deux possibilités
Possibilité 1: (cas des feuilles 2018 2019 et 2020)
en A1: tu utilises une liste de validation pour sélectionner l'année
en M6: formule pour commencer au 28 decembre de l'année précédente (pourquoi le 28 ..??)
puis de N6 jusqu'à la fin: jour +1 ==> jusqu'à...????

Possibilité 2: (cas de la feuille 2017)
tu utilises un spin bouton qui permet de diminuer ou augmenter l'année en A1
pour le calendrier en ligne 6: on garde les memes formules
(l'idée derrière.; c'est de ne garder QU'UNE seule feuille pour l'année choisie en A1)
puisqu'apparemment. quelque soit l'année, toutes les infos des colonnes A à K sont identiques..
seul le calendrier semble te servir à visualiser qui est en réparation ou étalonnage ou autre... à voir)

3) pour ton formulaire "Planning"
à son ouverture. seul le textbox Kalilab est accessible
--> tu saisis un numéro
s'il n'existe pas==>
* tu le sais tout de suite (comme toutes les années sont identiques, je ne cherche sa présence QUE sur l'année en cours)
* et tu ne peux rien faire: à part re-saisir un numéro existant
s'il existe ==>
* les boutons sont activés
* et si il y a des infos (comme dates de réparation ou Etaonnage) elles sont chargées

--> tu cliques sur valider
si il y a des dates dans les textbox pour une réparation (ou Etalonnage)
TOUTE la période dans le calendrier est remplie avec des R (ou E)
1ere limitation pour l'instant: ca ne marche QUE si toute la période est dans l'année en cours
2eme: comme je ne sais pas à quoi correspondent vraimeent les dates en Colonne D E F et G.. suis pas sur de ce qu'il faut faire.

3eme: si tu modifies des dates déjà préremplie.. je ne sais pas si tu peux le faire et ce qu'il faut faire ensuite..

d'ou la question générale; à quoi destines tu l'utilisation de ce "Planning"
il faudrait que tu expliques les actions autorisées ou pas etc etc etc..

voila pour ce début.
 

Pièces jointes

  • tableau Off Rev4 BIS.xlsm
    1.2 MB · Affichages: 33

fabrice31

XLDnaute Junior
salut chef

ne touche pas le fichier aujourd'hui: repos pour toi et digestion des infos pour moi....
es tu sur d'avoir posté ta dernière version?
ca bug dès l'ouverture du formulaire "mon userform"..
les ranges nommées ne sont plus définies correctement..
c'est ma dernière version. mais mon_userform marchait bien avant d'attaquer le nouveau projet... j'ai recuperé le tien.

ensuite, une des dates n'est pas inscrite sur la bonne colonne...
j'ai enlevé les colonnes grises dans le calendrier . je pensais m'en servir de recap fin de mois, mais si la page recap est bien faite, ça ira.

dans La version 4 ci jointe j'ai gardé ta dernière structure de feuille
le code ajoute un nouveau matériel dans TOUTES les feuilles
et la date d'étalonnage est bien en colonne F
la formule en colonne K est bien recopiée sur la ligne qui vient d'etre insérée
les formules en colonnne B et K sur la ligne de fin bloc sont mises à jour pour prendre en compte la nouvelle ligne insérée
ok! j'ai remis les formules dans le calendrier au bon endroit. j'ai juste un bug pour début 2017: la formule est dans les cellules mais masquée. je ne vois pas pk...

pour le second formulaire "Planning"

il faudrait que tu expliques à quoi il sert?
de ce que j'ai vu
1) te entres un numéro de Kalilab
2) tu cliques sur une des option button
selon le bouton, tu peux saisir les TB de gauche ou de droite (ce serait bien de les renommer dans un ordre logique..
et ensuite??
quand tu fais valider.. ca bug. parce que le fl n'est pas défini.
que souhaites tu faire des infos saisies et ou?
déjà, on peut effectivement travailler dans la feuille active, a condition qu'elle contienne la date du jour...
je souhaiterai, en saisissant le n° kalilab, donner un état à ma pompe:
pour la P1000:
- si je coche 'chantier' alors mettre "C" dans la case (P1000;date)
-si je coche 'stock' alors mettre "S" dans la case (P1000; date)
-si je coche réparation, débloquer les 3 textbox dessous:
si "date de début" dans le calendrier est vide, la remplir ainsi que le motif et recopier ces valeur dans les colonnes H et J de la pompe
si "date de début" non vide, la recopier depuis le calendrier ds TB ; bloquer la TB; recopier aussi le motif sans le bloquer ; passez à la "date de fin". -> remplir le calendrier de "R" entre les dates de début et fin de la pompe + enregistrer les données ("n° kalilab" +"modèle" + "début"+"devis"+ "fin" + "motif") dans le 'suivi réparation' + effacer (date de début + motif + devis)
-si je coche "étalonnage": débloquer les 3 textbox dessous
si "date de début" dans le calendrier est vide, la remplir et recopier la valeur dans la colonne E de la pompe
si date de début est non vide, la recopier, la bloquer, et passer à la date
d’étalonnage et de fin. remplir la colonne G et écraser la colonne F de la pompe.
!! si possible, rajouter la date d’étalonnage écrasée à la suite des commentaires en colonne B et actualisé dans les feuilles isnumeric a droite de la feuille active
!! la colonne F doit être actualisée dans les feuilles Isnumeric'' à droite de la feuille active'.

-> je renomme les TB comme il faut.
 
Dernière édition:

fabrice31

XLDnaute Junior
salut grand chef!!

autre question
est ce qu'un numéro de kalilab peut être présent dans une feuille et pas dans une autre?

tres bonnes questions qui m'a ouvert les yeux....
les numéros Kalilab existant sont les mêmes partout. mais...lorsqu'on saisi un nouveau matériel avec le 1er USF, il doit etre que ds les feuilles de l'année en cours et suivantes:
si je crée un matériel en 2019, il n'a rien a faire en 2018 ni 2017! donc le controle du no_kalilab doit se faire sur la page active.

je vois tes nouveautés et reviens vers toi.

MERCI MERCI MERCI MERCI
 

fabrice31

XLDnaute Junior
Possibilité 2: (cas de la feuille 2017)
tu utilises un spin bouton qui permet de diminuer ou augmenter l'année en A1
pour le calendrier en ligne 6: on garde les memes formules
(l'idée derrière.; c'est de ne garder QU'UNE seule feuille pour l'année choisie en A1)
puisqu'apparemment. quelque soit l'année, toutes les infos des colonnes A à K sont identiques..
seul le calendrier semble te servir à visualiser qui est en réparation ou étalonnage ou autre... à voir)
tres fort!!! mais en testant, mes données "C" / "S"... restent les mêmes malgré le changement d'année.
et du coup, les premières colonnes changent au fil des années.
 

vgendron

XLDnaute Barbatruc
mes données "C" / "S"... restent les mêmes malgré le changement d'année.
c'est normal, nulle part le code tient compte du changement de l'année..
et au vu de tes explications (un nouveau matos ne doit apparaitre qu'à partir de son année d'ajout) je pense qu'il vaut mieux rester sur la possibilité 1 avec une feuille par année

pour le comportement du formulaire "Planning", j'ai un peu plus d'info, merci
je regarde ce que je peux faire et reviens vers toi
tu as déjà quelques éléments dans le code fourni dans mon dernier post :-D
 

fabrice31

XLDnaute Junior
bon,

j'ai pas pu finir mais j'ai annoter partout.
le "c" et "S" marche.

j'ai du mal a faire remonter les valeurs du calendrier vers l'USF.
idem pour le verrouillage des cellules déjà remplient.
toutes les dates saisies dans l'usf doivent rentrer dans la ligne du matériel concerné.
j’espère que tu comprendras.

bonne soirée et encore merci
 

Pièces jointes

  • tableau Off2.xlsm
    1.3 MB · Affichages: 15

vgendron

XLDnaute Barbatruc
j'ai du mal a faire remonter les valeurs du calendrier vers l'USF.
je pense que tu ne le fais pas au bon moment..
j'avais commencé quelque chose ou: dès que tu saisis un numéro de Kalilab
1) on vérifie s'il existe
2) si il y a des infos déjà saisies dans la feuille, on les récupère et on les mets dans le formulaire
3) donc si les textbox contiennent des dates, elles sont verrouillées --> sinon libres pour que tu puisses mettre une date de fin
4) au clic "valider", les infos sont sauvegardées (ou écrasées) dans la feuille excel

il faut que je règle quelques petits soucis, et je te donne ca demain

je pense qu'il y a des Textbox inutiles :-D
bonne soirée
 

vgendron

XLDnaute Barbatruc
Hello !!
donc. voici une rev11
comme tu vas le voir, j'ai supprimé des textbox
en fait. pour un étalonnage ou réparation, tu as toujours un TB pour la date de départ, et un autre pour la date de fin
ensuite: selon le type d'opération, tu affiches ou pas le devis, et le motif devient une date..
j'ai juste été obligé de garder un TB pour la date (le TB4) et un autre TB pour le motif (TB5)
en effet, les deux ne sont pas du meme type: TB4 = Date TB5 = chaine de caractères

ensuite. pour le fonctionnement du programme...
je te laisse faire des essais et aller voir les commentaires ;-)
donc. au lancement, tu ne peux QUE saisir un numéro
dès qu'il est saisi:
on controle s'il existe dans la feuille de l'année en cours
s'il existe: on charge les infos si il y en a (ex pour le P741: il est en réparation depuis le 01/12/2017 jusqu'au 18/01/2018
et comme il est en réparation.. tu ne peux rien en faire.. donc. aucune possibilité de le passer en etalonnage ou autre (c'est juste un exemple de stratégie que j'ai adoptée ==> à confirmer selon ton besoin)
s'il n'y a pas de date de fin de réparation: tu as la possibilité d'en saisir une et donc d'enregistrer
tu pourras ainsi le passer en étalonnage ou autre..

pour le P743: il n'est pas en réparation, il peut donc servir pour....
la ou j'ai besoin d'éclaircissemnts, c'set pour l'étalonnage..
la date d'étalonnage est au 14/12/2017: Que fait on?
on doit le forcer en Etalonnage pour que tu saisisses des dates?

en fait l'ordre de tes colonnes n'aide pas trop à la compréhension.
par exemple. pour la réparation, j'aurais vu une certaine logique avec:
Colonne H: Le devis
Colonne I: le motif
Colonne J: Debut de réparation
Colonne K: Fin de réparation

du coup. pour l'étalonnage; la colonne E (Debut): c'est quoi? le début de l'étalonnage?
et G la fin?
F étant normalement "Fin du dernier etalonnage + 1an..?
et Date de MES: ca correspond à quelque chose ?

et pour les formules feuille recap.. euh... pas trop regardé parce que je n'ai toujours pas compris ce qu'il fallait calculer
en cellule E3: tu écris Quantité ( modele)-Q (modele en etalonnage)-Q (modele en réparation)
modèle = modèle de pompe en colonne D ?
Quantité..?nb de pompes de ce modèle dans l'année....2017 ??
modèle en étalonnage.. justement. comment (quelles colonnes utiliser) déterminer celles qui sont en étalonnage? à quel moment? à la date du jour?
pour la réparation: j'imagine qu'il suffit donc de regarder la colonne J de la feuille 2017 ??

bref.. il y a encore un peu de boulot :-D
mais on progresse, c'est le principal :-D
 

Pièces jointes

  • tableau Off Rev11.xlsm
    1.5 MB · Affichages: 19

fabrice31

XLDnaute Junior
slt chef!

merci pour ton boulot!
ta présentation est cool mais je préfère avoir les infos de E et de R.
j'ai récupéré le cas du R qui bloque le reste, et la réinitialisation au début. ça me manquait.

donc. au lancement, tu ne peux QUE saisir un numéro
dès qu'il est saisi:
on controle s'il existe dans la feuille de l'année en cours
s'il existe: on charge les infos si il y en a (ex pour le P741: il est en réparation depuis le 01/12/2017 jusqu'au 18/01/2018
et comme il est en réparation.. tu ne peux rien en faire.. donc. aucune possibilité de le passer en etalonnage ou autre (c'est juste un exemple de stratégie que j'ai adoptée ==> à confirmer selon ton besoin)
s'il n'y a pas de date de fin de réparation: tu as la possibilité d'en saisir une et donc d'enregistrer
tu pourras ainsi le passer en étalonnage ou autre.
exactement ca! par contre, la validation avec la saisie de la date de fin de réparation engendre:
la saisie des infos de réparation dans la feuille 'suivi réparation' + effacement dans la feuille de l'année en cours. (début devis motif et fin)

pour le P743: il n'est pas en réparation, il peut donc servir pour....
la ou j'ai besoin d'éclaircissemnts, c'set pour l'étalonnage..
la date d'étalonnage est au 14/12/2017: Que fait on?
on doit le forcer en Etalonnage pour que tu saisisses des dates?

pas de forcing sur l’étalonnage. explication:
l'etalonnage est une manip annuelle obligatoire. d'ou la colonne L. mais c'est un collègue qui le déclenche. les dates de début (envoi chez prestataire)/ fin (retour du prestataire)/ etalonnage (date légale à prendre en compte)
si les 3 TB sont pleines, alors je repars sur un cycle complet:
- toutes cases E libres
- saisie date de début
-validation = entrée date de début en E, effacement de F et G
quelques jours après,
-saisie date de fin + 'date'
-validation = copier (début / fin ) dans suivi réparation avec motif "Etalonnage"
+ ecraser la 'date ' en F avec TB 'date' et la copier à la suite du commentaire en B
+ effacer E et G.

rassure toi, y a juste l’écriture sur 'suivi reparation' qui me bloque pour l'instant!

en fait l'ordre de tes colonnes n'aide pas trop à la compréhension.
par exemple. pour la réparation, j'aurais vu une certaine logique avec:
Colonne H: Le devis
Colonne I: le motif
Colonne J: Début de réparation
Colonne K: Fin de réparation

on ne doit pas avoir le mémé tableau...
E: début étalonnage
F date etalonnage
G: fin etalonnage

H: début réparation
I: date devis
J fin reparation
K: motif

L: délai avant prochain étalonnage

les colonnes E a K sont vouées a être masquées
je t'ai laissé des commentaire dans mon code la ou j'ai des difficultés

Je plancherai sur les formules plus tard.

merci
 

Pièces jointes

  • tableau Off3.xlsm
    1.3 MB · Affichages: 17

vgendron

XLDnaute Barbatruc
Hello
Je viens de reprendre ton dernier fichier: j'ai corrigé quelques erreurs de syntaxes
notamment:
lorsqu'il y a un "With sheets(....)"
les lignes ou ranges sur lesquelles tu travailles et qui appartiennent à la feuille doivent etre précédeées par un point
with sheet(nomFeuill)
.range()...
.rows()...
end with
sinon.. quelque soit le NomFeuille.. les actions seront effectuées sur les ranges et row de la feuille ACTIVE


pour le select case..
il est totalement inutile d'écrire
select case ..
pour chaque cas..
 

Pièces jointes

  • tableau Off4.xlsm
    1.3 MB · Affichages: 15

vgendron

XLDnaute Barbatruc
Dans le bouton Valider. pour le cas "Réparation"
VB:
Case "Réparation"
            'test sur dates manquantes
            If TextBoxR1 <> "" And TextBoxR3 <> "" Then
                Call MettreCaractEntreDates("R", CDate(TextBoxR1), CDate(TextBoxR3))
            End If
            If TextBoxR3.Value = "" Then
                .Range("H" & Ligne) = TextBoxR1   ' on copie les valeurs debut/devis/motif
                .Range("I" & Ligne) = TextBoxR2
                .Range("K" & Ligne) = TextBoxR4
            Else:                                   'si fin de reparation <> vide
                With Sheets("suivi reparation") 'on remplit la ligne suivante avec les infos
                    Set nouvel = .Range("A:A").Find("", lookat:=xlWhole)
                    .Range("A" & nouvel.Row) = no_kalilab.Value   ' on copie les valeurs debut/devis/motif
                    .Range("B" & nouvel.Row) = Sheets("" & feuille & "").Range("B" & Ligne)
                    .Range("C" & nouvel.Row) = TextBoxR1.Value
                    .Range("D" & nouvel.Row) = TextBoxR2.Value
                    .Range("E" & nouvel.Row) = TextBoxR3.Value
                    .Range("G" & nouvel.Row) = TextBoxR4.Value
                End With
                .Range("H" & Ligne).Clear
                .Range("I" & Ligne).Clear
                .Range("K" & Ligne).Clear
            End If
tu copies les infos de réparation dans la feuille de "suivi Réparation" et
à la fin, tu effaces les infos de réparations de la feuille 2017..
avant de les effacer de cette feuille.. ne faut il pas attendre que la réparation soit terminée ?

exemple:
tu choisis un Kalilab qui a une date de DEbut de réparation au 01/12/2017
==> tu peux saisir les dates de devis, et de fin de réparation (prévue) 18/01/2018 (rien ne t'empeche de saisir une telle date, pour l'instant)

et donc.. ton kalilab devrait rester dans la feuille 2017 avec ces infos ..
alors que la.. tu effaces.. et .. si tu reselectionnes le meme Kalilab.. il n'y aura plus aucune info ==> il va apparaitre dispo. alors qu'en fait. il est en réparation..
 

fabrice31

XLDnaute Junior
slt,
bon weekend?

j'ai un pb sur Mon fichier, mais pas sur le tien, et je ne vois pas d'ou ça vient:
quand je saisis une date début: 01/08/2017, elle est traduite par excel en 08/01/2017, sauf bien sur si jj>12.
quand j'importe la date sur une cell au format standard, pas de soucis. mais quand elle est importée dans une colonne au format date (nécessaire pour la suite des calculs), elle se retourne. idem sur la pages 'suivi réparation'.
si je veux masquer le "E" dans le calendrier lors des week end et jours fériés, je dois mettre la condition dans la 'mettrecaractentredates' au moment d’écrire les E?

1er post:
lorsqu'il y a un "With sheets(....)"
les lignes ou ranges sur lesquelles tu travailles et qui appartiennent à la feuille doivent être précédées par un point
with sheet(nomFeuill)
.range()...
.rows()...
end with
sinon.. quelque soit le NomFeuille.. les actions seront effectuées sur les ranges et row de la feuille ACTIVE
pourtant ça marche... le 'tab' y joue ou c'est juste pour une lecture plus facile?

pour le select case..
il est totalement inutile d'écrire
select case ..
pour chaque cas..
quand je les enleve, il me dit "case sans select case"...


si je veux masquer le "E" dans le calendrier lors des week end et jours fériés, je dois mettre la condition dans la 'mettrecaractentredates' au moment d’écrire les E? (=JOURSEM(N$6;2)>5)

2eme post:
la date de fin est saisie une fois que le matériel est revenu chez nous (pas de date prévue, juste effective). du coup, je réinitialise la réparation sur le calendrier, mais j'en garde trace dans le suivi.
idem pour échantillonnage fait chez un prestataire. début et fin ne correspondent pas à échantillonnage, mais à l'immobilisation dû à échantillonnage. L'E réel est la DATE
le début ne commence uniquement à l'envoi (pas de forcing selon délai restant (colonne K)). la fin à réception chez nous. et la DATE doit etre recopier sur les feuilles.name > year(date).
 

Pièces jointes

  • tableau Off3.xlsm
    1.3 MB · Affichages: 21

vgendron

XLDnaute Barbatruc
bon.. il va falloir te forcer à y aller petit à petit.. tu essaies de modifier trop de choses à la fois..

1) pour les dates.. tu as du modifier quelque chose, parce qu'effectivement, dans mes fichiers, que je te poste, ca fonctionne depuis un bon moment.
d'ailleurs.. ton dernier fichier bug dès le début au moment de cliquer sur valider..

2) masquer les "E" pendant les week end.. ca veut dire quoi?
les écrire et les masquer? ou ne pas les écrire tout simplement?

3) pour les with .. et les points..
pourtant ça marche...
c'est parce que PAR CHANCE.. tu cliques sur le bouton "planning" lorsque la feuille 2017 est active.. c'est donc la bonne feuille qui est à l'écran..
tant qu'à utiliser des with. autant prendre la bonne syntaxe jusqu'au bout..

le 'tab' y joue ou c'est juste pour une lecture plus facile?
les tabulations dans le code (autrement appelées "indentations") ne sont la QUE pour faciliter la lecture du code et DONC d'éviter des problèmes de boucles non fermées, ou des if sans end if et aussi des Select sans end select....c'est ton cas..

4) de plus. ca fait déjà plusieurs fois que je repasse ton formulaire en Show modal = false ==> bien plus pratique pour le débuggage;, car on a accès aux feuilles excel.. et regarder que le code fait bien ce qu'il faut où il faut.
et j'ai aussi supprimé des modules vides qui ne servent à rien

5)
la date de fin est saisie une fois que le matériel est revenu chez nous (pas de date prévue, juste effective).

C'est donc ce que j'avais pu comprendre... d'ou ma remarque qui indiquait que "rien ne t'empeche de saisir une date de fin de réparation dans 6 mois...."

6) j'ai aussi ajouté des macros "VérifExist".. des variables déclarées en public.. etc etc.

donc stp.. reprend le dernier fichier que je t'ai envoyé et travaille dessus..
lis les commentaires qu'il y a dedans. qui t'expliquent pourquoi ceci ou cela..

ensuite.. à partir de ce fichier, il te suffit d'indiquer ce qui ne va pas. ou ce qu'il faut modifier.
certaines lignes sont en commentaire car ce sont des alternatives de traitement (j'essaie d'anticiper les remarques et bug qui peuvent arriver..)
 

Discussions similaires

Réponses
5
Affichages
192
Réponses
46
Affichages
871

Statistiques des forums

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