Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

récuperer les informations de plusieurs lignes sur une seule

  • Initiateur de la discussion Initiateur de la discussion 642009
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

642009

XLDnaute Nouveau
Bonjour
Je ne sais pas si mon titre est très compréhensible mais je vous explique mon problème :
Je travaille dans une structure de soins et nous devons compter le nombre de consultation par intervenant et par personne de notre file active.
Je me suis créer, avec l'aide de la formation vidéo de ce site : www.polykromy.com/.../excel-base-de-donnees.htm, un fichier très bien pour le recueil des données patients car un patient correspond à une ligne.
Mais j'ai un soucis concernant la feuille du suivi patient.
Je souhaiterais faire une fiche par patient mais un patient se retrouve sur plusieurs ligne à des dates différentes et types de consultations différentes
Comment faire une fiche avec le nom du patient et les différentes consultations qu'il a eu.
J'espère avoir été claire.
 

Pièces jointes

Re : récuperer les informations de plusieurs lignes sur une seule

Bonjour et bienvenue.

Le but de la fiche est pour l'impression ?
Car garder toutes les données sur une seule feuille, comme une base de donnée unique est une bonne chose.

Maintenant, si vous souhaiter avoir des informations par patient (ex : Nom Prénom, Date de naissance, num Tel, ect) le mieux serait de faire une deuxième feuille avec une ligne par personne (et une seule)

Et du coup, pour "observer" un patient, il faudrait créer un UserForm regroupant les informations d'un coté et les consutlations de l'autre (en piochant dans les deux feuilles)
(On peut rajouter un bouton Imprimer au besoin)

Est-ce que c'est l'utilisation que vous voulez en faire ?
 
Re : récuperer les informations de plusieurs lignes sur une seule

Bonsoir 642009, Odesta
La procédure qui suit crée autant de feuilles qu'il existe de valeurs distinctes non vides dans la plage nommée NOM, et reporte dans chaque feuille les lignes correspondantes.
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim n&, i&, j&, k&, shn, shi
Dim oTtr, lDat, oDat, oColl As New Collection
[COLOR="SeaGreen"]'  "NOM" est la plage nommée définie par _
   =DECALER('suivi patients'!$A$14;1;0;MAX(('suivi patients'!$A$15:$A$1015<>"")*LIGNE('suivi patients'!$A$1:$A$1001));1)[/COLOR]
   oTtr = Range("NOM").Offset(-1, 0).Resize(1, 7).Value
   oDat = Range("NOM").Resize(, 7).Value
   ReDim lDat(1 To 1, 1 To UBound(oDat, 2))
   For i = 1 To UBound(oDat, 1)
      shn = oDat(i, 1)
      If Not IsEmpty(shn) Then
         n = 10
         On Error GoTo E
         shi = Sheets(shn).Name
         On Error GoTo D
         oColl.Add shi, CStr(shn)
         On Error GoTo 0
         For j = 1 To UBound(oDat, 1)
            If oDat(j, 1) = shn Then
               n = n + 1
               For k = 1 To UBound(oDat, 2)
                  lDat(1, k) = oDat(j, k)
               Next k
               Sheets(CStr(shn)).Rows(n).Resize(1, UBound(lDat, 2)) = lDat
            End If
         Next j
A:    End If
   Next i
Exit Sub
D: Resume A
E: Application.DisplayAlerts = False
   Worksheets.Add
   ActiveSheet.Name = CStr(shn)
   Application.DisplayAlerts = True
   ActiveSheet.Cells(n, 1).Resize(1, UBound(lDat, 1)) = oTtr
   Resume
End Sub[/B][/COLOR]
ROGER2327
#3504


Mercredi 4 Merdre 137 (Nativité de Saint Henri Rousseau, douanier, SQ)
2 Prairial An CCXVIII
2010-W20-5T19:17:52Z
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
129
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…