XL 2016 Récupérer la planification d'un excel et la croiser avec un planning d'un autre Excel

Matteo-31

XLDnaute Nouveau
Bonsoir Mesdames, Messieurs !

Cela fait quelques jours que je suis sur une problématique, une belle comme on les aime !

Je vous explique mon problème en espérant qu'une âme charitable en trouve la solution *snif*

Je souhaiterai croiser deux Excel entre eux.

Mon premier document "Planning maintenance constructeur" est une excel qui est renseigné à partir d'un contrat d'entretien constructeur (fictif mais pour l'exemple).
Celui-ci affecte aux différents types d'équipements une fréquence d'intervention, représenté par une croix dans un planning.
Mon second document "Planning des interventions", est un excel qui renseigne le nombre d'heures nécessaire pour effectuer les différentes interventions.

Mon besoin :
Je voudrais récupérer les périodicités de réalisation des maintenances par équipements données par les croix dans le "Planning maintenance constructeur" et les renseigner dans le planning du "Planning des interventions" en remplacent les croix par les heures données en colonne E.
J'aimerais que cette relation se fasse de manière automatique entre les 2 documents. Si un changement de croix est fait dans le "Planning maintenance constructeur", j'aimerais que celui-ci se fasse dans le "Planning des interventions".

J'espère avoir été assez clair dans mes explications, n'hésitez pas a me demander des précisions, ou éclaircissement.

En espérant que l'un des experts de ce forum connaissent une solution à ma problématique.

Bonne soirée à tous ;)
 

Pièces jointes

  • Planning des interventions.xlsx
    26.6 KB · Affichages: 12
  • Planning maintenance constructeur.xlsx
    36.5 KB · Affichages: 12

vgendron

XLDnaute Barbatruc
Bonjour

je ne comprend pas quel fichier doit etre modifié. (je suppose que c'est ton planning des interventions???
que dois tu mettre ? une croix ou des heures??

peux tu remplir manuellement l'équipement "400001 LaveVaisselle" pour voir ce qui est attendu?
 

Matteo-31

XLDnaute Nouveau
Bonjour

je ne comprend pas quel fichier doit etre modifié. (je suppose que c'est ton planning des interventions???
que dois tu mettre ? une croix ou des heures??

peux tu remplir manuellement l'équipement "400001 LaveVaisselle" pour voir ce qui est attendu?
Bonjour Vgendron !

En effet, c'est bien le planning des interventions qui doit être mis à jour.
Grosso modo, chaque ligne doit reprendre l'emplacement des croix du fichier "Planning maintenance constructeur", et remplacer l'emplacement par les heures situées en colonne E du fichier ""Planning des interventions".

Tu trouveras ci-joint un exemple remplis manuellement du rendu que tu demandes et que j'aimerais obtenir de manière automatique pour l'ensemble du fichier

Merci à toi pour ton temps !
 

Pièces jointes

  • Planning des interventions.xlsx
    27.2 KB · Affichages: 9

Matteo-31

XLDnaute Nouveau
en PJ une solution par macro
il faudra appuyer sur le bouton à chaque fois que le fichier constructeur est modifié
Merci pour ta réponse Vgendron !

En revanche étant une bille en vba, pourrais-tu m'expliquer cette partie de ton code stp ?
En effet, j'essaye d'adapter ton code à un deux documents du même type, mais je galère...
J'aimerais faire partir ton code de la 11ème ligne de mon "Planning maintenance constructeur" grosso modo. Mais impossible d'adapter le code. Je pense que c'est cette partie de code qu'il faut que je comprenne pour pouvoir l'adapter comme je le souhaite.

En te remerciant par avance pour ton expertise !

Partie du code que j'aimerais comprendre :
---------
'on complète les lignes vides dues à la fusion
For i = 4 To UBound(TabData, 1) - 1
If TabData(i + 1, 1) = "" Then TabData(i + 1, 1) = TabData(i, 1)
If TabData(i + 1, 4) = "" Then TabData(i + 1, 4) = TabData(i, 4)
Next i
For j = 8 To UBound(TabData, 2) - 1
If TabData(1, j + 1) = "" Then TabData(1, j + 1) = TabData(1, j)
If TabData(2, j + 1) = "" Then TabData(2, j + 1) = TabData(2, j)
Next j

For i = 4 To UBound(TabData, 1) 'pour chaque ligne à partir de la 4eme = 1ere ligne de donnée
'recherche 1ere Occurence = 1er "X"
For j = 8 To UBound(TabData, 2)
If UCase(TabData(i, j)) = "X" Then
valeur = DateValue("01 " & TabData(2, j) & " " & TabData(1, j)) 'on recupère la date
clé = WorksheetFunction.Substitute(TabData(i, 1), " ", "") & "_" & TabData(i, 4) & "_" & TabData(i, 7) 'on créé la clé d'inter
If Not dico.exists(clé) Then dico.Add clé, valeur 'on ajoute l'entrée dans le dictionnaire
Exit For
End If
Next j
Next i
---------
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 012
Membres
103 093
dernier inscrit
Molinari