Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

UserForm mise à jour du résultat de la formule

3 réponses
Avatar
Céline Brien
Bonjour à tous,
Un UserForm pour effectuer la saisie d'information sur les heures
travaillées par des employés.
Un bouton Valider pour mettre à jour les données dans la liste des données.
Lorsque je clique sur le bouton Valider, le résultat de la formule ne se met
pas à jour.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
Par ailleurs si je clique sur le bouton Fermer, le résultat de la formule se
met à jour.
Je souhaite mettre à jour le résultat de la formule sans fermer le UserForm.
Seulement en cliquant sur le bouton Valider.
Pouvez-vous m'aider ?
J'ai réussi en insérant ces codes entre End With et End Sub. Ces codes
ferment et ouvrent le UserForm ;-) Mais c'est un peu tordu.
UserForm1.Hide
protegefeuille
ActiveSheet.Unprotect
If Range("A65532").End(xlUp).Row = 1 Then Cells(2, 1).Value = 1
If ActiveCell.Row = 1 Then Cells(2, 1).Select
If ActiveCell.Row > Range("A65532").End(xlUp).Row Then
Cells(Range("A65532").End(xlUp).Row, 1).Select
initialise_formulaire (ActiveCell.Row)
UserForm1.Show
Merci de votre aide,
Céline
---------------------------------------------------------
Sub majligneencours()
'Définition des variables
Dim ligne As Long
'Cette procédure met à jour la base de données à partir des données du
formulaire.
With UserForm1
'Définition de la ligne en fonction de la valeur de la barre de
défilement.
ligne = .ScrollBar1
'Attribution des valeurs aux lignes de la base de données.
Cells(ligne, 1).Value = .UF_No * 1
Cells(ligne, 2).Value = .UF_Usine
Cells(ligne, 3).Value = .UF_Prenom
Cells(ligne, 4).Value = .UF_Mois
Cells(ligne, 5).Value = .UF_HresReg
Cells(ligne, 6).Value = .UF_HresSupp
'Mise à jour de la dernière colonne, en y ajoutant une formule.
'Cette formule provient de l'enregistrement classique d'une macro.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
End With
End Sub

3 réponses

Avatar
Fring
Salut !
Aurais-tu un fichier exemple ?

A+
Fring


"Céline Brien" a écrit dans le message de
news:
Bonjour à tous,
Un UserForm pour effectuer la saisie d'information sur les heures
travaillées par des employés.
Un bouton Valider pour mettre à jour les données dans la liste des
données.
Lorsque je clique sur le bouton Valider, le résultat de la formule ne se
met pas à jour.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
Par ailleurs si je clique sur le bouton Fermer, le résultat de la formule
se met à jour.
Je souhaite mettre à jour le résultat de la formule sans fermer le
UserForm. Seulement en cliquant sur le bouton Valider.
Pouvez-vous m'aider ?
J'ai réussi en insérant ces codes entre End With et End Sub. Ces codes
ferment et ouvrent le UserForm ;-) Mais c'est un peu tordu.
UserForm1.Hide
protegefeuille
ActiveSheet.Unprotect
If Range("A65532").End(xlUp).Row = 1 Then Cells(2, 1).Value = 1
If ActiveCell.Row = 1 Then Cells(2, 1).Select
If ActiveCell.Row > Range("A65532").End(xlUp).Row Then
Cells(Range("A65532").End(xlUp).Row, 1).Select
initialise_formulaire (ActiveCell.Row)
UserForm1.Show
Merci de votre aide,
Céline
---------------------------------------------------------
Sub majligneencours()
'Définition des variables
Dim ligne As Long
'Cette procédure met à jour la base de données à partir des données du
formulaire.
With UserForm1
'Définition de la ligne en fonction de la valeur de la barre de
défilement.
ligne = .ScrollBar1
'Attribution des valeurs aux lignes de la base de données.
Cells(ligne, 1).Value = .UF_No * 1
Cells(ligne, 2).Value = .UF_Usine
Cells(ligne, 3).Value = .UF_Prenom
Cells(ligne, 4).Value = .UF_Mois
Cells(ligne, 5).Value = .UF_HresReg
Cells(ligne, 6).Value = .UF_HresSupp
'Mise à jour de la dernière colonne, en y ajoutant une formule.
'Cette formule provient de l'enregistrement classique d'une macro.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
End With
End Sub




Avatar
Céline Brien
Bonjour Fring,
Merci de ton intérêt.
Demain, mercredi, je vais préparer un fichier exemple et vous faire parvenir
un lien.
Merci encore,
Céline

"Fring" a écrit dans le message
de news:
Salut !
Aurais-tu un fichier exemple ?

A+
Fring


