Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Les TextBox écrivent du vide pas vide???

misteryann

XLDnaute Occasionnel
Bonjour au forum.

Voilà, il s'agit d'une base rempli via des USF contenant des combo, list et textbox (gestion de devis et de bons de commande) jusque là pas de soucis (grâce au forum d'ailleurs ;-) ).
Sauf que lorsque je valide, j'ai l'impression que les textbox vides écrivent quand même quelque chose (comme un espace)...
Du coup la formule que j'utilise pour faire la différence entre le nombre de devis et le nombre de bons de commande reçu.
Dans le classeur joint ,un exemple (sans la USF)
Est-ce un problème de propriété de la textbox?

Merci à celles et ceux qui m'apporteront une réponse ou une piste.
Cordialement
 

Pièces jointes

  • textbox vide.xlsx
    9.2 KB · Affichages: 19

misteryann

XLDnaute Occasionnel
Re : Les TextBox écrivent du vide pas vide???

Bonjour Roland

Voici le code lorsque je valide les données


-----------------------------------------------------------------
Private Sub CommandButton1_Click()
On Error Resume Next

If TextBox6 = "" Then
'Message à l'utilisateur
MsgBox "Saisie d'un numéro de devis obligatoire.", vbInformation
'sortie de la procédure
Exit Sub
End If

If TextBox6 <> "" Then
Sheets("Liste").Select
nb_contact = 0
For i = 2 To 5000
If IsEmpty(Cells(i, 1)) Then
nb_contact = i - 2
Exit For
End If
Next
Sheets("Liste").Cells(nb_contact + 2, 1) = TextBox6
Sheets("Liste").Cells(nb_contact + 2, 2) = ComboBox1.Value
Sheets("Liste").Cells(nb_contact + 2, 3) = TextBox14
Sheets("Liste").Cells(nb_contact + 2, 4) = ComboBox2
Sheets("Liste").Cells(nb_contact + 2, 5) = ComboBox3
Sheets("Liste").Cells(nb_contact + 2, 6) = ComboBox4
Sheets("Liste").Cells(nb_contact + 2, 7) = TextBox19
Sheets("Liste").Cells(nb_contact + 2, 8) = TextBox18
Sheets("Liste").Cells(nb_contact + 2, 9) = TextBox2
Sheets("Liste").Cells(nb_contact + 2, 10) = TextBox3
Sheets("Liste").Cells(nb_contact + 2, 11) = TextBox4
Sheets("Liste").Cells(nb_contact + 2, 12) = TextBox5
Sheets("Liste").Cells(nb_contact + 2, 13) = TextBox7
Sheets("Liste").Cells(nb_contact + 2, 14) = TextBox8
Sheets("Liste").Cells(nb_contact + 2, 15) = TextBox9
Sheets("Liste").Cells(nb_contact + 2, 16) = TextBox10 ' * 1 pour avoir la cellule au format numérique
Sheets("Liste").Cells(nb_contact + 2, 18) = TextBox11
Sheets("Liste").Cells(nb_contact + 2, 19) = TextBox12
Sheets("Liste").Cells(nb_contact + 2, 20) = TextBox13
Sheets("Liste").Cells(nb_contact + 2, 21) = TextBox15
' Sheets("Liste").Cells(nb_contact + 2, 17) = ComboBox5.Value
End If


TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
TextBox15 = ""
TextBox16 = ""
TextBox17 = ""
TextBox18 = ""

End Sub
------------------------------------------------------
Peut-être une piste...
Merci
 

Roland_M

XLDnaute Barbatruc
Re : Les TextBox écrivent du vide pas vide???

re

vite fais(car c'est l'heure du casse croûte) je ne vois rien !

ce que je voulais dire c'est par exemple à chaque fois tester avec trim()
car si un utilisateur tape sur la barre tu as un espace !
perso je testes toujours avec trim()

If trim(TextBox6) = "" Then
'Message à l'utilisateur
. . .


if trim(TextBox6) > "" then Sheets("Liste").Cells(nb_contact + 2, 1) = TextBox6
. . . idem les suivants
 

grisan29

XLDnaute Accro
Re : Les TextBox écrivent du vide pas vide???

bonsoir Mysteryann, Roland_M et le forum

misteryann mets ton code entre balise pour qu'il soit mieux vu, je lui ai supprimer toutes les répétitions de "sheets("liste")"
Code:
Private Sub CommandButton1_Click()
	On Error Resume Next
	
	If TextBox6 = "" Then
'Message à l'utilisateur
		MsgBox "Saisie d'un numéro de devis obligatoire.", vbInformation
'sortie de la procédure
		Exit Sub
	End If
	
	If TextBox6 <> "" Then
		With Sheets("Liste")
			nb_contact = 0
			For i = 2 To 5000
				If IsEmpty(Cells(i, 1)) Then
					nb_contact = i - 2
					Exit For
				End If
			Next
			.Cells(nb_contact + 2, 1) = TextBox6
			.Cells(nb_contact + 2, 2) = ComboBox1.Value
			.Cells(nb_contact + 2, 3) = TextBox14
			.Cells(nb_contact + 2, 4) = ComboBox2
			.Cells(nb_contact + 2, 5) = ComboBox3
			.Cells(nb_contact + 2, 6) = ComboBox4
			.Cells(nb_contact + 2, 7) = TextBox19
			.Cells(nb_contact + 2, 8) = TextBox18
			.Cells(nb_contact + 2, 9) = TextBox2
			.Cells(nb_contact + 2, 10) = TextBox3
			.Cells(nb_contact + 2, 11) = TextBox4
			.Cells(nb_contact + 2, 12) = TextBox5
			.Cells(nb_contact + 2, 13) = TextBox7
			.Cells(nb_contact + 2, 14) = TextBox8
			.Cells(nb_contact + 2, 15) = TextBox9
			.Cells(nb_contact + 2, 16) = TextBox10 ' * 1 pour avoir la cellule au format numérique
			.Cells(nb_contact + 2, 18) = TextBox11
			.Cells(nb_contact + 2, 19) = TextBox12
			.Cells(nb_contact + 2, 20) = TextBox13
			.Cells(nb_contact + 2, 21) = TextBox15
' .Cells(nb_contact + 2, 17) = ComboBox5.Value
		End If
		
		
		TextBox1 = ""
		TextBox2 = ""
		TextBox3 = ""
		TextBox4 = ""
		TextBox5 = ""
		TextBox6 = ""
		TextBox7 = ""
		TextBox8 = ""
		TextBox9 = ""
		TextBox10 = ""
		TextBox11 = ""
		TextBox12 = ""
		TextBox13 = ""
		TextBox14 = ""
		TextBox15 = ""
		TextBox16 = ""
		TextBox17 = ""
		TextBox18 = ""
	End With
End Sub
comme cela il est un peu plus lisible et en plus je l'ai indenté et comme le dit Roland_M un classeur anonyme avec userform serait utile
 
Dernière édition:

misteryann

XLDnaute Occasionnel
Re : Les TextBox écrivent du vide pas vide???

Merci.
Bon appétit Roland
Merci Grisan29
Mais comme vous le savez je suis un cancre en Vba : aussi comment fait on pour mettre le code entre des balises?
En plus je pense qu'il est possible de faire une boucle pour simplifier comme vider les textbox du genre "for i = 1 to 18... next i
Quand j'aurai compris la logique je m'y mettrai

Merci.
 

grisan29

XLDnaute Accro
Re : Les TextBox écrivent du vide pas vide???

bonsoir Mtsteryann

n'ayant pas le logiciel adéquate pour tracer des flèches j'ai fait de mon mieux
voici c'est ce qu'il y a en haut a droite quand on réponds
 

Pièces jointes

  • balise exceldowloads.jpg
    21.5 KB · Affichages: 24

Papou-net

XLDnaute Barbatruc
Re : Les TextBox écrivent du vide pas vide???

Bonsoir Roland_M, grisan29,
Bonsoir misteryann,

Pour faire la synthèse entre les propositions de Roland et grisan, auxquelles j'adhère totalement, voici une proposition de traitement par boucle:

Code:
Private Sub CommandButton1_Click()
If TextBox6 = "" Then
'Message à l'utilisateur
  MsgBox "Saisie d'un numéro de devis obligatoire.", vbInformation
'sortie de la procédure
  Exit Sub
End If
   
'If TextBox6 <> "" Then ---> inutile puisque si TextBox6 = "", la procédure se termine
On Error Resume Next
With Sheets("Liste")
  nb_contact = .Range("A" & Rows.Count).End(xlUp).Row
  For Each ctl In Me.Controls
    If TypeOf ctl Is MSForms.TextBox Or TypeOf ctl Is MSForms.combobox Then
      .Cells(nb_contact + 2, CInt(ctl.Tag)) = IIf(CInt(ctl.Tag) = 16, Trim(ctl.Value) * 1, Trim(ctl.Value))
      ctl = ""
    End If
  Next
End With
End Sub
Mais pour que ce code fonctionne, il faut définir la propriété Tag des TextBox et Combobox. On peut le faire manuellement, une fois pour toutes, ou confier cette tâche à la procédure Workbook_Open dans le module ThisWorkbook:

Code:
Private Sub Workbook_Open()
With UserForm1 'Remplacer UserForm1 par le nom du formulaire si différent
  .TextBox6.Tag = 1
  .ComboBox1.Tag = 2
  .TextBox14.Tag = 3
  .ComboBox2.Tag = 4
  .ComboBox3.Tag = 5
  .ComboBox4.Tag = 6
  .TextBox19.Tag = 7
  .TextBox18.Tag = 8
  .TextBox2.Tag = 9
  .TextBox3.Tag = 10
  .TextBox4.Tag = 11
  .TextBox5.Tag = 12
  .TextBox7.Tag = 13
  .TextBox8.Tag = 14
  .TextBox9.Tag = 15
  .TextBox10.Tag = 16
  .TextBox11.Tag = 18
  .TextBox12.Tag = 19
  .TextBox13.Tag = 20
  .TextBox15.Tag = 21
End With
End Sub
Mais là encore, je rejoins mes amis pour affirmer qu'un classeur exemple aurait fait gagner du temps à chacun.

A +

Cordialement.
 

Roland_M

XLDnaute Barbatruc
Re : Les TextBox écrivent du vide pas vide???

re

un exemple simple pour vider en boucle

Code:
Private Sub VideTextBox()
Dim Ctrl As Control
For Each Ctrl In Me.Controls
 If LCase(Left(Ctrl.Name, 7)) = "textbox" Then
    'Ctrl = "" '< ceci suffit si c'est pour tous les TextBox
    'ci-dessous si c'est pour les TextBox de 1 à 18 uniquement
    If Val(Mid(Ctrl.Name, 8)) >= 1 And Val(Mid(Ctrl.Name, 8)) <= 18 Then Ctrl = ""
 End If
Next
End Sub


EDIT: Salut Papou-net !
ton exemple est encore mieux car il est vrai qu'il y a aussi les combo !
 
Dernière édition:

misteryann

XLDnaute Occasionnel
Re : Les TextBox écrivent du vide pas vide???

Bonsoir et merci à toutes et tous.
le fichier joint est le fichier original ou presque (pas de nom, etc)
Je pense avoir fait le nécessaire mais ça merdouille toujours...
J'ai raté un épisode je pense...
Et comme vous le voyez il reste des lacunes (ouverture de Pdf entre autre, envoi de messages)
 

Pièces jointes

  • Classeur exemple textbox sans espace.xls
    278.5 KB · Affichages: 24
Dernière édition:

grisan29

XLDnaute Accro
Re : Les TextBox écrivent du vide pas vide???

bonsoir Mysteryann et le forum

il est vrai que la ce n'est plus du tout pareil et que je ne pourrai pas t'aider, mais quand tu créer une nouvelle saisie il faudrait que la numérotation +1 se fasse automatiquement car autrement ce sera aléatoire s'il y a plusieurs personnes a s'en servir

je te retourne ton fichier avec une option mise pour sauvegarder en quittant
 

Pièces jointes

  • Classeur exemple textbox sans espace-1.xlsm
    67.2 KB · Affichages: 13
Dernière édition:

grisan29

XLDnaute Accro
Re : Les TextBox écrivent du vide pas vide???

bonsoir Mysteryann
as tu ouvert le fichier que je t'ai envoyer pour voir comment il est le bouton sauver en enregistrant

j'ai vu que tu as effacer des données dites sensibles dans les feuilles, mais tu aurais du les remplacer par des fictives pour savoir ce qui vas pas avec tes codes
dans ton bouton 4 tu mets ceci et tu dit ce que tu en penses mais le chemin sera a changer
Code:
Private Sub CommandButton4_Click()

    Chemin = "D:\Facturation\devis\"
   
    Nouvelle_Saisie.Label35.Caption = Chemin
End Sub

ce code est issu de ce classeur de recherche ciblée
 

Pièces jointes

  • Copie de classeur de recherche.xlsm
    23.2 KB · Affichages: 16
Dernière édition:

misteryann

XLDnaute Occasionnel
Re : Les TextBox écrivent du vide pas vide???

Bonsoir Grisan29.
Désolé pour la réponse tardive.
Peut-on reprendre le fil de la discussion demain?
Un grand Merci en tout cas.
Bonne nuit.
"La nuit porte conseil et envisage des solutions je suppose"
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…