Lier plusieurs feuilles à une feuille maître

Bonjour à tous,

Tout d'abord, il est possible que ce sujet ait été traité cependant, ne comprenant pas d'où vient le problème il m'est difficile d'avoir le mot clef me permettant une recherche et l'obtention de la solution.

Je suis novice dans excel.... je le précise.

Voici mon problème:

Dans l'entreprise dans laquelle je travail, certaines équipes remplissent des feuilles papiers A4 que nous confions à une personne qui se charge de les réécrire dans un tableau excel (97-2003)afin de faire des statistiques. Ces équipes ont environs 5 missions/jour et chaque missions représentent une ligne dans ce tableau excel.

Aujourd'hui nous souhaiterions que ces équipes puissent remplir ce tableau en amont vu qu'il le font déjà mais sous format papiers.

Dans le même classeur excel on a créer plusieurs feuilles( 1 par équipe). l'idée que nous souhaitions étaient que lorsqu'ils remplissent leur feuille, la feuille maître que j'appellerai "récupération" se remplissent toute seul, seulement voilà plusieurs problèmes se présentent devant nous....

1- Si je n'avais qu'une seule feuille (donc 1 équipe) la solution serait simple ='feuille 1'!$A$1 pour cellule A1 ect..... voir copier/collage spécial seulement voilà il y a plusieurs équipes

2- Comme je l'ai écris précédemment, il y a environ 5lignes /jour et par équipe, je n'ai pas trouver le moyen pour qu'une fois saisi dans la feuille excel équipe, ce ne soit pas écraser par une autre feuille équipe, car il ne reviens pas à la ligne.

3-la feuille maître (récupération) est inbuvable visuellement parlant mais ils ne veulent pas la modifier car plusieurs filtre basé sur la ligne entière. nous avons souhaitez en faire une plus simple pour les équipes mais là aussi le lien est problématique car la ligne est scindé.

Pour vous donner une idée du tableau voici sa taille :

  • colonne de A à AJ
  • lignes de 1 à 4999

J'ai fais vite fait un classeur excel pour que ça passe à moins de 500ko.

J'espère que vous pourrez m'aidez.

Merci d'avance.

63classeur1.zip (21.69 Ko)

Bonjour,

Un classeur vide n'est pas très démonstratif !

Bonjour MFerrand,

En effet le classeur est vide car la question n'est pas de faire des sommes de ces cellules. Tous les exemple que j'ai trouvé sur le net sont basé sur des calculs (somme) or moi c'est juste de la saisi.

En gros les couleurs dans les cellules sont pour des catégories exemple lieux géographique, taux d'intervention, date, heure etc..... .

Mon problème consiste à lier les feuilles équipe à celle de récupération.

l'idée serai la suivante:

Je rempli le tableau équipe 1 et ça rempli automatiquement la ligne A2 dans le tableau récupération et ensuite ça reviens automatiquement à la ligne comme ça si une autre équipe rentre leur données dans leur tableau ça rempli automatiquement la ligne A3 du tableau de récupération, et ainsi de suite....

J'avais cocher la case dans options pour être averti dès qu'il y aurait une réponse mais apparemment ça n'a pas marcher.

Heureusement que j'ai fais un passage sur forum.

Merci d'avance pour l'aide que tu pourrais m'apporter.

Sans intitulés et sans saisies d'exemple au minimum, je ne sais pas distinguer les types de données en présence... et pour mettre au point des procédures de transfert de données, il est bon d'avoir quelques données pour matérialiser le traitement...

Ok, n'étant pas devant l'ordinateur, je vois ça ce soir.

Merci bien MFerrand.

Bonjour MFerrand,

Donc je recéer le classeur en essayant d'être le plus proche possible du classeur existant. J'ai changé les noms d'équipe et du dosier de récupération afin que eux aussi se rapproche le plus de la réalité.

  • récupération devient base de saisie
  • équipe 1 devient EA 1
  • ETC.....

Dans la base de saisie tu pourras remarquer que le tableau commence à la ligne 24 car c'est le cas dans le dossier existant, de plus il y a 5 colonnes qui ne figure pas dans les feuille EA car aucun intérêt pour ces équipes.

Ce sont les colonnes suivantes: B,D,F,AH et AJ

J'ai copier/coller la formule pour le jour de la semaine mais cela me donne des chiffres et la colonne pour le taux est censé donner un pourcentage mais bon.... je ne pense pas que ce soit important vu qu'elle font parties des colonnes enlever dans les feuilles EA.

