Reprise d'une formule dans une textbox
Résolu
michelbr
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
michelbr Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
michelbr Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Reprise d'une formule dans une textbox
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Excel retour à la ligne dans une formule - Guide
- Formule somme excel colonne - Guide
1 réponse
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
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