"Céline Brien" a écrit dans le message de
news:
Bonjour à tous,
Un UserForm pour effectuer la saisie d'information sur les heures
travaillées par des employés.
Un bouton Valider pour mettre à jour les données dans la liste des
données.
Lorsque je clique sur le bouton Valider, le résultat de la formule ne se
met pas à jour.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
Par ailleurs si je clique sur le bouton Fermer, le résultat de la formule
se met à jour.
Je souhaite mettre à jour le résultat de la formule sans fermer le
UserForm. Seulement en cliquant sur le bouton Valider.
Pouvez-vous m'aider ?
J'ai réussi en insérant ces codes entre End With et End Sub. Ces codes
ferment et ouvrent le UserForm ;-) Mais c'est un peu tordu.
UserForm1.Hide
protegefeuille
ActiveSheet.Unprotect
If Range("A65532").End(xlUp).Row = 1 Then Cells(2, 1).Value = 1
If ActiveCell.Row = 1 Then Cells(2, 1).Select
If ActiveCell.Row > Range("A65532").End(xlUp).Row Then
Cells(Range("A65532").End(xlUp).Row, 1).Select
initialise_formulaire (ActiveCell.Row)
UserForm1.Show
Merci de votre aide,
Céline
---------------------------------------------------------
Sub majligneencours()
'Définition des variables
Dim ligne As Long
'Cette procédure met à jour la base de données à partir des données du
formulaire.
With UserForm1
'Définition de la ligne en fonction de la valeur de la barre de
défilement.
ligne = .ScrollBar1
'Attribution des valeurs aux lignes de la base de données.
Cells(ligne, 1).Value = .UF_No * 1
Cells(ligne, 2).Value = .UF_Usine
Cells(ligne, 3).Value = .UF_Prenom
Cells(ligne, 4).Value = .UF_Mois
Cells(ligne, 5).Value = .UF_HresReg
Cells(ligne, 6).Value = .UF_HresSupp
'Mise à jour de la dernière colonne, en y ajoutant une formule.
'Cette formule provient de l'enregistrement classique d'une macro.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
End With
End Sub








Avatar
Frédéric Sigonneau
Bonsoir Céline,

Je suppose que ton userform est modal et que la procédure majligneencours est
appelée par le bouton Valider ?
Tu peux essayer, si cela convient à ton projet et si ta version d'Excel le
permet, de travailler avec un userform non modal.
Ou alors, de forcer le recalcul en ajoutant une instruction comme

Application.CalulateFull

juste après l'écriture de la formule.


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Bonjour à tous,
Un UserForm pour effectuer la saisie d'information sur les heures
travaillées par des employés.
Un bouton Valider pour mettre à jour les données dans la liste des données.
Lorsque je clique sur le bouton Valider, le résultat de la formule ne se met
pas à jour.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
Par ailleurs si je clique sur le bouton Fermer, le résultat de la formule se
met à jour.
Je souhaite mettre à jour le résultat de la formule sans fermer le UserForm.
Seulement en cliquant sur le bouton Valider.
Pouvez-vous m'aider ?
J'ai réussi en insérant ces codes entre End With et End Sub. Ces codes
ferment et ouvrent le UserForm ;-) Mais c'est un peu tordu.
UserForm1.Hide
protegefeuille
ActiveSheet.Unprotect
If Range("A65532").End(xlUp).Row = 1 Then Cells(2, 1).Value = 1
If ActiveCell.Row = 1 Then Cells(2, 1).Select
If ActiveCell.Row > Range("A65532").End(xlUp).Row Then
Cells(Range("A65532").End(xlUp).Row, 1).Select
initialise_formulaire (ActiveCell.Row)
UserForm1.Show
Merci de votre aide,
Céline
---------------------------------------------------------
Sub majligneencours()
'Définition des variables
Dim ligne As Long
'Cette procédure met à jour la base de données à partir des données du
formulaire.
With UserForm1
'Définition de la ligne en fonction de la valeur de la barre de
défilement.
ligne = .ScrollBar1
'Attribution des valeurs aux lignes de la base de données.
Cells(ligne, 1).Value = .UF_No * 1
Cells(ligne, 2).Value = .UF_Usine
Cells(ligne, 3).Value = .UF_Prenom
Cells(ligne, 4).Value = .UF_Mois
Cells(ligne, 5).Value = .UF_HresReg
Cells(ligne, 6).Value = .UF_HresSupp
'Mise à jour de la dernière colonne, en y ajoutant une formule.
'Cette formule provient de l'enregistrement classique d'une macro.
Cells(ligne, 10).FormulaR1C1 = "=RC[-5]+RC[-4]+RC[-3]+RC[-2]+RC[-1]"
End With
End Sub