Reprise d'une formule dans une textbox

Résolu/Fermé
michelbr Messages postés 9 Date d'inscription jeudi 15 novembre 2012 Statut Membre Dernière intervention 28 mars 2013 - 22 févr. 2013 à 14:57
michelbr Messages postés 9 Date d'inscription jeudi 15 novembre 2012 Statut Membre Dernière intervention 28 mars 2013 - 28 mars 2013 à 11:26
Bonjour à tous,
J'aurais besoin de votre aide.

J'ai une feuille, contenant des dates qui sont calculées x temps après la date précédante.
Donc, à priori, à part la première date, toutes sont automatiques.

De temps à autre, je change une date en tapant dans une cellule une date au format dd.mm.yyy. Dès lors, toutes les dates qui suivent sont recalculées.

Je voulais faire cela depuis un masque de saisie.
Lorsque j'ouvre mon fichier depuis le masque, mes formules n'apparaissent pas dans les textbox, mais à la place j'ai : 00:00:00 (format heure à la place de ma formule).
Au moment où je sauve mon fichier, toutes mes formules disparaîssent, remplacées par un 0.

Comment faire pour que ma formule soit reprise dans ma textbox (éventuellement cachée) de manière à ce qu'ensuite, lors de la sauvegarde, cette formule se retrouve à nouveau à sa place ?
Ou alors, comment faire pour que, s'il y a une formule dans la case, si je n'entre rien dans la textbox correspondante, cela n'écrive rien dans la case afin de ne pas y effacer ma formule ?

Voici un moreau de ma macro :

For i = 0 To ListBox1.ListCount
If ListBox1.Selected(i) = True Then
With Worksheets("SELECTIONS").Range("a" & i + 1)
.Offset(1, 1).Value = TextBox2.Value
.Offset(1, 2).Value = TextBox3.Value
.Offset(1, 3).Value = TextBox4.Value
.Offset(1, 4).Value = TextBox5.Value
.Offset(1, 5).Value = TextBox6.Value
.Offset(1, 6).Value = TextBox7.Value
.Offset(1, 7).Value = TextBox8.Value
.Offset(1, 8).Value = TextBox9.Value
'etc...

End With
End If
Next i

Merci d'avance pour votre aide, meilleures salutations à tous

Michel




A voir également:

1 réponse

michelbr Messages postés 9 Date d'inscription jeudi 15 novembre 2012 Statut Membre Dernière intervention 28 mars 2013
28 mars 2013 à 11:26
J'ai trouvé la solution :-)
En fait, la solution est toute bête, il faut juste procéder en deux phases :

-Lors du chargement de mon TextBox, étant donné que la formule qui y apparaît est sous la forme 00:00:00, je suis la procédure suivante : Je charge la TextBox depuis ma cellule source, j'en contrôle le contenu, si le contenu est "00:00:00" je le vide ("")

TextBox11.Value = .Cells(i + 1, "k").Value
If TextBox11 = "00:00:00" Then
TextBox11 = ""
End If

-Lors du déchargement de mon TextBox, pour ne pas écraser ma formule par du vide, je teste à nouveau mon TextBox, de la manière suivante : Si mon TextBox n'est pas vide, je me place sur la cellule de destination et j'y copie le contenu du Textbox.
Donc, si mon TextBox est vide je ne fais rien, ce qui n'écrase pas ma formule.

If Not TextBox11.Value = "" Then
.Offset(1, 10).Value = TextBox11.Value
End If
0