Modification de données sur 2 feuilles différentes via UserForm

Bonjour,

Je cherche à pouvoir modifier mes données via un Userform (USF_SAISIE) sur 2 feuilles différentes. Pour saisir dans ces 2 feuilles, j'utilise le code suivant qui va saisir dans une feuille appelée "Tous_les_décès" et l'autre en fonction de la valeur de ma ComboBox... Jusque là, tout va bien

Private Sub btn_enregistrer_Click() 'Bouton enregistrer USF_SAISIE

'################################
'### DEBUT CHAMPS OBLIGATOIRE ###
If Me.txt_nom.Value = Empty Then
    s = MsgBox("Le champ : " & Label2 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.txt_nom.SetFocus
    Exit Sub
End If

If Me.txt_prenom.Value = Empty Then
    s = MsgBox("Le champ : " & Label3 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.txt_prenom.SetFocus
    Exit Sub
End If

If Me.txt_naissance.Value = Empty Then
    s = MsgBox("Le champ : " & Label4 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.txt_naissance.SetFocus
    Exit Sub
End If

If Me.Cbo_services.Value = Empty Then
    s = MsgBox("Le champ : " & Label5 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.Cbo_services.SetFocus
    Exit Sub
End If

If Me.txt_deces.Value = Empty Then
    s = MsgBox("Le champ : " & Label6 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.txt_deces.SetFocus
    Exit Sub
End If

If Me.txt_hdeces.Value = Empty Then
    s = MsgBox("Le champ : " & Label7 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.txt_hdeces.SetFocus
    Exit Sub
End If

If Me.Cbo_precaution.Value = Empty Then
    s = MsgBox("Le champ : " & Label8 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.Cbo_precaution.SetFocus
    Exit Sub
End If

If Me.Cbo_pacemaker.Value = Empty Then
    s = MsgBox("Le champ : " & Label9 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.Cbo_pacemaker.SetFocus
    Exit Sub
End If

If Me.Cbo_bracelet.Value = Empty Then
    s = MsgBox("Le champ : " & Label10 & " est obligatoire", vbCritical, "Erreur de saisie")
    Me.Cbo_bracelet.SetFocus
    Exit Sub
End If

'#### FIN CHAMPS OBLIGATOIRE ####
'################################
'-------------------------------------------------------------------
'###################################
'### DEBUT SAISIE TOUS_LES_DECES ###

Dim L As Integer 'Concerne la feuille Tous_les_deces
Dim C As Integer 'Concerne les feuilles SERVICES en fonction de la combobox

 If MsgBox("Confirmer l'enregistrement d'un nouveau décès ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
     L = Sheets("Tous_les_deces").Range("B65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide

        Range("B" & L).Value = IIf(Me.option_madame = True, "Madame", "Monsieur")
        Range("C" & L).Value = txt_nom
        Range("D" & L).Value = txt_prenom
        Range("E" & L).Value = txt_naissance
        Range("G" & L).Value = Cbo_services
        Range("H" & L).Value = txt_deces
        Range("I" & L).Value = txt_hdeces
        Range("J" & L).Value = Cbo_precaution
        Range("K" & L).Value = Cbo_pacemaker
        Range("L" & L).Value = Cbo_bracelet
        Range("M" & L).Value = txt_famille
        Range("N" & L).Value = txt_effet
        Range("O" & L).Value = txt_autre
        Range("P" & L).Value = Cbo_pf

        If USF_PATIENT.option_DSB.Value = True Then 'Sélectionne le bon optionbutton à l'affichage pour DSB & MB
                Range("Q" & L).Value = "DSB"
        End If
        If USF_PATIENT.option_MB.Value = True Then
                Range("Q" & L).Value = "MB"
        End If

        Range("R" & L).Value = txt_depart
        Range("U" & L).Value = txt_hdepart
        Range("V" & L).Value = Cbo_presentation
        Range("W" & L).Value = Cbo_sepulture
        Range("X" & L).Value = txt_lieu

'#### FIN SAISIE TOUS_LES_DECES ####
'###################################
'-----------------------------------------------------------------
'#############################
'### DEBUT SAISIE SERVICES ###

    C = Sheets(Cbo_services.Text).Range("B65536").End(xlUp).Row + 1

        Sheets(Cbo_services.Text).Range("B" & C).Value = IIf(Me.option_madame = True, "Madame", "Monsieur")
        Sheets(Cbo_services.Text).Range("C" & C).Value = txt_nom
        Sheets(Cbo_services.Text).Range("D" & C).Value = txt_prenom
        Sheets(Cbo_services.Text).Range("E" & C).Value = txt_naissance
        Sheets(Cbo_services.Text).Range("G" & C).Value = Cbo_services
        Sheets(Cbo_services.Text).Range("H" & C).Value = txt_deces
        Sheets(Cbo_services.Text).Range("I" & C).Value = txt_hdeces
        Sheets(Cbo_services.Text).Range("J" & C).Value = Cbo_precaution
        Sheets(Cbo_services.Text).Range("K" & C).Value = Cbo_pacemaker
        Sheets(Cbo_services.Text).Range("L" & C).Value = Cbo_bracelet
        Sheets(Cbo_services.Text).Range("M" & C).Value = txt_famille
        Sheets(Cbo_services.Text).Range("N" & C).Value = txt_effet
        Sheets(Cbo_services.Text).Range("O" & C).Value = txt_autre
        Sheets(Cbo_services.Text).Range("P" & C).Value = Cbo_pf

        If USF_PATIENT.option_DSB.Value = True Then 'Sélectionne le bon optionbutton à l'affichage pour DSB & MB
            Sheets(Cbo_services.Text).Range("Q" & C).Value = "DSB"
        End If
        If USF_PATIENT.option_MB.Value = True Then
            Sheets(Cbo_services.Text).Range("Q" & C).Value = "MB"
        End If

     Sheets(Cbo_services.Text).Range("R" & C).Value = txt_depart
     Sheets(Cbo_services.Text).Range("U" & C).Value = txt_hdepart
     Sheets(Cbo_services.Text).Range("V" & C).Value = Cbo_presentation
     Sheets(Cbo_services.Text).Range("W" & C).Value = Cbo_sepulture
     Sheets(Cbo_services.Text).Range("X" & C).Value = txt_lieu

MsgBox ("Le décès de ") & txt_nom & " " & txt_prenom & "" & (" a été enregistré avec succès !")

'### FIN SAISIE SERVICES ###
'###########################
 End If

    'Unload Me
End Sub

Donc ensuite, lorsque je suis sur ma page "Tous_les_deces", j'affiche les infos dans un autre UserForm (USF_PATIENT) en double cliquant sur la ligne que je souhaites consulter avec le code suivant (dans ma page Tous_les_deces) : Jusque là, tout va bien aussi

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Pour afficher les infos décès par double clique
i = ActiveCell.Row

        If Cells(i, 2).Value = "Monsieur" Then 'Sélectionne le bon optionbutton à l'affichage pour MR & MME
        USF_PATIENT.Option_MR.Value = True
        End If
        If Cells(i, 2).Value = "Madame" Then
        USF_PATIENT.Option_MME.Value = True
        End If

    USF_PATIENT.txt_nom = Cells(i, 3)
    USF_PATIENT.txt_prenom = Cells(i, 4)
    USF_PATIENT.txt_naissance = Cells(i, 5)
    USF_PATIENT.txt_age = Cells(i, 6)
    USF_PATIENT.Cbo_services = Cells(i, 7)
    USF_PATIENT.txt_deces = Cells(i, 8)
    USF_PATIENT.txt_hdeces = Cells(i, 9)
    USF_PATIENT.Cbo_precaution = Cells(i, 10)
    USF_PATIENT.Cbo_pacemaker = Cells(i, 11)
    USF_PATIENT.Cbo_bracelet = Cells(i, 12)
    USF_PATIENT.txt_famille = Cells(i, 13)
    USF_PATIENT.txt_effet = Cells(i, 14)
    USF_PATIENT.txt_autre = Cells(i, 15)
    USF_PATIENT.Cbo_pf = Cells(i, 16)

        If Cells(i, 17).Value = "DSB" Then 'Sélectionne le bon optionbutton à l'affichage pour DSB & MB
        USF_PATIENT.option_DSB.Value = True
        End If
        If Cells(i, 17).Value = "MB" Then
        USF_PATIENT.option_MB.Value = True
        End If

    USF_PATIENT.txt_depart = Cells(i, 18)
    USF_PATIENT.txt_hdepart = Cells(i, 21)
    USF_PATIENT.Cbo_presentation = Cells(i, 22)
    USF_PATIENT.Cbo_sepulture = Cells(i, 23)
    USF_PATIENT.txt_lieu = Cells(i, 24)

USF_PATIENT.Caption = "Fiche décès - " & Cells(i, 3) & " " & Cells(i, 4) 'Ajoute le NOM et prénom du défunt dans la Caption de l'UserForm

USF_PATIENT.Show
End Sub

En utilisant cette méthode d'affichage via double clique, j'arrive à modifier mes données sur la page "Tous_les_deces" en utilisant le code suivant :

Private Sub btn_modifier_Click() 'bouton modifier : Sert à insérer les TextBox qui ont été modifiées
    If MsgBox("Voulez-vous mettre à jour la fiche décès ?", vbYesNo, "Mise à jour fiche décès ?") = vbYes Then

    i = ActiveCell.Row

    Cells(i, 2) = IIf(Me.Option_MME = True, "Madame", "Monsieur")
    Cells(i, 3) = txt_nom.Value
    Cells(i, 4) = txt_prenom.Value
    Cells(i, 5) = txt_naissance.Value
    Cells(i, 6) = txt_age.Value
    Cells(i, 7) = Cbo_services.Value
    Cells(i, 8) = txt_deces.Value
    Cells(i, 9) = txt_hdeces.Value
    Cells(i, 10) = Cbo_precaution.Value
    Cells(i, 11) = Cbo_pacemaker.Value
    Cells(i, 12) = Cbo_bracelet.Value
    Cells(i, 13) = txt_famille.Value
    Cells(i, 14) = txt_effet.Value
    Cells(i, 15) = txt_autre.Value
    Cells(i, 16) = Cbo_pf.Value

    If USF_PATIENT.option_DSB.Value = True Then 'Sélectionne le bon optionbutton à l'affichage pour DSB & MB
        Cells(i, 17) = "DSB"
    End If
    If USF_PATIENT.option_MB.Value = True Then
        Cells(i, 17) = "MB"
    End If

    Cells(i, 18) = txt_depart.Value
    Cells(i, 19) = txt_hdepart.Value
    Cells(i, 20) = Cbo_presentation.Value
    Cells(i, 21) = Cbo_sepulture.Value
    Cells(i, 22) = txt_lieu.Value

    MsgBox ("La fiche décès de ") & txt_nom & " " & txt_prenom & " " & ("a été mise à jour avec succès !")
End If
    Unload Me
End Sub

Et c'est là que tout ce complique ... Je souhaite pouvoir modifier mes données dans la feuille "Tous_les_deces" (ça c'est bon avec le code ci-dessus)et dans la feuille du service au NOM de la bonne personne. La feuille du service dans l'UserForm d'affichage (USF_PATIENT) apparaît dans ma ComboBox nommée "Cbo_services". Donc il faudrait que mes données se modifient dans la page "Tous_les_deces" ET dans la page du service au bon Nom de patient...

Un grand MERCI d'avance à ceux qui prendront le temps de lire ceci et de m'aider. Je suis assez novice en VBA.

Bien à vous

Rechercher des sujets similaires à "modification donnees feuilles differentes via userform"