Insérer dans cellule un calcul via macro

Résolu/Fermé
Bruno - 25 janv. 2019 à 10:44
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 25 janv. 2019 à 11:20
Bonjour à toutes et à tous

Mon problème : J'ai un calcul =SI(ESTVIDE($HXX);"";AUJOURDHUI()-$HXX) (pour le calcul de l'âge) où XX est dépendant de la ligne d'enregistrement.
Je complète mon tableau de suivi via un formulaire. A l'enregistrement d'une nouvelle ligne (colonne H) le calcul qui se trouve sur la ligne supérieure ne s'inscrit pas dans la nouvelle. Je souhaite alors le faire via le formulaire d'enregistrement.

Voici ma ligne "Ajouter"

'Ajouter un usager'
Private Sub CommandAjouter_Click()
Dim LiGne As Integer
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 1).Offset(1, 1).Select
i = i + 1


Loop
If Len(Me.CbxCivilité) = 0 Then
Message = "Veuillez sélectionner la Civilité"
Me.CbxCivilité.SetFocus
ElseIf Len(Me.TxtNom) = 0 Then
Message = "Veuillez renseigner le NOM"
Me.TxtNom.SetFocus
ElseIf Len(Me.TxtPrénom) = 0 Then
Message = "Veuillez renseigner le Prénom"
Me.TxtPrénom.SetFocus
ElseIf Len(Me.TxtDN) = 0 Then
Message = "Veuillez renseigner la Date de naissance"
Me.TxtDN.SetFocus
ElseIf Len(Me.TxtDInclu) = 0 Then
Message = "Veuillez renseigner la Date d'inclusion"
Me.TxtDInclu.SetFocus
ElseIf Len(Me.CbxFoyer) = 0 Then
Message = "Veuillez sélectionner le Foyer de vie"
Me.CbxFoyer.SetFocus
ElseIf Len(Me.CbxMéd) = 0 Then
Message = "Veuillez sélectionner le Médecin Traitant"
Me.CbxMéd.SetFocus
Else
If MsgBox("Confirmez-vous l'ajout des données?", vbYesNo, "Confirmation") = vbYes Then
Worksheets("Usagers").Select
LiGne = Sheets("Usagers").Range("A456541").End(xlUp).Row + 1
Cells(LiGne, 2) = Format(CDate(TxtDInclu.Value), "mm/dd/yyyy")
Cells(LiGne, 4) = CbxCivilité.Value
Cells(LiGne, 5) = TxtNom.Value
Cells(LiGne, 7) = TxtPrénom.Value
Cells(LiGne, 8) = Format(CDate(TxtDN.Value), "dd/mm/yyyy")
Cells(LiGne, 9) = "= SI(ESTVIDE($H & LiGne &);"";AUJOURDHUI()-$H & LiGne &)"
Cells(LiGne, 10) = CbxFoyer.Value
Cells(LiGne, 14) = CbxMéd.Value
Cells(LiGne, 16) = CbxMesure.Value
Cells(LiGne, 17) = CbxOrga.Value
Cells(LiGne, 19) = CbxManda.Value
Cells(LiGne, 20) = TxtMandaName.Value
Cells(LiGne, 21) = TxtMandaAdresse.Value
Cells(LiGne, 22) = TxtQualité.Value
Cells(LiGne, 23) = CbxPEC.Value
Cells(LiGne, 24) = TxtDateMDPH.Value
Cells(LiGne, 25) = CbxMDPHperma.Value
Cells(LiGne, 26) = CbxMDPHtempo.Value
MsgBox "Le patient a bien été ajouter au tableau"

....

Je bloque en ce vendredi matin pour la cellule 9

Merci à vous

Configuration: Windows / Chrome 71.0.3578.98
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 25 janv. 2019 à 10:48
Bonjour,

Cells(LiGne, 9).FormulaLocal = "= SI(ESTVIDE($H" & LiGne & ");"""";AUJOURDHUI()-$H" & LiGne & ")" 


0
Un grand merci
Le FormulaLocal...

Merci à vous
Bonne journée
0
Bonjour,

Pour intégrer une formule il me semble qu'il faut utiliser :

Sub Formule ()
'Formule écrit en français
Cells(LiGne, 9).Formulalocal = "=...."

'Formule écrit en anglais
Cells(LiGne, 9).Formula = "=...."

End Sub
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 25 janv. 2019 à 11:21
Bruno l'a déjà compris.
0