Autoriser des textbox vide

Bonjour à tous

J'ai vu quelques codes sur le site, mais compliqués a mettre en place pour ma part.

Que dois je faire pour ne pas imposer la saisie de tous les textbox

28 au total, mais pas utile de tout remplir systématiquement..

Pour le moment je suis obligé de mettre un zéro pour éviter les bug à l'enregistrement

Si un petit code peut faire ça, je serais intéressé

D'avance merci

Bonjour,

Vous pouvez mettre toutes les textbox à 0 lors de l'initialisation du formulaire :

private sub Userform_Initialize()
for each ctrl in me.controls
    if typename(ctrl) = "TextBox" then ctrl.value = 0
next ctrl
end sub

Ou sinon, utiliser une condition pour empêcher le bug (incompatibilité de type j'imagine) :

if ctrl = "" then destination = "" else destination = ctrl.value * 1

Cdlt,

Merci pour cette réponse rapide . Je vois pour la modif avec votre proposition.

Demain férié, je vois le resultat mardi de ce fait

Encore merci pour l'intérêt porté à mon problème du moment

Je vous en prie, à bientôt et joyeux Halloween

Bonjour,

Quelques modifs et tentatives pour adapter les codes suggérés, mais ça je n'arrive pas à faire fonctionner

Est il possible de mettre un tiret par défaut afin de rendre la textbox non vide et néanmoins pouvoir y inscrire un nombre si besoin ?

Es ce un astuce valable ?

Merci pour vos avis

Bonjour,

En fait, je ne connais pas vraiment le problème pour l'instant, j'ai répondu par intuition. J'ai supposé que vous aviez une erreur lors de l'inscription des données du formulaire sur la feuille Excel à cause de cellules vides produisant une incompatibilité de type en raison d'une opération attendant des nombres. Est-ce bien le cas ?

Les petites astuces sont sympa mais sont quand même beaucoup moins sécurisantes qu'un code qui prévoit les éventualités, et celle-ci (la textbox vide) n'est pas des moindres.

Voulez-vous bien poster ici le code d'alimentation de la base (à l'aide des balises </> du ruban d'icônes) ?

Cdlt,

Je n'ai malheureusement pas le temps de m'y intéresser longtemps pendant mon temps de travail

Le fichier est mon pc pro

Je vous mets à disposition, un fichier copier et allégé demain dans la matinée

Globalement : les formulaires sont utilisés pour saisir des chiffres ou nombres

Tous sont saisi sans signe mais un formulaire renvois volontairement des chiffres negatifs dans une bdd

Seulement, pour facilité la saisie, je souhaiterai "sauter" les textbox dans lesquelles je n'ai rien à saisir.

Et c'est la qu'est le bug

Il n'autorise pas les textbox vides

Don uun message d'erreur d'incompatibilité apparaît effectivement

D'accord, je comprends. Pas besoin du fichier a priori, juste la macro (une commandbutton_click probablement) qui inverse la valeur des textbox.

Bonne soirée et à bientôt,

Bonjour à vous,

Voici le code raccourci,et utilisé pour le bouton d'enregistrement

Private Sub btajout_Click()
Sheets("BDD").Activate
Range("A1").Select
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select

ActiveCell = Date
ActiveCell.Offset(0, 1).Value = -CDbl(Me.Txtboite1)
ActiveCell.Offset(0, 2).Value = -CDbl(Me.Txtboite2)
ActiveCell.Offset(0, 3).Value = -CDbl(Me.Txtboite3)
ActiveCell.Offset(0, 4).Value = -CDbl(Me.Txtboite4)
ActiveCell.Offset(0, 5).Value = -CDbl(Me.Txtboite5)
ActiveCell.Offset(0, 6).Value = -CDbl(Me.Txtboite6)
ActiveCell.Offset(0, 7).Value = -CDbl(Me.Txtboite7)

MsgBox " LE STOCK ................", vbOKOnly + vbInformation

End Sub

Bonjour,

Voici un premier essai :

Private Sub btajout_Click()
with Sheets("BDD")
    nvl = .Cells(.rows.count, 1).end(xlup).row + 1
    .cells(nvl, 1) = Date
    for i = 1 to 7
        s = replace(Me.controls("Txtboite" & i), ".", ",")
        if isnumeric(s) then .cells(nvl, i + 1).Value = -s else .cells(nvl, i + 1).Value = s 'ou = "" tout simplement
    next i
end with
MsgBox " LE STOCK ................", vbOKOnly + vbInformation
End Sub

Comme je vous ai dit, pour poster du code, il faut utiliser les balises </> du ruban d'icônes.

Cdlt,

Bonjour à vous,

Pour le post du code, désolé je ne suis pas au fait des procédures.

Je verrai pour améliorer mes lacunes à ce niveau.

Pour le code que vous m'avez fourni, j'avoue comprendre en partie le fonctionnement, mais être incapable de l'écrire .

C'est un niveau bien au delà de ce que je sais faire

Toujours est il qu'il fonctionne pour les besoins actuels

Merci en tout cas pour le suivi et l'aide apportée

Cordialement,

Re bonjour,

Aucun souci, c'est justement pour que vous sachiez comment poster du code à l'avenir. En fait, lorsque qu'on écrit un post, on a un ruban avec des icônes affiché en haut, servant principalement à mettre en forme, à charger un fichier ou à poster du code (icone </>) et ainsi faciliter sa copie et sa lecture.

Je vous commente le code au cas où ça vous intéresse :

Private Sub btajout_Click()
with Sheets("BDD") 'avec feuille BDD
    nvl = .Cells(.rows.count, 1).end(xlup).row + 1 '1ère ligne vide en colonne 1 (derniere non vide, obtenue en partant du bas de la colonne et en remontant, + 1 ligne) 
    .cells(nvl, 1) = Date 'sur cette ligne, on saisit la date du jour en colonne 1
    for i = 1 to 7 'de 1 à 7
        s = replace(Me.controls("Txtboite" & i), ".", ",") 's stocke la valeur de la textbox i
        if isnumeric(s) then .cells(nvl, i + 1).Value = -s else .cells(nvl, i + 1).Value = s 'si s est numérique, la colonne i+1 prend sa valeur
    next i 'i suivant
end with
MsgBox " LE STOCK ................", vbOKOnly + vbInformation
End Sub

Bon courage pour la suite,

Cdlt,

Merci pour le détail

Je tente de mettre en place d'autres procédures dans ces deux formulaires

Il est fort probable qu'une aide me soit nécessaire à un à moment ou autre

Bon week-end à vous

Je vous en prie !

Ah oui, les formulaires demandent toujours des petits ajustements !

Merci et bon week-end à vous aussi !

Rechercher des sujets similaires à "autoriser textbox vide"