Lorsque je saisis un enregistrement à l'aide du formulaire , les champs s'enregistrent dans la base de données Source.
Mais les champs apparemment vides , contiennent une valeur. (détectée par NBVAL()).
Comment éviter d'enregistrer ces cellules faussement vides à partir du formulaire ?
Quel code vba faut-il rajouter au code de ce formulaire ??
Merci pour votre aide !
If ComboBoxDateprévue <> "" Then ActiveCell.Offset(0, 3) = ComboBoxDateprévue
If LabelDate1 <> "" Then ActiveCell.Offset(0, 4) = LabelDate1
If ComboBoxEvaluation <> "" Then ActiveCell.Offset(0, 5) = ComboBoxEvaluation
' Nettoyage : Si une cellule a un NBCAR=0 et NBVAL>0 alors on l'efface
For I = 1 To 162
If Application.CountA(ActiveCell.Offset(0, I)) > 0 And Len(ActiveCell.Offset(0, I)) = 0 Then
ActiveCell.Offset(0, I).ClearContents
End If
Next I
Je n'ai pas cherché le pourquoi de ce truc bizarre. Les cellules ont un NBVAL positif mais un NBCAR nul.
Ce n'est pas le plus esthétique, mais c'est efficace.
Comme la macro y met un texte vide, NBVAL compte 1.
Pour éviter cela il faudrait faire SI Valeur<>"" alors écrire, mais avec toutes vos box, ma méthode devient plus simple.
Bonjour Efgé,
Je m'étais fait la même réflexion. J'ai modifié la PJ avec : ActiveCell.Offset(0, I).ClearContents
Par contre, aussi bizarre que cela puisse paraitre, cela marchait.
Yes ! yes ! yes !
Merci beaucoup Sylvanu et Efgé !! le correctif fonctionne parfaitement, ouf....
Encore une question:
Pour obtenir l'affichage du prénom dans le Label TxtPrénom ,après avoir sélectionné le Nom dans la comboboxNom,celui-ci ne s'affiche que lorsque je clic sur TxtPrénom.
Peut-on obtenir l'affichage directement après avoir sélectionné le Nom et aller mettre en focus le champs suivant qui est ComboBoxDateprévue ?