Donc je le rappelle mon but est de réussir à remplir la feuille base de saisie par l'intermédiaire des feuilles EA 1, EA 2, EA 3, etc...

Au cas où.... je ne travail pas dans le coté hospitalier donc mon tableau ne reflète pas la réalité de mon réel travail (si toutefois, des personnes étaient choqués), je l'ai créer de cette manière pour des raisons de confidentialité.

Merci MFerrand pour ton aide

60classeur1.zip (25.73 Ko)

Bonjour MFerrand,

étant novice dans le monde d'excel j'ai essayé de comprendre les difficultés que tu pourrais rencontrer pour m'aider et je pense qu'il est indispensable que je te précise 1 chose.

Dans la feuille des équipes(c'est à dire EA 1, EA 2,etc....)les cellules qui sont tout le temps remplies sont les cellules partant de A2 à H2. il peut arriver exceptionnellement qu'aucune autre cellules ne soient remplies.

Donc je pense qu'il serait judicieux de rajouter 1 élément aux feuilles EA.... un bouton (de type flèche vers la droite) avec l'inscription envoyer et lorsque l'on appuierai dessus ça enverrai toutes les données dans une ligne du tableau de la feuille base de saisie. Je ne sais pas si c'est faisable avec une version d'excel( 97-2003) mais bon....

Je ne sais pas ce que tu en penses cependant si tu as des questions qui te viennes à l'esprit n'hésite pas.

Bonsoir,

Depuis hier 14h et jusqu'à demain après-midi au moins, je ne fais que des choses simples, ne me demandant pas d'attention particulière, le reste est en attente (raisons médicale, ou plutôt les incidences... ). A+

Bonjour,

Pas de problème, le bouton est une bonne idée. Etablis un modèle équipe dans lequel la macro est affectée au bouton, avant de dupliquer la feuille pour autant d'équipes que nécessaire, et le bouton sera opérationnel sur toutes sans avoir à y retoucher.

Quelques questions préalables sur les colonnes non reprises des feuilles équipes :

B ("hôpital") - ne figurant pas ailleurs que faut-il faire ? mention fixe ? mention variable mais alors où la prendre ?

D ("Jour de la Semaine") - Pour moi le jour de la semaine, c'est lundi, mardi, ..., dimanche ! Tu y mets une date, reprise de la colonne précédente, ce dont on ne voit pas vraiment l'intérêt ! Qui plus est, tu mets la cellule au format Standard : la date est donc renvoyée sous forme de numéro de série dans Excel, information qui n'a de signification que pour l'application Excel ! Aucune pour l'utilisateur qui la regarde !

Qu'en est-il donc, et quelle valeur doit aller dans cette colonne ?

F ("Activité") - mêmes questions que pour B.

AH ("taux de grosse fracture") - Le calcul est clair. Le format de présentation voulu mériterait d'être précisé : Standard, Pourcentage, nombre de décimales... ?

AJ ("J/S") - Suscite des interrogations analogues à D ! Là il s'agit bien du jour de la semaine qui est mentionné. Est-ce un choix de le présenter sous une forme numérique 1 à 7 correspondant à lundi à dimanche, plutôt que sous la forme lundi, mardi... dimanche, ou bien lun, mar... dim, ou toute autre ?

Cordialement.

Bonjour MFerrand,

Toutes les colonnes que tu m'as cité sont celles qui reste dans la base de saisie pour pouvoir analyser le taux en fonction du jour de la semaine ou d'autres facteurs.

L'activité et l'hôpital ne change jamais donc dans la base de saisie, on mettra toujours les mêmes noms et donc ils seront rentrés d'office.

Concernant le taux, c'est justement ce qui interresse les personnes souhaitant regarder la base de saisie.

Je ne suis pas devant mon ordinateur pour le moment mais j'aurais certainement quelques idées à te soumettre concernant la macro pour voir ce que tu en penses.

Je fais ça cet après-midi ou ce soir et je joindrai les feuilles en question.

Merci

Bonjour MFerrand,

Donc j'essaie de comprendre comme je peux. j'ai créer une macro, j'espère que tu pourras y avoir accès. La macro fonctionne très bien.

Dans le doute voici une copie de la macro:

Sub Envoyer()

'sélection de la première ligne vide pour envoyer les données dans la plage A24:AJ4999'

Sheets("BASE DE SAISIE").Activate

Dim ligne As Long

ligne = Range("A24").End(xlDown).Row + 1

Cells(ligne, 1).Value = "Youpi"

End Sub

J'ai chercher les commandes permettant de copier/coller les données de la feuille EA 1 vers BASE DE SAISIE mais je n'ai pas trouvé pour le moment.

J'ai fais également des plages dans la feuille EA 1 comme ça... ça devrait faciliter la commande.

Ah oui, dans la macro j'ai mis la plage A24:A4999. C'est un tableau et non une plage sinon... sacré plage.

Je te joins comme convenu le fichier.

dis moi si tu penses que l'approche est bonne.

41classeur1.zip (35.35 Ko)

Bonjour MFerrand,

La commande dans ma Macro fonctionne bien pour trouver la première ligne vide dans le tableau A24:AJ4999 et elle écrit bien le "Youpi"dans la première case.

j'ai essayé cette fois ci d'ajouter à la place de "youpi" les cellules dont je souhaitais copier/coller.

J'ai essayé cette approche:

Sub Envoyer()

'sélection de la première ligne vide pour envoyer les données dans la plage A24:AJ4999'

Sheets("BASE DE SAISIE").Activate

Dim ligne As Long

ligne = Range("A24").End(xlDown).Row + 1

Cells(ligne, 1).Value = Sheets("EA 1").Cells("A2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("A").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("B2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("C").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("C2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("E").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("G:K").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("L:M").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base3").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("N:R").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base4").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("S:Y").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base5").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("Z:AG").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("D8").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("AI").PasteSpecial

End Sub

Alors bien évidemment ça ne fonctionne pas et j'ai en message...

Erreur d'execution '5':

Argument ou appel de procédure incorrect

Je pense ne pas être très loin.

Aurais tu une soluce?

Merci d'avance

Bonjour tout le monde,

est ce que quelqu'un peut m'aider?

Merci

Bonsoir,

J'avais un peu perdu le fil de ce sujet.... je viens de renouer en gros !

Copier-coller n'est pas ma méthode quand on peut faire mieux plus facilement.

Il y a une ligne de 36 colonnes à affecter lors de l'opération. On la constitue (tableau) et on l'affecte.

J'avais posé question sur 5 valeurs : tu as répondu sur 3 (2 constantes et 1 calcul confirmé).

Mais pas sur deux autres : D et AJ, qui pour moi sont incohérentes.

Dans ton tableau on trouve des formules (qui ne m'ont pas éclairé et qui disparaîtront dans l'opération). Je veux donc savoir ce que représentent ces valeurs pour pouvoir les produire.

Cordialement.

Bonjour MFerrand,

Donc Les colonnes D et AJ sont identiques car cela concerne le jour de la semaine la colonne D est exprimé en texte (par exemple:lundi) et l'autre en chiffre ( 1 corresponddant au premier jour de la semaine pour le lundi).

je reconnais qu'il y a incohérence à garder 2 colonnes qui présentent le même résultat sous 2 formes différentes cependant pour avoir posé la question, les personnes utilisant ce fichier, veulent garder ces colonnes. La raison n'est pas clair ( pas faute d'avoir mis en évidence l'incohérence)mais ils veulent la garder donc....

Concernant les formules qui était dans ma macro.

La première concernait une vérification d'une ligne vide sur la plage de colonne "A:K"(car celle-ci sont toujours renseigné lors de la saisie), commençant de la ligne 24 jusqu'à la dernière ligne.

Étrangement cette première formule fonctionnait car j'avais réussi avec le terme "youpi",mais maintenant pour des raisons que j'ignore elle ne fonctionne plus.

La deuxième formule concernait le copier/coller de toutes les plages et cellules présentent dans la feuille EA 1 et à mettre sur la ligne trouvé par la première formule.

Je n'ai pas trouvé de formule associant ces deux formules.

l'idée pour cette formule était la suivante:

If lig is empty "A:K" and (24.End(xlDown)).Row + 1 then select cells

cells=(1,1)

Cells(ligne, 1).Value = Sheets("EA 1").Cells("A2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("A").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("B2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("C").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("C2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("E").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("G:K").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base2").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("L:M").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base3").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("N:R").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base4").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("S:Y").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("Base5").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("Z:AG").PasteSpecial

Cells(ligne, 1).Value = Sheets("EA 1").Cells("D8").Copy

Cells(ligne, 1).Value = Sheets("BASE DE SAISIE").Column("AI").PasteSpecial

Msgbox......

Par la suite j'aimerais qu'un message dans la feuille EA 1 (après avoir cliqué sur envoyer) m'indique dans quelle ligne la saisie a été faite dans la feuille base de saisie.

Merci de ne pas m'avoir laissé tomber.

Bonjour,

Sub EnvoiSaisie()
    Dim Sai(35), adr, gf, tgf, i%
    adr = Split("D2 E2 F2 G2 H2 A8 B8 A13 B13 C13 D13 E13 A18 B18 C18 D18 E18 F18 G18 A23 B23 C23 " _
     & "D23 E23 F23 G23 H23")
    gf = Array(11, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31)
    With ActiveSheet
        For i = 6 To 32
            If .Range(adr(i - 6)) <> "" Then Sai(i) = .Range(adr(i - 6))
        Next i
        Sai(0) = .Cells(2, 1): Sai(2) = CDate(.Cells(2, 2)): Sai(4) = .Cells(2, 3)
    End With
    Sai(1) = "nantes": Sai(5) = "ambulance"
    Sai(3) = Format(Sai(2), "dddd")
    Sai(35) = Weekday(Sai(2)) - 1: If Sai(35) = 0 Then Sai(35) = 7
    For i = 0 To 17
        tgf = tgf + Sai(gf(i))
    Next i
    If tgf > 0 And Sai(10) > 0 Then tgf = tgf / Sai(10)
    If tgf > 0 Then Sai(33) = Format(tgf, "#0.00%")
    With Worksheets("BASE DE SAISIE")
        i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(i, 1).Resize(, 36).Value = Sai
    End With
    With ActiveSheet
        MsgBox "Les données de la fiche " & .Name & " ont été transférées dans la BASE, ligne : " _
         & i & ".", vbInformation, "Transfert des données réalisé"
        .Range("A2:H2,A8:B8,D8,A13:E13,A18:G18,A23:H23").ClearContents
    End With
End Sub

NB: la dernière commande efface la fiche transférée. L'inhiber ou la supprimer si tu ne le souhaites pas...

Cordialement.

Hallucinant!!!

Moi qui prétendait ne pas être loin de la solution j'ai été chercher des mouchoirs.

J'ai renommer le sub car il ne voulais pas faire la macro puis j'ai testé et ça fonctionne très bien sauf qu'il manque la cellule D8 de la feuille EA 1 qui n'est pas prise en compte. j'ai essayé de l'insérer entre B8 et A13 mais ça a tout décalé et résultat des courses la cellules D8 était saisie dans la colonne N de la Feuille base de saisie au lieu de la colonne AI... donc rien à voir.

Par contre dans la feuille base de saisie, est il possible de ne pas prendre en compte les colonnes :

- D qui a déjà la formule suivante=SI(C33="";"";C33)pour la ligne 33, =SI(C34="";"";C34)pour la ligne 34 .

Je ne sais pas à quoi correspond cette formule et vu que je vois un"SI" au début c'est qu'il doit y avoir une condition.

- AH car au moins ceux qui voudront voir de quelle manière le calcul est fait auront juste à lire la formule déjà présente dans la cellules.

Je m'explique si tout est fait par la macro et qu'ils ont un doute sur le résultat obtenu, il remettrons en cause la macro alors que si on n'y touche pas ce sera leur formule qu'il devront remettre en cause.

-AJ même chose que la colonne D qui a déjà une formule existante de type =SI(C33="";"";JOURSEM(C33;2))pour la ligne 33 ou l'on peut voir encore un "SI" avec JOURSEM en relation.

Alors bien évidemment un GRAND MERCI !!! même si je n'ai pas tout compris dans le code mais je pense faire du F1 sur les fonctions pour pouvoir le comprendre.

Merci encore pour ton aide

Désolé pour D8 ! Emplacement bien prévu mais je l'ai loupé au passage...

A insérer ici :

    With ActiveSheet
        For i = 6 To 32
            If .Range(adr(i - 6)) <> "" Then Sai(i) = .Range(adr(i - 6))
        Next i
        Sai(0) = .Cells(2, 1): Sai(2) = CDate(.Cells(2, 2))
        Sai(4) = .Cells(2, 3): Sai(34) = .Cells(8, 4)
    End With

Quant aux formules, comme je l'ai annoncé, elles disparaissent au profit du résultat.

On sert un tableau avec les valeur à affecter sur la ligne.

Ce n'est qu'à la fin qu'on affecte le tableau à la ligne de la feuille :

        .Cells(i, 1).Resize(, 36).Value = Sai

Une seule ligne de commande, mais qui présuppose qu'il n'y ait que des valeurs à affecter.

Rien ne les empêche de refaire les calculs pour les vérifier !

Codialement.

Nikel!!!!

Un TRES GRAND MERCI !!!! MFerrand

Rechercher des sujets similaires à "lier feuilles feuille maitre"