UserForm mise à jour du résultat de la formule

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fring
Le #6670861
Salut !
Aurais-tu un fichier exemple ?

A+
Fring


"Céline Brien" 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




Céline Brien
Le #6672231
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" de news:
Salut !
Aurais-tu un fichier exemple ?

A+
Fring


"Céline Brien" 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








Frédéric Sigonneau
Le #6686841
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




Publicité
Poster une réponse
Anonyme