Comment faire pour remplir ceci??

sly99

XLDnaute Junior
Kikoo le forum...
comment allez vous en ce "beau" mois d'août? :)

voila je reviens toujours avec le même projet (planning)
un petit ps en rapport à mon précédent sujet et à certaine réactions.. je n'ai aucunement l'intention d'oublier les personnes qui m'aide à réaliser ce projet (je leur doit tellement depuis le début) et je pense les remercier toutes assé a chaque fois que je post...
je n'ai pas effacer non plus leur nom ou quoique ce soit des codes que j'ai récupéré parci par la... je me rattraperait en remettant le nom de tout ceux et celles ki m'ont aidé.... voili voilou.. pour ceci.. je n'ai pas l'intention de froisser qui que ce soit..et désolé si j'ai pu être maladroit...
ceci fait voici ma petite question ;-)

dans ce fichier
Feuille Août j'ai le planning (qui pourra se recopier sur les d'autre feuilles en créant les autres mois mais ca c fait)
Feuille Base_Soigant c'est ma base de donnée soignants dans la quelle j'ai toutes les informations necessaires pour remplir le planning...

ce que je souhaiterai pouvoir avoir c le bouton sur la feuille "Août" : Remplir planning me permettant me remplir donc ce planning en fonction des données de la base.. (logique) lol
ou totalement... ou alors soignant par soignant... (ligne par ligne en choisissant)..

je sias pas si j'ai pu etre assé clair..
sinon nessitait pas..
merci encore de votre aide a tous...

bizz..
sylvain
 

Pièces jointes

  • planning.zip
    40.5 KB · Affichages: 67
  • planning.zip
    40.5 KB · Affichages: 65
  • planning.zip
    40.5 KB · Affichages: 67
C

Compte Supprimé 979

Guest
Re : Comment faire pour remplir ceci??

Salut Sly99,

C'est le vacances pour nous, mais pour nos neurones aussi :D

As tu essayé de faire quelque chose avec l'enregistreur de macro !?
Ca pourrait te donner une base.
 

sly99

XLDnaute Junior
Re : Comment faire pour remplir ceci??

kikoo...

voila alors aprés quelques petits essais et petites recherches et petites questions (merci a pierrot, wilfried..)
j'ai un peux plus avancé mais je suis coincé..

voici ce que j'ai reussis a faire (bouton Remplir planning ok)
mais seulement pour un soignant dans la liste de la feuille du mois en cours..
mais au moins ca vous donne un petit apercus de ce que je cherche a faire..

voili voilou..
vraiment besoind'aide pr la suite parceque la je plante..lol

merci
 

Pièces jointes

  • planning.zip
    40.9 KB · Affichages: 43
  • planning.zip
    40.9 KB · Affichages: 45
  • planning.zip
    40.9 KB · Affichages: 42
C

Compte Supprimé 979

Guest
Re : Comment faire pour remplir ceci??

Salut Sly99,

Voilà un bon début, après un peu de réflexion ;)

Par contre une question.
A partir de ta base soignants, comment sait-on à qu'elle mois correspond tes 'Vendredi1/2/3/4' par exemple ?

Je n'ai pas bien compris le principe :rolleyes:

A+
 

sly99

XLDnaute Junior
Re : Comment faire pour remplir ceci??

kikoo bruno...le forum..;

ben en fait le numéro de la semaine (1 2 3 4) est marqué dans la feuille mois (Aout ici) au dessus des jours.... c'est comme ca que c'est déterminé..

voili.. ;-)
 

sly99

XLDnaute Junior
Re : Comment faire pour remplir ceci??

re le forum...
bonsoir a tous..;

voila j'ai enfin obtenus grace a vous pratiquement ce que je souhaitais..

voici le code.. mais il reste juste un petit problème expliqué..

Code:
Sub remplissage()
Dim num_sem As Variant
Dim pem_jour As String
Dim co As Variant
Dim li As Variant
Dim li1 As Variant
Dim nom_soignant As String
Dim nbjour_mois As Variant
Dim w1 As String
Dim x As Range

w1 = ActiveSheet.Name
Cells(9, 3).Select
nom_soignant = Cells(5, 20).Value

Do Until IsNumeric(ActiveCell.Value)
ActiveCell.Offset(0, 1).Select
Loop

If ActiveCell.Select = Cells(9, 3) Then
    num_sem = ActiveCell.Value
Else
    num_sem = ActiveCell.Value - 1
If num_sem = 0 Then num_sem = 4
End If

prem_jour = Cells(10, 3) & num_sem

Set x = Range("A:A").Find(nom_soignant, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then li1 = x.Row Else: Exit Sub

Sheets("Base_Soignants").Select
Cells(2, 10).Select

Do Until ActiveCell.Value = prem_jour
ActiveCell.Offset(0, 1).Select
Loop
co = ActiveCell.Column

Cells(8, 1).Select

Do Until ActiveCell.Value = nom_soignant
ActiveCell.Offset(1, 0).Select
Loop
li = ActiveCell.Row

Cells(li, co).Select


Range(Cells(li, co), Cells(li, co + 61)).Copy [COLOR="Red"]' ici 61 corresponds au nombre de jour dans le mois fois 2 moins 1 (comment faire pour faire le calcul en fonction du mois de la feuille?)[/COLOR]
With Sheets(w1)
    .Cells(li1, 3).PasteSpecial Paste:=xlValues
End With
Application.CutCopyMode = False

Sheets(w1).Activate 

End Sub

voila.. just un dernier petit soucis pourpouvoir mettre le mois ..

mici..
 

Kotov

XLDnaute Impliqué
Re : Comment faire pour remplir ceci??

Re sly,

Voici une macro à adapter à ton fichier puis à intégrer à ta macro

Hypothèse de départ :
- Tu veux connaitre le nombre de jours du mois traité (j)
- l'année est définie en cellule A1 (ca c'est pour l'exemple, à toi d'indiquer la vrai cellule)
- le mois est défini en cellule B1

