USERFORM - TexBox s'efface à l'ouverture

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Geraldine

XLDnaute Occasionnel
Bonjour,

Je suis nouvelle sur le forum mais aussi novice, et j’ais quelques questions à poser en programmation visual basic.

Dans un fichier excel j’ai crée une USERFORM qui s’ouvre au démarrage (c’est déjà un grand pas pour moi) et qui comprend

TexBox1 = Nom Client / TexBox2 = Adresse / TexBox3 = Date de création / TexBox4 = Date de Modification / TexBox5 = Numéro de devis / CommandButton = Valider

- Zone TextBox1 et 2
« je voudrais insérer du texte mais qu’il le garde en mémoire, je ne veux pas qu’il l’efface à chaque ouverture »
« et l’envoyer dans une cellule de feuille soit FEUIL10 !F7 et FEUIL10 !F8 »

Mon début de code pour le nom et adresse mais à chaque ouverture ça s’efface

Private Sub Bt_Valider_Click()
[F7] = UserForm1.TextBox1 & " "
[F8] = UserForm1.TextBox2 & " "
Unload UserForm1
End Sub

- Zone TextBox3
« je voudrais que la date de création du document s’insère automatiquement dans cette zone mais qu’il la garde en mémoire »
« et l’envoyer dans une certaine feuille soit par exemple FEUIL1 !L1 »

- Zone TextBox4
« je voudrais que la date du dernier enregistrement du document s’insère automatiquement dans cette zone mais qu’il la garde en mémoire et évidemment se met à jour dès une nouveau enregistrement »

- Zone TextBox5
« je veux un numéro de devis attribuer d’office 1001 / 1002 etc … s’insère automatiquement dans cette zone mais qu’il la garde en mémoire »
« et l’envoyer dans une certaine feuille soit par exemple FEUIL1 !B1 »

Et pendant que j’étale mes lacunes en informatique, un autre sujet :
J’ais une feuille devis ou même facture, je ne voudrais plus passer par des formules du genre Cellule O12 [=L12*N12] / Cellule O13 [=L13*N13] etc … je voudrait une macro qui éxecute les multiplications de la ligne L12 à L50 X N12 à N50 dans les cellules O12 à O50. Est ce possible ?

Un grand merci Géraldine
 
Re : USERFORM - TexBox s'efface à l'ouverture

Bonjour Geraldine

Si j'ai bien compris ton problème pour les textbox 1 et 2, tu peux recopier ce code:

Code:
Private Sub UserForm_Initialize()
with sheets("[B]Feuil10[/B]")
    textbox[B]1[/B].text = .range("[B]F7[/B]").value
    textbox[B]2[/B].text = .range("[B]F8[/B]").value
end with
...
end sub

(En gras, ce sont les informations qui varient)

Je t'ai donnée la méthode pour tes textbox 1 et 2, le principe est le même pour les autres: tu sauvegardes la valeur dans une cellule que tu auras désigné pour ça, et au chargement du formulaire, tu réaffectes la valeur de la cellule en question à ton textbox.

J'espère que cela t'aidera, et n'hésite pas à revenir si tu as besoin d'aide.

Cordialement,
Thomas
 
Re : USERFORM - TexBox s'efface à l'ouverture

Merci ça marche :

Private Sub UserForm_Initialize()
With Sheets("Feuil1")
TextBox1.Text = .Range("F7").Value
TextBox2.Text = .Range("F8").Value
End With
End Sub
----------------------------------------------------------
Private Sub Bt_Valider_Click()
[F7] = UserForm1.TextBox1 & " "
[F8] = UserForm1.TextBox2 & " "
Unload UserForm1
End Sub


J'ais trouvé pour les dates de création et dernier enregistrement;
MsgBox ActiveWorkbook.BuiltinDocumentProperties.Item(11)
et
MsgBox ActiveWorkbook.BuiltinDocumentProperties.Item(12)

Je n'arrive pas à les inserer !!

Géraldine
 
Re : USERFORM - TexBox s'efface à l'ouverture

Rebonjour Geraldine.

J'avais pas lu ton topic en entier, j'ai zappé la dernière partie:
Et pendant que j’étale mes lacunes en informatique, un autre sujet :
J’ais une feuille devis ou même facture, je ne voudrais plus passer par des formules du genre Cellule O12 [=L12*N12] / Cellule O13 [=L13*N13] etc … je voudrait une macro qui éxecute les multiplications de la ligne L12 à L50 X N12 à N50 dans les cellules O12 à O50. Est ce possible ?

Un code le permettant serait:
Code:
/!\ En gras dans la balise code: optionnel
Private sub FaireCalcul([B]Sh as worksheet[/B])
[B]Sh.activate[/B]
Dim i as integer
For i = 12 to 50
      Range("O" & i).value = Range("L" & i).value * Range("N" & i).value
next i
end sub

Cette procédure fera tes multiplications sans passer par des formules.
Tu peux l'appeler en faisant " call FaireCalcul(paramètre) (en italique: le paramètre que tu peux enlever) depuis le clic d'un bouton, par exemple.

Pour les
MsgBox ActiveWorkbook.BuiltinDocumentProperties.Item(11)
et
MsgBox ActiveWorkbook.BuiltinDocumentProperties.Item(12)
là tu me sèches. Si tu veux enregistrer leur valeur, tu peux faire ça:
Code:
Sheets("[B]Feuil1[/B]").range("[B]A1[/B]").value = ActiveWorkbook.BuiltinDocumentProperties.Item(11)
Sheets("[B]Feuil1[/B]").range("[B]A2[/B]").value = ActiveWorkbook.BuiltinDocumentProperties.Item(12)
(en [B]gras[/B], ce que tu peux changer)

Sinon, je vois pas 😕

Cordialement,
Thomas
 
Re : USERFORM - TexBox s'efface à l'ouverture

re,

j'ais réussi comme cela tout simplement, pfff que c'est compliqué

[F9] = ActiveWorkbook.BuiltinDocumentProperties.Item(11)
[F10] = ActiveWorkbook.BuiltinDocumentProperties.Item(12)

pour le calcul automatique des multiplications je regarderais plus tard, merci.

Mon dernier soucis c'est cette numérotation automatique j'ai trouvé :

Range("A1") = Range("A1") + 1
ThisWorkbook.Save

le problème c'est que dès la ré-ouverture d'un document et d'effectuer une modification, le numero change, donc c'est pas bon.

...
 
Re : USERFORM - TexBox s'efface à l'ouverture

re Géraldine.

Je suis pas sûr d'avoir compris ton problème de numéro de devis.

Si tu veux que le nom du fichier soit inscris dans une cellule, ce serait un code comme ça (dans l'userform initialyze)

Code:
Sheets("Feuil1").range("B1").value = CInt(Left(activeworkbook.name, Len(activeworkbook.name) - 4))

En admettant que ton fichier se nomme "1003.xls", voila ce que ça fait:
Affecte à la cellule "B1" de la feuille 1 le chiffre entier correspondant aux X premieres lettres en partant de la gauche du nom de ton fichier, où X est définie par la longueur du nom, moins les 4 caractères de l'extension.

Si c'est pas ça, j'ai pas compris 😕

Cordialement,
Thomas
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour