Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Tahititin

XLDnaute Occasionnel
Bonjour le Forum,
Je travail actuellement sur un outils destiné à tracer les interventions d'une équipe mobile de soins palliatifs, mais peu importe. J'ai créer une macro qui, à partir des saisies de l'onglet "général" permet en double-cliquant sur le nom d'ouvrir un onglet spécifique au patient selon un modèle que j'ai définit (onglet "modèle). L’intérêt de cet outils est avant tout de simplifier la saisie et de pouvoir faire une suivi et une synthèse des interventions. Je souhaiterais donc dans l'onglet "synthèse" effectuer..... une synthèse. Je sais faire à partir d'onglet existant mais je n'arrive pas à le faire avec des onglets qui n'existe pas encore.... cela nécessite une macro je suppose mais je ne sais même pas par ou commencer.... seriez-vous m'orienter ?
D'autre part, je me rends compte que la macro "double-clic" va vite être contraignante, en effet si l’onglet a déjà été créé (avec le nom) une fenêtre s'ouvre pour informer l'utilisateur que l'onglet existe déjà et éviter ainsi les doubles saisies. Le problème va donc se poser pour les homonymes, je peux avoir une madame Dupont et la semaine suivante un Mr Dupont (son onglet ne se créera pas). Est-il possible de créer l'onglet en "concaténant" Nom et prénom ?
Dernière question (promis), pour faciliter la recherche des onglets, est-il possible de créer les onglets dans l'ordre alphabétique ?

Voilà, merci d'avance pour votre aide si précieuse. Je vous joins le fichier
 

Pièces jointes

  • Essai - EMASP.xlsm
    85.2 KB · Affichages: 58
  • Essai - EMASP.xlsm
    85.2 KB · Affichages: 49
  • Essai - EMASP.xlsm
    85.2 KB · Affichages: 48

Modeste

XLDnaute Barbatruc
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Bonjour Tahititin,

Pour ce qui est de nommer les feuilles créées, en utilisant le nom et le prénom, il suffirait de modifier cette ligne (partie en rouge à ajouter):
Nom = Target.Value & " " & Target.Offset(0, 1)

Pour la synthèse, difficile de te proposer une idée précise, si on ne sait pas ce que tu veux y faire. Une piste (parmi d'autres) serait d'utiliser l'événement Activate de la feuille "Synthese". De cette manière, chaque fois que la feuille est activée, l'actualisation des données se fait aussi.
VB:
Private Sub Worksheet_Activate()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If sh.Index > 3 Then
           ' ************
           ' ton code ici
           ' ************
    Next sh
End Sub

Voyons déjà avec ce début ...
 

pyfux

XLDnaute Occasionnel
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Bonjour,

Si j'ai bien compris chaque opérateur (mobile) dispose de ce fichier sur son PC.

Ton objectif est de faire une synthèse des données issus de plusieurs opérateurs?

Pour répondre à ta question, oui on peut concaténer le nom et le prénom. J'ai également ajouté la date de naissance puisqu'elle est présente:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
Dim Nom As String
Dim Prenom As String
Dim Age As Date

Prenom = Worksheets("GENERAL").Cells(Target.Row, 2).Value
Age = Worksheets("GENERAL").Cells(Target.Row, 4).Value

If Target.Column <> 1 Or Target.Value = "" Then Exit Sub
Cancel = True
Application.ScreenUpdating = False
Nom = Target.Value
On Error Resume Next
Set ws = Sheets(Nom)
On Error GoTo 0
If ws Is Nothing Then
    With Sheets("Modèle")
        .Visible = True
        .Copy After:=Sheets(Sheets.Count)
        .Visible = False
    End With
    With Sheets(Sheets.Count)
        .Name = Nom + "_" + Prenom + IIf(Age = 0, "", "_" + Format(Age, "yyyy"))
        .Cells(1, 1).Value = Nom
    End With
Else
    Call MsgBox("La feuille avec ce nom existe déja.", vbCritical, "Impossible de créer une feuille")
    Exit Sub
End If
Application.ScreenUpdating = True
End Sub

Concernant la synthèse il "suffit" de cumuler les valeurs de chaque onglet de tous les fichiers dans un nouvel onglet "DATA" puis de faire des TCD ou graph à partir de ces données.

PS: oups on a répondu avant moi et de manière plus élégante!

Pyfux
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Bonjour Tahititin, salut Modeste :)

Pour les noms des feuilles, bien d'accord avec Modeste.

Pour la feuille SYNTHESE, je suppose que vous voulez que toutes les feuille existent.

Alors, à l'activation de la feuille, il suffit de lancer la macro Creation (paramétrée) pour chaque nom.

Fichier joint.

Edit : salut pyfux

A+
 

Pièces jointes

  • Essai - EMASP(1).xlsm
    87.6 KB · Affichages: 57
Dernière édition:

Tahititin

XLDnaute Occasionnel
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Merci beaucoup à tous,
Pour pallier les homonymies, j'ai utilisé le code de pyfux. Par contre lorsque j'essaie de cliquer sur un nom qui a déjà son onglet je n'ai plus la msgbox qui apparaît pour me dire que l'onglet existe déjà.... j'ai un débogage.... insoluble de mon côté.
Pour la synthèse, peut-être que je ne suis pas bien fait comprendre. Je souhaiterai avoir un onglet SYNTHESE ou DATA qui se met à jour en allant "taper" les infos sur les différents onglets nominatifs régulièrement créé et mis à jour.... comment intégrer mes formules de synthèse alors que je ne sais pas encore le nom des patients pris en charge et leur nombre? En sachant que tous les onglet nominatifs sont strictement identique : tous les renseignements rechercher ont la même "adresse" de cellule.
Merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Bonjour le fil, bonjour le forum,

Une autre proposition avec tri alphabétique des onglets "patient" ...
Code:
Option Explicit


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ws As Worksheet
Dim Nom As String
Dim np As String 'déclare la variable np (Nom Prénom)
Dim i As Integer, j As Integer

If Target.Column <> 1 Or Target.Value = "" Then Exit Sub
Cancel = True
Application.ScreenUpdating = False
Nom = Target.Value
np = Target.Value & " " & Target.Offset(0, 1).Value
On Error Resume Next
Set ws = Sheets(np)
If Err <> 0 Then
    Err = 0
    With Sheets("Modèle")
        .Visible = True
        .Copy After:=Sheets(Sheets.Count)
        .Visible = False
    End With
    With Sheets(Sheets.Count)
        .Name = np
        .Cells(1, 1).Value = Nom
    End With
Else
    Call MsgBox("La feuille avec ce nom existe déja.", vbCritical, "Impossible de créer une feuille")
End If
On Error GoTo 0
For i = 4 To Sheets.Count
    For j = 4 To Sheets.Count
        If Sheets(j).Name < Sheets(i).Name And i < j Then Sheets(j).Move Sheets(i)
        Next j
Next i
Sheets(np).Activate
Application.ScreenUpdating = True
End Sub

Je n'ai pas traité le problème de synthèse car ton fichier exemple n'est pas très significatif de ce que tu veux. Il faudrait que tu refasses un fichier avec au moina deux pattent et l'onglet synthèse remplis pour qu'on voit mieux ce que tu souhaites...
 

job75

XLDnaute Barbatruc
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Re, salut Robert :)

Je complète mon fichier avec de nouvelles formules dans la feuille Modèle.

A mon avis, le Nom+Prénom doivent suffire pour éviter les doublons.

A+
 

Pièces jointes

  • Essai - EMASP(2).xlsm
    88 KB · Affichages: 61
Dernière édition:

Tahititin

XLDnaute Occasionnel
Re : Synthèse de données de plusieurs onglets.... qui n'existent pas encore !!

Bonjour et merci à tous à tous, vous m'avez encore beaucoup aidé.
Je vous joins la dernière version du fichier pour la partie synthèse j'aimerai pouvoir synthètiser les données saisies dans tous les onglet "patients" créés au cours de l'année (ne sachant pas combien d'onglet seront créés ainsi que leur nom). Par exemple, j'aimerai pouvoir synthètiser le nombre d'intervention totales annuelles d'IDE, de MEDECIN.... et le nombre total d'intervention pour douleur.... En sachant que tous les onglets "patients" sont créé à partir d'un onglet "modèle" qui est masqué... tous mes onglets "patients" sont donc identiques.
En espérant avoir été suffisamment clair, je vous remercie pour votre aide précieuse
 

Pièces jointes

  • Essai - EMASP.xlsm
    448.8 KB · Affichages: 62
  • Essai - EMASP.xlsm
    448.8 KB · Affichages: 62
  • Essai - EMASP.xlsm
    448.8 KB · Affichages: 69

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 900
Membres
101 834
dernier inscrit
Jeremy06510