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

XL 2021 erreur Vba

NicolasKH

XLDnaute Junior
Bonjour a tous,
j'ai un petit soucis au niveau de mon code vba
explication:
j'ai un userform avec txtentree et txtsortie, l'erreur est quand je met rien dans les deux TXT excel n'inscrit rien dans mon tableau, au contraire quand je rempli les deux TXT les donnees s'inscrit bien dans mon tableau j'aimerai que la saisie dans les txt sois l'un ou l'autre.

Exemple :
quand je saisi dans le le TxtSorti soit grise
quand je saisi dans le TxtSorti le TxtEntree soit grise

mon code
Private Sub CbtValider_Click()

'On test que les controles ont bien ete saisie
If Len(Me.TxtDate) = 0 Then
Me.LblMessage = "Veuillez entree une date JJ/MM/AAAA."
Me.TxtDate.SetFocus
ElseIf Len(Me.CboLieux) = 0 Then
Me.LblMessage = "Veuillez selectionner un lieux."
Me.CboLieux.SetFocus
ElseIf Len(Me.CboProjet) = 0 Then
Me.LblMessage = "Veuillez selectionner le projet."
Me.CboProjet.SetFocus
ElseIf Len(Me.TxtEntree) = 0 Then
Me.TxtEntree.SetFocus
ElseIf Len(Me.TxtSortie) = 0 Then
Me.TxtSortie.SetFocus
ElseIf Len(Me.CboDesignation) = 0 Then
Me.LblMessage = "Veuillez selectionner une designation."
Me.CboDesignation.SetFocus
ElseIf Len(Me.CboChefProjet) = 0 Then
Me.LblMessage = "Veuillez selectionner un chef de projet ."
Me.CboChefProjet.SetFocus
ElseIf Len(Me.CboChefChantier) = 0 Then
Me.LblMessage = "Veuillez selectionner un chef de chantier ."
Me.CboChefChantier.SetFocus

Else 'Si tous les champs sont complet on peut sauvegarder la source
'On cherche la prochaine ligne vide de la source
Feuil7.Activate
Feuil7.Range("A1048576").End(xlUp).Offset(1, 0).Select
' On effecte les donnees du formulaire dans la source
ActiveCell = ActiveCell.Offset(-1, 0) + 1
ActiveCell.Offset(0, 1) = CDate(Me.TxtDate)
ActiveCell.Offset(0, 2) = Me.CboLieux
ActiveCell.Offset(0, 3) = Me.CboProjet
ActiveCell.Offset(0, 4) = CCur(Me.TxtEntree)
ActiveCell.Offset(0, 5) = CCur(Me.TxtSortie)
ActiveCell.Offset(0, 6) = Me.CboDesignation
ActiveCell.Offset(0, 7) = Me.CboChefProjet
ActiveCell.Offset(0, 8) = Me.CboChefChantier


Unload Me
AvanceOuvrier.Show

'Activer la feuil TbTresorerie
Feuil1.Activate

End If
ThisWorkbook.Save
ThisWorkbook.RefreshAll
End Sub
 

Oneida

XLDnaute Impliqué
Bonjour,

Perso, je mettrai deux boutons options entree/sortie, une seule txtbox et test dans ecriture feuille.
C'est vous qui voyez

Quoique

VB:
Private Sub TxtEntree_Change()
    TxtEntree.BackColor = &H80000005
    TxtSortie = ""
    TxtSortie.BackColor = &HE0E0E0
End Sub

Private Sub TxtSortie_Change()
    TxtSortie.BackColor = &H80000005
    TxtEntree = ""
    TxtEntree.BackColor = &HE0E0E0
End Sub
Ira pas mal
 
Dernière édition:

NicolasKH

XLDnaute Junior
merci pour ta reponse, mais comme je suis asser nul en vba je ne compremd pas ton code
 

NicolasKH

XLDnaute Junior
Bonjour,
Oubliez les boutons option
Le code est pour vos deux textbox.
Si vous ecrivez dans TxtEntree changement de couleur, contenu TxtSortie est efface et inversement si vous ecrivez dans TxtSortie

Vous n'aurez qu'une textbox avec une information
je viens de faire le test et ton fonctionne tres bien, mais je me suis mal expliquer.

j'ai une erreur dans mon code et je ne sis pas ou, les champs entree et sortie.
quand je ne met rien dans l'un des deux champs et que je valider rien ne se passe et au contraire quand je rempli les deux Txtbox la validation se fait bien
 

Oneida

XLDnaute Impliqué
Bonjour,
Normalement, vous ne pouvez pas avoir de texte dans les deux. C'est l'une ou l'autre
 

Pièces jointes

  • TextBox.xlsm
    20.5 KB · Affichages: 1

Oneida

XLDnaute Impliqué
Bonjour,
Fichier modifie. Ald saisir la date, vous pourriez inclure un calendrier.
Je vous le fais si vous voulez
 

Pièces jointes

  • Planing Des Projets - Copie.xlsm
    83.7 KB · Affichages: 1

NicolasKH

XLDnaute Junior
Ben oui.
J'avai modifie pour test si les deux vides, mais pas pour l'ecriture celllule
Fichier modifie avec quelques enrichissements, dont le calendrier sur click Txtbox date
les txtentre et txtsortie je rencotre toujours le meme probleme car il faut oblogatoirement remplire les deux txtbox, si je met rien dans un des deux txtbox ca me remvoie toujours la meme erreur.


pour ton calendrier c'est magnifique
 
C

Compte Supprimé 979

Guest
Bonjour le fil

@NicolasKH, rendons à César ce qui lui appartient, ce n'est pas le calendrier de Oneida, mais celui de Patrick TOULON à la base

Sinon, ce n'est quand même pas difficile de mettre un test
VB:
 If Me.TxtSortie <> "" Then ActiveCell.Offset(0, 6) = CCur(Me.TxtSortie)

A+
 

Oneida

XLDnaute Impliqué
Bonjour a vous deux

Il y a eu un copier/froisser dans la procedure .
Correction:
Private Sub CbtValider_Click()

VB:
        If TxtEntree <> "" Then
            ActiveCell.Offset(0, 4) = CCur(Me.TxtEntree)
        Else
            ActiveCell.Offset(0, 4) = ""
        End If
        If TxtSortie <> "" Then
            ActiveCell.Offset(0, 5) = CCur(Me.TxtSortie)
        Else
            ActiveCell.Offset(0, 5) = ""
        End If

Une infos par MsgBox serait plus appropriee que l'affichage d'un message
Mais c'est vous qui voyez

Pour le Calendrier, vous trouverez son auteur au debut du code de l'UF
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…