Le problème majeur vient des années bissextiles :
une année bissextile est divisible par 4 (ex:1964 = 29j)
Sauf si l'année est divisible par 4 et par 100 mais pas par 400 (ex: 1900=28j)
mais si l'année est divisible par 100 et par 400 elle est bissextile (2000 =29j)



Code:
Sub JoursDansMois()
Dim j As Byte
Dim année As Integer
Dim mois As Byte
année = Cells(1, 1)   '**** à adapter à ton cas bien évidemment !
mois = Cells(1, 2)
Select Case mois
Case 1, 3, 5, 7, 8, 10, 12
    j = 31
Case 2
j = 28
     'Exception des années bisextiles
     If année Mod 4 = 0 Then
        j = 29
        If année Mod 100 = 0 Then
            If année Mod 400 <> 0 Then
                j = 28
            End If
         Else
            j = 29
        End If
    End If
Case Else
j = 30
End Select
MsgBox CStr(année) & "  = " & CStr(j) & " jours" '*** à enlever, c'est juste pour contrôler
End Sub

Adaptes la macro à ton cas
Une fois que tu as le nombre de jours du mois, tu peux, comme dans ton exemple, le multiplier par 2 et ôter 1

A +
Kotov
 
Dernière édition:

Gruick

XLDnaute Accro
Re : Comment faire pour remplir ceci??

Bonjour Sly,
Bon, j'ai vu tes explications embarassées, et je pardonne.
Tu as aussi de la chance qu'il pleuve ce qui me permet de pianotter...
J'ai fait une macro qui devrait te convenir, j'ai uniquement revu les chiffres des semaines pour les rendre "visibles" et exploitables par la macro, sans trouver moyen de les cacher par une MFC.
Pas compris ta formule en L3C33 pour le mois ??? (feuille août)
Bonne continuation, au soleil de Marseille. Moi, je suis en Alsace actuellement, région la moins pluvieuse de France, il faut croire qu'ils ont voulu rattraper le retard... compensation, on y mange bien.
Gruick
 

Pièces jointes

  • Planning Sly99.zip
    39.2 KB · Affichages: 49

sly99

XLDnaute Junior
Re : Comment faire pour remplir ceci??

Merci gruick, kotov.. le forum..

ca fait plaisir.. et ca fonctionne très bien....

@Gruick : la formule en L3C33 c'est une formule de monique... ;-)
elle fonctionne très bien.. lol. mais c'est vrai que si toi tu ne comprends pas la formule... alors moi..lol

++
 

Monique

Nous a quitté
Repose en paix
Re : Comment faire pour remplir ceci??

Bonjour,

La formule en L3C33 n’est pas de moi.
Elle fabrique une date à partir du nom de l'onglet
(et on peut la raccourcir)

Chemin, nom du fichier et de l'onglet :
=CELLULE("nomfichier";LC)
=CELLULE("filename";LC)

Nom de l'onglet seulement par Stxt() =STXT(Réf ; n° de départ ; Nb de caractères)
=STXT(CELLULE("nomfichier";LC);TROUVE("]";CELLULE("nomfichier";LC))+1;9)

On arrive à faire une date (numérique) par =("Août"&2007)*1 ou bien =CNUM("Août"&2007)
=1*(STXT(CELLULE("nomfichier";LC);TROUVE("]";CELLULE("nomfichier";LC))+1;31)&ANNEE(AUJOURDHUI()))
ou bien
=CNUM(STXT(CELLULE("nomfichier";LC);TROUVE("]";CELLULE("nomfichier";LC))+1;31)&ANNEE(AUJOURDHUI()))

On peut faire un peu plus court en remplaçant nomfichier par filename
=1*(STXT(CELLULE("filename";LC);TROUVE("]";CELLULE("filename";LC))+1;31)&ANNEE(AUJOURDHUI()))
 

Gruick

XLDnaute Accro
Re : Comment faire pour remplir ceci??

Bonjour chère Monique, Bonjour Sly
@Monique
Quelle modestie, même si tu n'es pas l'auteur de cette trouvaille, tu as le grand mérite de l'avoir comprise et décortiquée, car j'avoue qu'avec cette subtilité, on entre dans le coté obscur de la force d'Excel.
Et puis, tu as un don pédagogique indéniable. Je vais de ce pas demander au Président qu'il te décerne la légion d'honneur... et elle devint rouge comme ce ruban.

@Sly
Mon petit programme peut être amélioré sûrement, je l'ai fait assez vite. N'étant pas ami des "with", et des foutus points (je ne sais jamais où les mettre, vu mes formules alambiquées), il est assez lent. Alors si une bonne âme...

A plus,
Gruick
 

Discussions similaires

Statistiques des forums

Discussions
312 167
Messages
2 085 894
Membres
103 021
dernier inscrit
Sergyl75