Transfert de données entre deux classeurs

Bonjour le forum,

j'ai des données à transférer d'un classeur à un autre

si quelqu'un pourra m'aider je serais très reconnaissante

en fait je veux transférer les machines qui correspondent à une pourcentage supérieure ou égale à 15% de la feuille BdD du classeur "Rapport journalier.xlsm" vers la cellule L54 de la feuille "revue de direction S1" du classeur "Planning semestriel V4.xlsm" si j'ai choisi en F1 de la feuille "BdD" une date de début du semestre 1 et vers L54 de la feuille "revue de direction S2" du classeur "Planning semestriel V4.xlsm" si j'ai choisi en F1 de la feuille "BdD" une date de début du semestre 2

ci joint les fichiers modèles

je suis toujours disponible pour toute autre clarification

merci d'avance les amis

bien cordialement

bonjour,

j'ai besoin d un coup de main

merci beaucoup

Bonjour

SI Rapport journalier change de contenu tous les jours, il faut un programme VBA et si d'un côté c'est journalier et de l'autre hebdomadaire il faut définir des règles plus précises d'autant que tu n'as prévu qu'une cellules pour n machines

Ta version est bien 2007 ?

Bonjour,

merci de votre réponse

Effectivement le rapport journalier est rempli chaque jour

la cellule est pour énumérer les machines dont la pourcentage dépasse les 15% en analysant par semestre (en habitude 2 ou 3 machines max)

le détail c'est d'envoyer les données de chaque semestre vers la revue correspondante

oui j'utilise la version 2007 d'Excel

merci encore de votre aide

bien cordialement

RE

Cela veux dire qu'il a environ 125 fois un fichier journalier par semestre (ou bien 125 fichiers dont le nom varie chaque jour ?) donc il faut synthétiser au fil du temps les machines concernées et seulement ensuite mettre la liste synthétique dans le semestre concerné...

Pour écrire un programme il faut être très précis

Re,

j'ai un rapport journalier par an qui renfermera au fur et à mesure les données de toute une année

la synthèse se trouve dans la feuille "BdD"

dans le petit tableau à droite je précise la date à partir de laquelle je veux analyser mes données (cellule F1)

en choisissant la date les formules calcule la pourcentage en utilisant les données du tableau à gauche de la même feuille et ce à partir de la date choisie jusqu'à la fin des données

je n'ai pas pu diviser les calculs pour séparer chaque semestre (surtout la première semestre car en choisissant la date de la première feuille ça retourne le calcul de toutes les données qui suivent jusqu'à la fin)

puis je veux envoyer les machines dont la pourcentage dépasse les 15% pour les feuilles de revues de direction de la semestre 1 et de la semestre 2

j'espère bien avoir une solution et je vous remercie de votre disponibilité

bien cordialement

RE

j'ai un rapport journalier par an qui renfermera au fur et à mesure les données de toute une année

la synthèse se trouve dans la feuille "BdD"

dans le petit tableau à droite je précise la date à partir de laquelle je veux analyser mes données (cellule F1)

en choisissant la date les formules calcule la pourcentage en utilisant les données du tableau à gauche de la même feuille et ce à partir de la date choisie jusqu'à la fin des données

Donc ce qu'on voit dans BdD est le résultat d'un calcul depuis le début de l'année jusquà la date indiquée?

C'est sûr que si on avait les formules on comprendrait tout de suite au lieu de devoir poser n questions.

je n'ai pas pu diviser les calculs pour séparer chaque semestre (surtout la première semestre car en choisissant la date de la première feuille ça retourne le calcul de toutes les données qui suivent jusqu'à la fin)

puis je veux envoyer les machines dont la pourcentage dépasse les 15% pour les feuilles de revues de direction de la semestre 1 et de la semestre 2

C'est au niveau des formules que l'on pourrait justement faire le calcul par semestre.

Là, n'ayant ni la source de cette synthèse, ni les formules, comment peut-on deviner sauf à considérer que semestre2 doit être le cumul depuis le début de l'année...

Re

pour supprimer toute ambiguïté je vais joindre les classeurs avec la totalité des données

la feuille BdD avec la synthèse des données

en F1 la date à partir de laquelle on va analyser les données jusqu'à la dernière feuille du classeur

merci encore

bien cordialement

Bonjour

Une vraie usine à gaz

Tu pourrais supprimer le code des modules de feuille de date pour un code unique en module ThisWorkbook

Il n'est pas certain qu'un tel nombre d'onglets en fin d'année ne dépasse pas les capacités mémoire d'Excel...

J'ai ajouté 2 colonnes en mauve et une liste déroulante sur ta feuille BdD (ce qui est en jaune ne sert plus)

et un code dans le module de la feuille BdD.

Re,

merci beaucoup de votre solution

oui j'avoue je suis débutante est pour éviter la confusion j'ai séparer les fonctions de cette manière, merci de votre proposition

reste un petit problème lorsque je choisi S1 ça ouvre le fichier planning en lecture seule donc je ne peux pas le sauvegarder puis quand je choisi S2 le fichier est déjà ouvert alors je ne peux pas le modifier

quelle est la solution

merci encore

bien cordialement

Re

il n'y a aucune raison que le fichier s'ouvre en lecture seule : n'est-ce pas une copie déjà en lecture seule ?

Cela fonctionne chez moi

S1 et S2 ne sont pas supposés être mis à jour en même temps sinon il faut ajouter dans le code un test pour savoir si le fichier est ouvert pour ne pas l'ouvrir

Re,

oui c'est déjà ouvert, je l'ai fermé et ça marche bien maintenant

c'est vrai je lance le calcul de chaque semestre séparément vous avez raison

merci beaucoup de votre aide si précieuse!

amicalement

Re

Ocazou

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Cells(2, 6)) Is Nothing Then Exit Sub

Dim Chemin As String
Dim fichier As String
Dim AW As Workbook, JW As Workbook, Semestre As Byte, FicOuv As Boolean

Semestre = (Right(Target.Value, 1) * 1) - 1
Set JW = ThisWorkbook

    fichier = "Planning semestriel V4.xlsm"
    Chemin = ThisWorkbook.Path & "\"

    'Test fichier ouvert
    For Each AW In Workbooks
      If AW.Name = fichier Then FicOuv = True: Exit For
    Next AW
    If FicOuv = False Then Set AW = Workbooks.Open(Chemin & fichier)
    AW.Worksheets("revue de direction " & Target.Value).Range("L54").Value = JW.Worksheets("BdD").Range("L14").Offset(0, Semestre).Value

End Sub

Re,

ça marche nickel

merci énormément!

Rechercher des sujets similaires à "transfert donnees entre deux classeurs"