Problème utilisation d'un Userform

  • Initiateur de la discussion Initiateur de la discussion Icedarts
  • Date de début Date de début

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 !

Icedarts

XLDnaute Occasionnel
Bonjour à tous,

voila j'ai crée un userform sur une feuille qui s'active lorsque je clique sur une la cellule A8:A9 (elle est fusionné)
grace a ce code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$8:$A$9" Then col = 4: UserForm1.Show
End Sub

Donc cette userform contient 8 petites cases ou je rentre du texte.
voila le code sur la feuille:
Code:
Private Sub TextBox1_Change()
If TextBox1 = " " Then Exit Sub
TextBox2.SetFocus
End Sub

Private Sub TextBox2_Change()
If TextBox2 = " " Then Exit Sub
TextBox3.SetFocus
End Sub
Private Sub TextBox3_Change()
If TextBox3 = " " Then Exit Sub
TextBox4.SetFocus
End Sub
Private Sub TextBox4_Change()
If TextBox4 = " " Then Exit Sub
TextBox5.SetFocus
End Sub
Private Sub TextBox5_Change()
If TextBox5 = "" Then Exit Sub
TextBox6.SetFocus
End Sub
Private Sub TextBox6_Change()
If TextBox6 = "" Then Exit Sub
TextBox7.SetFocus
End Sub
Private Sub TextBox7_Change()
If TextBox7 = "" Then Exit Sub
TextBox8.SetFocus
End Sub

Private Sub TextBox8_Change()
If TextBox8 = "" Then Exit Sub
[COLOR="Red"]lig = Cells(65000, col).End(8).Row + 1[/COLOR]
If lig < 7 Then lig = 7
Cells(lig, col - 7) = TextBox1
Cells(lig, col - 6) = TextBox2
Cells(lig, col - 5) = TextBox3
Cells(lig, col - 4) = TextBox4
Cells(lig, col - 3) = TextBox5
Cells(lig, col - 2) = TextBox6
Cells(lig, col - 1) = TextBox7
Cells(lig, col) = TextBox8
Application.EnableEvents = False
TextBox1 = "": TextBox2 = "": TextBox3 = "": TextBox4 = "": TextBox5 = "": TextBox6 = "": TextBox7 = "": TextBox8 = ""
Application.EnableEvents = True
TextBox1.SetFocus
End Sub

Private Sub UserForm_Click()

End Sub
Pour le moment quand je valide le 8eme caractère excel me dit qu'il y a un problème au niveau de la ligne de code en rouge, et je en sais pas trop quoi faire.

D'autre part dans chaque cellule je ne peux ecrire qu'un seul caractère je voudrais en mettre au maxi 5.
Je n'arrive pas non plus à choisir l'endroit ou va être mis ce texte.
Dans mon cas j'aimerai de D54 à K54.
Si vous pouviez me dire ce qu'il y a à modifier dans le code pour pouvoir choisir l'endroit ou se mettent les données et aussi pouvoir écrire plus d'un caractère par cellule ça me serait très utile.

Merci.
 

Pièces jointes

Dernière édition:
Re : Problème utilisation d'un Userform

re³,

Pour ce que je comprends, pourquoi pas remplacer ton 'TextBox8_Change()'
par un 'TextBox8_AfterUpdate()' en laissant le reste de ton code inchangé? ... le code s'appliquant dès lors, lorsque tu sors de ton textBox.

Par contre, si tu "vides" tes textbox à l'instruction suivante, le code s'exécute à nouveau, puisque tu changes leur valeur 😕
 
Re : Problème utilisation d'un Userform

comme Modeste te l'expliques c'est une proposition pour t'aider
len te donne le nbre de caractères d'une chaîne
içi si une textbox contient plus de 5 caractères le 6ème est enlevé et le code continue
tu peux mettre d'autres valeurs que > 5(plus grand que 5)
dans le code proposé col était égal à 4
lig prenait la 1ère cellule vide de la colonne 4(colonne D)
tu peux écrire Cells(Lig, 4) = TextBox1 ou
Cells(Lig, "D") = TextBox1
et n'oublie pas de mettre .value(absolument nécessaire dans certains cas)
si D54 est vide un test

if Cells(Lig, 54) then
lig=54'1ère fois
else
lig = Cells(65000, Col).End(xlUp).Row + 1'la suivante
end if

Cells(Lig, 54),etc


pour du numeric un exemple

Private Sub textBox1_Change()
On Error Resume Next

If Not IsNumeric(Right(TextBox1, 1)) Then
MsgBox "Le caractere saisi n'est pas valide"
TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End If
End Sub
rmq:tout cela bien plus facile avec un fichier exemple
à bientôt
 
Re : Problème utilisation d'un Userform

Dans mon premier message il y a un fichier joint.

Oui c'est juste du numérique que je veux faire.
Si tu prends le fichier joint, je souhaite que les valeurs s'inscrivent en D55:K55.
Ensuite dans les cellules au dessus j'ai juste à mettre en "D8" =D55, en "F8" =E55 et ainsi de suite.
Voila.

Mais la j'ai un petit problème avec le pavé numérique...
Quand j'écris directement dans une cellule avec par exemple 24.2 le "." est une "," mais dans l'userform il reste un "." est la les formule qui additionnent en bout de ligne ne reconnaissent pas le chiffre....
De plus, parfois même avec des caractères en D54 les nombres s'inscrivent en D29 ou alors parfois si je supprime les valeurs en D55:K55 et que je relance la macro les nombres vont en D56:K56 comme s'il y avait toujours quelque chose en D55...
 
Re : Problème utilisation d'un Userform

Autant pour moi,

Je viens de refaire le test plusieurs fois les nombres s'inscrivent au bon endroit à chaque fois si les lignes 29 à 62 sont afficher, si je les masque les valeurs vont en D29 peu importe s'il y a d'autres cellules remplies ou non dans la colonne D.
Je n'ai pas compris à quoi sert le code que tu viens de donner?
Je joins la feuille en exemple.
 

Pièces jointes

Re : Problème utilisation d'un Userform

Je vous remercie tous pour m'avoir aider, j'ai a peu près compris le fonctionnement.
J'ai réglé le problème pour l'inscription des valeurs.
J'ai masqué les lignes de 29 à 53.
Et de 55 à 62 j'ai une couleur de police blanche tout simplement.
J'ai également réglé mon problème de point et de virgule grace à l'enregistreur de macro, je selectionne la plage D55:K62 ou sont les valeurs ctrl+H et je remplace les "." par des "," tout simplement.

Merci encore!
 
- 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

Discussions similaires

Réponses
10
Affichages
298
Réponses
9
Affichages
205
Réponses
2
Affichages
170
Réponses
2
Affichages
469
Réponses
35
Affichages
2 K
Réponses
16
Affichages
1 K
Réponses
3
Affichages
673
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
184
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
532
Retour