Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Bonjour à tous,
Voilà un sujet traité des dizaines de fois sur ce forum mais malgré tout je ne parviens pas à m'en sortir.
Quand je veux modifier une "Dépense" et que je change la date à l'aide du "DatePicker3", la date se met systématiquement inversée dans la listbox et donc, par conséquent dans mon fichier!!!
alors que la date d'échéance qui se calcule automatiquement est bonne
Je ne m'en sors pas...
Et bonne année à tous.
Merci pour votre aide
Eric
Bonjour
Une erreur dans ton test isdate et is numéric( double emploi)
voici ce que j'ai changé
If IsDate(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDate(tmp)
Else
' Range(NomTableau).Item(Enreg, c) = tmp
If IsNumeric(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
Range(NomTableau).Item(Enreg, c) = tmp
End If
End If
End If
Else
Bonjour
Une erreur dans ton test isdate et is numéric( double emploi)
voici ce que j'ai changé
If IsDate(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDate(tmp)
Else
' Range(NomTableau).Item(Enreg, c) = tmp
If IsNumeric(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
Range(NomTableau).Item(Enreg, c) = tmp
End If
End If
End If
Else
Bonjour à tous et merci pour vos réponses, CP4, ta solution ne change rien toujours les dates à l'envers!!!
Jean-Marie j'ai essayé datevalue mais ça ne change rien!!!
Et sousou je ne parviens pas à placer ton code et surtout quoi remplacer, je veux bien que tu m'écrives le code entier si possible.
Merci beaucoup à tous les trois
eric
Private Sub B_valid_Click()
Application.ScreenUpdating = False
Unprotect
afficher
Enreg = Me.Enreg
For c = 1 To NbCol
tmp = Empty
If Not Range(NomTableau).Item(Enreg, c).HasFormula Then
tmp = Me("textbox" & c)
If IsNumeric(Replace(tmp, ".", ",")) And InStr(tmp, " ") = 0 Then
tmp = Replace(tmp, ".", ",")
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
If IsDate(tmp) Then
Range(NomTableau).Item(Enreg, c).Value = DateValue(tmp)
ElseIf IsNumeric(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
Range(NomTableau).Item(Enreg, c) = tmp
End If
End If
Else
Range(NomTableau).Item(Enreg - 1, c).Copy
'Cells(2).Resize(, 12)
Range(NomTableau).Item(Enreg, c).PasteSpecial Paste:=xlPasteFormats
End If
Next c
UserForm_Initialize
raz
Application.ScreenUpdating = True
End Sub
Re
Je pense qu'il y avait un problème dans enchevêtrement des if et autres Else et ElseIf. Lol
Ca peut encore être optimisé , je pense lol
Bonne journée
Jean marie
La macro du bouton "Modifier" était maladroite, utilisez :
VB:
Private Sub B_valid_Click()
Unprotect
Enreg = Me.Enreg
For c = 1 To NbCol
If Not Range(NomTableau).Item(Enreg, c).HasFormula Then
tmp = Me("textbox" & c)
If IsNumeric(Replace(tmp, ".", ",")) Then tmp = Replace(tmp, ".", ",")
If IsDate(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDate(tmp)
ElseIf IsNumeric(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
Range(NomTableau).Item(Enreg, c) = tmp
End If
End If
Next c
UserForm_Initialize
raz
End Sub
Edit : Unprotect ne sert à rien si l'on ne précise pas la feuille...
Private Sub B_valid_Click()
Application.ScreenUpdating = False
Unprotect
afficher
Enreg = Me.Enreg
For c = 1 To NbCol
tmp = Empty
If Not Range(NomTableau).Item(Enreg, c).HasFormula Then
tmp = Me("textbox" & c)
If IsNumeric(Replace(tmp, ".", ",")) And InStr(tmp, " ") = 0 Then
tmp = Replace(tmp, ".", ",")
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
If IsDate(tmp) Then
Range(NomTableau).Item(Enreg, c).Value = DateValue(tmp)
ElseIf IsNumeric(tmp) Then
Range(NomTableau).Item(Enreg, c) = CDbl(tmp)
Else
Range(NomTableau).Item(Enreg, c) = tmp
End If
End If
Else
Range(NomTableau).Item(Enreg - 1, c).Copy
'Cells(2).Resize(, 12)
Range(NomTableau).Item(Enreg, c).PasteSpecial Paste:=xlPasteFormats
End If
Next c
UserForm_Initialize
raz
Application.ScreenUpdating = True
End Sub
J'ai le meme problème de date avec cette formule :
Private Sub BtnSaveDepense_Click()
' Ajoute les données à la base "Recette"
Dim x As Boolean, Y As Boolean
Application.ScreenUpdating = False
'd'abords on teste avant d'ajouter si ca existe deja ou si un des textbox n'est pas rempli
x = exist_in_tableau(CbFournisseur, Range("TbFournisseur"))
Y = TextboxestVide(Array(TxtDateDepense, CbChoixType, TxtCompteDepense, TxtPrixHTDepense))
If Y Then MsgBox "Saisie Obligatoire: La Date, Le Type de Dépense, Le N° de Compte et Le Prix H.T ": Exit Sub
If Not x Then
With Range("TbFournisseur").ListObject
.ListRows.Add.Range.Value = Array(CbFournisseur) 'si le contenu n'existe pas,on ajoute une ligne au TbFournisseur
End With
End If
Dim V, i&
With [TbDepense].ListObject
V = Array(CDate(TxtDateDepense.Value), CDate(TbDat1Depense.Value), TxtRefFacture, CbChoixType, CbFournisseur, TxtDesignationDepense, _
TxtCompteDepense, CbRgt, TxtPrixHTDepense, CbTVADepense, TxtPrixTTCDepense, TxtX) 'on ajoute une ligne au tableau
For i = LBound(V) To UBound(V)
If IsNumeric(V(i)) Then V(i) = CDbl(V(i))
Next
.ListRows.Add.Range.Cells(2).Resize(, 12) = V
End With
vidange
Application.ScreenUpdating = True
End Sub
Ca me renvoie une date à l'envers dans mon tableau, pffff pas simple les dates...
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.