Microsoft 365 transfert sans espaces des données (numériques) d'un Userform vers des cellules d'une pages excel

Daher Ali

XLDnaute Junior
Bonjour le FORUM.

J'ai un Userform de Saisie, lorsque je fait une Saisie dans les différents textbox ( Cont2 , Cont4 et Cont5 ) des caractères vide sont automatiquement insérer sans me vouloir je ne comprend pas pourquoi. Pour cela je sollicite votre aide.
Joint le fichier
Merci
 

Pièces jointes

  • 6.png
    6.png
    26.3 KB · Affichages: 9
  • Bon Entree 2 - Copie.xlsm
    69.8 KB · Affichages: 1
Solution
Re
un autre exemple (TypeName et Transfert)
Pour tes problèmes de Cont2 ,Cont4 et Con5 donc ,je pensais que ce que j'avais fait pouvais convenir puisse que fonctionnel ???? Mais bon ! en cherchant tu vas trouver toi même Lol
jean marie

ChTi160

XLDnaute Barbatruc
re
Lors du transfert les TextBox ne contiennent pas du Numérique mais du Texte
"TypeName(TextBox1.Value) dit toujours "String". je crois , c'est en formatant les cellules que tu obtient le Format désiré !
voir fichier exemple !
jean marie
 

Pièces jointes

  • TestTypeName_1.xlsm
    19.5 KB · Affichages: 1

Daher Ali

XLDnaute Junior
re
Lors du transfert les TextBox ne contiennent pas du Numérique mais du Texte
"TypeName(TextBox1.Value) dit toujours "String". je crois , c'est en formatant les cellules que tu obtient le Format désiré !
voir fichier exemple !
jean marie
Rebonjour Jean Marie, effectivement c'est vrai, mai j'ai aussi remarquer qu'on supprimant le code que j'ai mis dans :
Private Sub Cont2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Private Sub Cont4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
et que je valide la saisie du Userform, les cellules devienne numerique mais je ne peux plus faire des multiplication entre le textbox Cont2 et Cont4 ca
 

ChTi160

XLDnaute Barbatruc
Re
un autre exemple (TypeName et Transfert)
Pour tes problèmes de Cont2 ,Cont4 et Con5 donc ,je pensais que ce que j'avais fait pouvais convenir puisse que fonctionnel ???? Mais bon ! en cherchant tu vas trouver toi même Lol
jean marie
 

Pièces jointes

  • TestTypeName_2.xlsm
    22.8 KB · Affichages: 2

ChTi160

XLDnaute Barbatruc
Re
je regarde le Code de ton Bouton Ajouter et je ne comprends pas la démarche
VB:
nbControle = 5
  
          If WSCible.Range("A2") = "" Then        
             'On se positionne sur la dernière ligne vide de la table de données
             Set NouvelleLigne = WSCible.Cells(Rows.Count, 1).End(xlUp)  
             For x = 1 To nbControle
                Cont1 = Format(Cont1, "General Number")
                Cont2 = Format(Cont2, "General Number")
                Cont4 = Format(Cont4, "General Number")
                Cont5 = Format(Cont5, "General Number")
                NouvelleLigne = Me.Controls("Cont" & x).Value
                Set NouvelleLigne = NouvelleLigne.Offset(0, 1)
             Next x           
          Else        
             Set NouvelleLigne = WSCible.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)  
             For x = 1 To nbControle
                Cont1 = Format(Cont1, "General Number")
                Cont2 = Format(Cont2, "General Number")
                Cont4 = Format(Cont4, "General Number")
                Cont5 = Format(Cont5, "General Number")
                NouvelleLigne = Me.Controls("Cont" & x).Value
                Set NouvelleLigne = NouvelleLigne.Offset(0, 1)
             Next x
          End If
ici :
VB:
 If WSCible.Range("A2") = "" Then        
             'On se positionne sur la dernière ligne vide de la table de données
             Set NouvelleLigne = WSCible.Cells(Rows.Count, 1).End(xlUp)
ta nouvelle Ligne sera la Ligne 1 et Non la première ligne Vide(Ligne 2)
il te faut ajouter 1 pour avoir la Première Ligne Vide soit :
VB:
  Set NouvelleLigne = WSCible.Cells(Rows.Count, 1).End(xlUp)+1
Ensuite ici :
VB:
Tu as mis nbControle = 5
puis
For x = 1 To nbControle
                Cont1 = Format(Cont1, "General Number")
                Cont2 = Format(Cont2, "General Number")
                Cont4 = Format(Cont4, "General Number")
                Cont5 = Format(Cont5, "General Number")
                NouvelleLigne = Me.Controls("Cont" & x).Value
                Set NouvelleLigne = NouvelleLigne.Offset(0, 1)
             Next x
Tu formates donc 5 fois tes Controls ! est ce normal ?
de plus tu changes de Ligne a chaque Boucle(Set NouvelleLigne = NouvelleLigne.Offset(0, 1)) est Normal ?

Dans mes Exemples
j'ai mis pour formater , je crois "### ##0.00" toi "General Number" est ce que ça Formate ?
et ici :
VB:
 NouvelleLigne = Me.Controls("Cont" & x).Value
donc tu récupères la valeur du Control (Cont1 à 5) comme "NouvelleLigne" est ce bien Normal ???????????
jean marie
PS : je viens de me rendre compte que NouvelleLigne est en fait une Cellule , évident Non !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 166
Membres
103 149
dernier inscrit
Deepkneec