Gestion "agenda" patients - problème vba

G

Guims

Guest
Bonjour à tous,

Je situe un peu mon problème...

J'ai un répertoire avec un fichier par patient.
J'ai un fichier avec un onglet par mois qui reprend les patients (max 15 par jour) qui ont été soignés.

Je voudrais créer une macro qui check si la date x est "contenue" entre la date d'entrée et de sortie du patient (dans l'onglet données du fichier patient) et tape le nom prénom et num sur la ligne de la date x.
Puis passer à la date y (x+1)...
etc...
voir mes fichiers exemples

Merci de votre aide

Guillaume
 

Fichiers joints

C

ChTi'160

Guest
Salut "Guims"
bonjour le "FORUM"
en pièce jointe une possibilté à adapter sûrement
les deux fichiers doivent être ouvert, tu lances la macro du fichier Janvier
tiens nous au courant
A+++
Jean Marie
 

Fichiers joints

C

ChTi'160

Guest
Re "Guillaume"
en relisant le post je viens de m'apercevoir que j'ai pris en compte les dates d'entrée et de sortie
il suffit pour régler ce problème de supprimer les = dans la procédure on obtient ainsi:
If VdateCal > VdateDebut And VdateCal < VdateFin Then
A+++
Jean Marie
 
C

ChTi'160

Guest
re "Guillaume"
je joins le code avec un ajout en Gras
tu peux aussi ajouter un bouton en page patient et y coller la macro
Sub transfertNom()
Dim cel As Range
Dim VdateCal As Long, VdateDebut As Long, VdateFin As Long
Dim Tab1 As Variant, Tab2 As Variant, Tab3 As Variant
Dim derlgn As Byte, derlgn2 As Byte, lgn As Byte, nCol As Byte, nPatient As Integer
Application.ScreenUpdating = False
With Workbooks("patientx").Sheets("Données")
.Activate
derlgn = .Range("B65536").End(xlUp).Row

Tab1 = .Range("B12:I" & derlgn).Value
nPatient = UBound(Tab1, 1)
End With
With Workbooks("journal_kine").Sheets("Janvier")
.Activate
.Range("B3:p33").ClearContents'efface la zone avant réinscription si modif en page patient
derlgn2 = .Range("A65536").End(xlUp).Row
nCol = 1
For nPatient = 1 To UBound(Tab1, 1)

For Each cel In .Range("A3:A" & derlgn2)


VdateCal = Format(cel.Value, "00000")
VdateDebut = Format(Tab1(nPatient, 6), "00000")
VdateFin = Format(Tab1(nPatient, 8), "00000")


If VdateCal > VdateDebut And VdateCal < VdateFin Then
cel.Offset(0, nCol) = Tab1(nPatient, 1) & "-" & Tab1(nPatient, 5)

End If

Next
nCol = nCol + 1
Next

End With
Application.ScreenUpdating = True
End Sub

A+++
Jean Marie
 
G

Guims

Guest
C'est génial ChTi'160 !!! Merci beaucoup !!!
Je viens de rentrer du boulot c'est pour cela que je n'ai pu te répondre plus tot.

