Pb : Protéger 2 feuilles qui sont des "récap" auto-alimentées

papapaul

XLDnaute Impliqué
:) Bonjour Forum,
J'ai 2 feuilles "recap", Patients et Sortis, j'arrive pas
à les protéger correctement. Elles doivent normalement
être alimentées ou modifiées seulement à partir de boutons
qui sont sur les feuilles Nouveau et Patient et donc y interdire
des saisies. J'interdis aussi la saisie dans les 5 premières colonnes
de mes feuilles services (ça ca marche).
Comme il y a des relations entre toutes les feuilles et aussi
des tris automatiques, quand j'essaye de protéger les 2
feuilles (citées plus haut) ça mets la pagaille dans l'éxécution
des macros des boutons.
J'ai essayé en mettant des trucs dans Thisworbook, dans les feuilles,
je m'en sors pas :(

C'est pour continuer une idée de la_grande. (fichier joint)
Pour la partie Repas, c'était OK je crois, je l'ai pas mis ici.

Merci d'avance, Bonne journée sur XLD;)
 

Pièces jointes

  • Protection_Services.zip
    48.6 KB · Affichages: 24

papapaul

XLDnaute Impliqué
Re : Pb : Protéger 2 feuilles qui sont des "récap" auto-alimentées

:) Salut cbea, Forum, merci de bien vouloir m'aider.
Mon fichier marche trés bien 1 fois sur 2.:confused:
Si tu arrive à l'ouvrir c'est la partie qui permet
d'afficher la liste des repas dans la feuille Patient
qui déconne. (bouton Voir Repas) Tout le reste semble correct.
Je peux pas t'expliquer plus, y a trop de trucs.:p
Ca ressemble à un problème de mémoire vive ou de récupération
de fichier mais pourquoi pas tout le temps.

Je te joins une version qui est nickel chez moi.
Si tu a un peu de temps,
Dis moi si tu y arrive (tu va voir que dans la feuille "patient"
c'est ma fiche qui apparait, avec mes repas prévus
à partir de la feuille "Patients" choisi par exemple Coco,
et dis moi si ce satané bouton "Voir les repas" fonctionne)

Merci à toi;)
 

Pièces jointes

  • Avec_Repas_pour _cbea.zip
    72.8 KB · Affichages: 19

papapaul

XLDnaute Impliqué
Re : Pb : Protéger 2 feuilles qui sont des "récap" auto-alimentées

:)
Merci cbea, A force de ramer j'ai peut-être une explication.
J'ai mis ce bout de code au tout début de la Macro Maj_Service.

Rows("18:64").Select
On Error Resume Next
Selection.EntireRow.Hidden = False

Faut croire que le code de la Macro13 ne suffisait pas.

Je crois que ca y est , :p
 

cbea

XLDnaute Impliqué
Re : Pb : Protéger 2 feuilles qui sont des "récap" auto-alimentées

Voici une solution.
Il faut que tu remplaces ta procédure "MAJ_Service" par celle-ci :

Code:
Sub MAJ_Service()
    'Recherche à partir du N°Sécu pour alimenter
    'la feuille Patient par le Service
    
    Dim ws As Object, c As Range
    
    For Each ws In Sheets
        If ws.Name = Sheets("Patient").Range("D12").Value Then
            With Sheets("Patient")
                Set c = ws.Columns("A:A").Find(.Range("B5").Value, LookIn:=xlValues, LookAt:=xlWhole)
                
                If Not c Is Nothing Then
                    c.Columns("f:ax").Copy
                    
                    .Range("c19").PasteSpecial _
                        Paste:=xlPasteAll, Operation:=xlNone, _
                        SkipBlanks:=False, Transpose:=True
                        
                    Exit For
                End If
            End With
        End If
    Next ws
    
    ActiveSheet.Unprotect
    Call Macro13
    ActiveSheet.Protect
End Sub

Si je peux me permettre, il serait bien d'appeler cette procédure après l'affichage des données du patient dans la feuille Patient.
Dans la userform4, modification de la procédure :
Code:
Private Sub CommandButton1_Click()
    'Pour copier la partie patient dans la feuille patient
    Dim Cel As Variant
    
    For Each Cel In Range("a7:a20")
        'Pour afficher Nom et Prénom
        If ComboBox1.Text = CStr(Cel) Then
            Cel.Select
            UserForm4.Hide
        
            Sheets("Patient").Range("b5") = Selection.Offset(0, 0)
            Sheets("Patient").Range("b2") = Selection.Offset(0, 1)
            Sheets("Patient").Range("b3") = Selection.Offset(0, 2)
            Sheets("Patient").Range("b7") = Selection.Offset(0, 3)
            Sheets("Patient").Range("b9") = Selection.Offset(0, 4)
            Sheets("Patient").Range("b10") = Selection.Offset(0, 5)
            Sheets("Patient").Range("D12") = Selection.Offset(0, 6)
            Sheets("Patient").Range("D14") = Selection.Offset(0, 7)
            Sheets("Patient").Range("D16") = Selection.Offset(0, 8)
            
            Sheets("Patient").Activate
            Call MAJ_Service
            
            Exit For
       End If
    Next
End Sub

et modification de la procédure :
Code:
Sub Macro13()
    Dim Lig As Long
    
    Application.ScreenUpdating = False
    
    For Lig = 19 To 63
        Rows(Lig).EntireRow.Hidden = False
        If Range("C" & Lig).Value = "" Then Rows(Lig).EntireRow.Hidden = True
    Next Lig
    
    Application.ScreenUpdating = True
End Sub 'Macro enregistrée le 10/05/2008 par papapaul
 

papapaul

XLDnaute Impliqué
Re : Pb : Protéger 2 feuilles qui sont des "récap" auto-alimentées

:) cbea, tu est vraiment trop fort et trop sympa.
Je vais étudier tout ca.
Le problème venait bien des Macros Maj_Service et Macro13
Surement pas orthodoxe mais à force de tatonner
je crois que j'avais résolu avec une autre solution,
voir mon post ci-dessus.

J'ai maintenant une nouvelle version impeccable
dans laquelle j'ai aussi fait un peu de ménage.:rolleyes:

J'éspère que la_grande sera contente

Encore Merci et bonne fin de soirée.

Lien supprimé
 

Statistiques des forums

Discussions
312 755
Messages
2 091 726
Membres
105 058
dernier inscrit
axcelle