Insérer dans cellule un calcul via macro

[Résolu/Fermé]
Signaler
-
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
-
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

3 réponses

Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 704
Bonjour,

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


Cordialement
Patrice
Un grand merci
Le FormulaLocal...

Merci à vous
Bonne journée
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
Messages postés
8539
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 juillet 2021
1 704
Bruno l'a déjà compris.