Bouton rafraichir dans un userform

coco.c

XLDnaute Nouveau
Bonjour,

Etant débutante en VBA dans excel, je rencontre 3 problèmes :

1 / Je n'arrive pas à programmer un bouton pour rafraichir les données de mon userform.
En fait, j'ai un tableau avec des formules automatiques pour suivre les dates de recyclage des habilitations.
Dans mon userform je peux rentrer la date de départ et ensuite quand je clique sur ajouter, la date est rentrée dans le tableau qui calcul automatiquement la date suivante. Mais la date calculé ne se mets pas à jour dans mon userform. Il faut que je le ferme et le ré-ouvre pour qu'elle s'affiche. C'est pour ça que j'ai besoin d'un bouton rafraichir/refresh.

Voici mon fichier :
Ce lien n'existe plus

2/ Quand je rajoute une ligne à l'aide de mon userform, les formules du tableau de base ne se rajoutent pas toutes sur la nouvelle ligne. Y-a-t-il un manip à faire pour qu'elles soient toujours par défaut dans les cellules de la colonne qui a la formule ?

3/ J'aimerais que dans mon userform, les dates du prochain recyclage à effectuer s'affichent en rouge si elles ont dépassé la date du jour. Comment faire ?

Ca fait pas mal de questions mais j'ai vraiment besoin d'aide !

Mercii pour vos réponses
 

Speel

XLDnaute Occasionnel
Re : Bouton rafraichir dans un userform

Bonsoir,

1 / Je n'arrive pas à programmer un bouton pour rafraichir les données de mon userform.

pas besoin de bouton

2/ Quand je rajoute une ligne à l'aide de mon userform, les formules du tableau de base ne se rajoutent pas toutes sur la nouvelle ligne. Y-a-t-il un manip à faire pour qu'elles soient toujours par défaut dans les cellules de la colonne qui a la formule ?

Ca marche tout seul avec les tableaux

3/ J'aimerais que dans mon userform, les dates du prochain recyclage à effectuer s'affichent en rouge si elles ont dépassé la date du jour. Comment faire ?

regardes ligne 64 du projet VBA, un exemple à reproduire pour les autres

VB:
Me.Controls("TextBox17") = Ws.Cells(Ligne, "H"): If Ws.Cells(Ligne, "H") < Date Then Me.Controls("TextBox17").BackColor = vbRed

Je n'ai pas nettoyé le code ... sauf un For I = 2 To 38 qui sert a rien sauf ralentir le code :confused:

si tu veux optimiser, pas de problème.

et pour un début , c'est pas trop mal :)
 

Pièces jointes

  • suivi_habilitations.xlsm
    77.3 KB · Affichages: 86

MichD

XLDnaute Impliqué
Re : Bouton rafraichir dans un userform

Bonjour,

Essaie d'être plus précise lorsque tu définis la donne de ton problème!

Dans quel textbox saisis-tu la date? Cette date se retrouve dans quelle cellule de la feuille?
Avec quelle date de la feuille veux-tu mettre à jour le textbox? Quel est ce textbox?


Un petit exemple pour faire en sorte que tu puisses recopier les formules de la dernière ligne occupée vers la nouvelle ligne que tu viens de saisir.

'-------------------------------------------------------------------
Sub test()
Dim C As Range, DerLig As Long

'Le numéro de la dernière colonne BT dans
'cette feuille est 72

With Worksheets("Habilitation Agent")
'Retourne le numéro de la dernière ligne occupée
'par des données dans la feuille, avant la nouvelle saisie de données
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

'Maintenant, suppose que tu as ajouté une nouvelle ligne de donnée
'et que tu veuilles recopier les formules dans la ligne juste en dessous.

'Une boucle sur chacune des cellules de la dernière ligne
'contenant seulement les formules

For Each C In .Range("A" & DerLig).Resize(1, 72).SpecialCells(xlCellTypeFormulas)
'Le 2 tient compte de la cellule de la dernière ligne + la cellule en dessous.
C.Resize(2).FillDown
Next
End With
End Sub
'-------------------------------------------------------------------
 

coco.c

XLDnaute Nouveau
Re : Bouton rafraichir dans un userform

Merci Speel pour ta réponse.

Effectivement les formules s'ajoutent toutes seules ! Ca marchait pas hier mais aujourd'hui oui ...
Le code vba pour mettre en rouge les textes box marche aussi mais quand je change de personne dans l'userform, la case reste rouge même si elle n'a pas dépassé la date du jour.
 

coco.c

XLDnaute Nouveau
Re : Bouton rafraichir dans un userform

Bonjour MichD,

Dans quel textbox saisis-tu la date?

Je saisie la date dans les textbox du "Dernier Recyclage" : textbox 10 à 16 + 33 et 37

Cette date se retrouve dans quelle cellule de la feuille?

Les dates saisies se trouvent dans les colonnes G / O / W / AE / AM / AU / BC / BK / BS
Et les dates des colonnes H / P / X / AF / AN / AV / BD / BL / BT s'affichent toutes seules (il y a une formule dans les colonnes) et elles ne doivent pas pouvoir être modifiées.

Avec quelle date de la feuille veux-tu mettre à jour le textbox? Quel est ce textbox?

Je veux que les dates des textbox 17 à 23 + 31 + 35 se mettent à jour quand je modifie les textbox 10 à 16 + 33 et 37

Merci pour ton code pour les formules !
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 975
dernier inscrit
denry