Pour ta 1ere modif (avec les dates d'entrées et de sorties), je ne comprends la modif justement puisque les jours d'entree et de sortie comptent également (donc le "=" est bien !)

En tout cas, chapeau! ca tourne impec !

(je débute en vba et je tatonne un peu, tu m'as donc méchamment avancé !! encore merci !)

@+
Guillaume
 
G

Guims

Guest
Re-chti,
je viens d'essayer avec la base de données patients (la vraie),
le problème c'est que, en moyenne, il y a 75 patients par mois, donc 75 colonnes... ce qui fait beaucoup car c'est un document qui est destiné à être imprimé...
Quelle modif peut etre faite pour que les patients se mettent l'un à la suite de l'autre par jour (dans ton fichier exemple, que le 8 janvier par exemple, "JEAN - 124567" soit à cote de "gus-123456"...

merci de ton aide et de ta patience !

@ +
Guillaume
 
C

ChTi'160

Guest
Salut " Guillaume"
bonsoir le "FORUM"
je pense que celà est possible, j'y travaille et je posterai ,donc suis ton fil
A+++
Jean Marie
 
G

Guims

Guest
Re: Gestion "agenda" patients - probl�me vba

tout simplement merci !

bonsoir
Guillaume
 
G

Guims

Guest
a premiere vue... GENIAL !!!
merci beaucoup beaucoup !!!
bonne nuit !

@+
Guillaume
 
G

Guims

Guest
BOnjour le forum
salut ChTi

Juste avant de partir au boulot, une petite question :
le fichier journal doit etre realise avec un onglet par mois, est ce que je dois modifier la macro pour en créer 12 (1 par mois) ou peut on créer une loop pour qu'elle (la macro) change d'onglet donc de mois seule ?

merci de votre aide !

BOnne journée !

Guillaume
 
C

ChTi'160

Guest
Salut"Guillaume"
Bonjour le"FORUM"
une version 4 qui avec l'introduction d'une variable mois (qui prend la valeur du mois en cours) ouvre la feuille portant le nom du mois
Tiens moi au courant
A+++
Jean Marie
 

Fichiers joints

G

Guims

Guest
Salut ChTi !
Ca marche impec mais pas encore comme il faudrait...
si un patient reste du 27/01/05 au 3/02/05, il faudrait que la macro
écrive sur l'onglet janvier et février (pas seulement sur le mois en cours)

merci de ton aide

Guillaume
 
C

ChTi'160

Guest
Salut "Guillaume "
bonsoir le "FORUM"
je pense que celà est possible
mais je pense qu'il va falloir chercher la combine
donc suis ce fil et on va essayé, Si tu as la solution tu me la donne
A+++
Jean Marie
 
C

ChTi'160

Guest
salut "Guillaume "
ca arrive, je pense te poster quelque chose Aujourdhui là je rentre du boulot je vais dodo .
ca ce présente pas mal
A+++
Jean Marie
 
G

Guims

Guest
Salut à tous
ChTi, je pensais justement a toi ce matin en venant travailler !!
j'aillais te répondre pour te dire... que je suis un peu largué !!
Je débute en vba et ca dépasse pas mal mes possibilités :-/
merci de ta patience !
bonne nuit !
moi je vais bosser !
bon dimanche !!!

Guillaume
 
C

ChTi'160

Guest
Re "Guillaume"

En pièce jointe une autre version qui permet de prendre en compte les dates à cheval sur deux mois(moi non plus je ne suis pas un pro )et je bidouille mais bon j'apprends sur le tas
j'ai mis des pages Recap et tri dans le Classeur "patientxV1" tu regardes tu testes et tu me tiens au courant des évolutions possibles car bon je fais mais je ne comprends pas forcément la finalité Lol
A+++
Jean Marie
 

Fichiers joints

G

Guims

Guest
RE Jean Marie
ca avance !
je t'ai remis en piece jointe les fichiers modifies (je n'ai pas touche aux macros pour l'instant)
en fait ce qu'il faut c'est que chaque jour d'hospit d'un patient (c'est à dire tous les jours entre la date d'entrée et de sortie y compris) son nom, prénom, code apparaissent dans le fichier journal...
je suis en train de me dire que si c'est plus simple de ne faire qu'une feuille par an (tous les mois sur la meme feuille) je ferai comme ca...
enfin je vais encore chercher !
ta macro tourne bien mais si je mets une date de sortie en avril, ca ne marche pas complètement...

Merci de ton aide et bon apres midi !

Guillaume

PS : tu n'as pas bcp dormi !!!
 

Fichiers joints

C

ChTi'160

Guest
re
je vois que tu as posté et que je ne l'ai pas vu
oui ce qui est compliqué dans ce genre d'affaire c'est de savoir comment ca doit tourner
donc si j'ai bien compris tu peux inclure des périodes très longues
donc il faut faire une boucle sur une année pour déposer les dates, tu fais dans la longue maladie Lol
enfin on va voir je regarde ton fichier
A+++
Jean marie
 

Discussions similaires


Haut Bas