Problème de saisie entre deux formulaires
Bonsoir à tous
Je vous expose mon souci, j'ai un problème de date dans deux formulaires. Avec le formulaire FrmSaisie j'obtiens le format que je veux.
Lorsque j'utilise le formulaire database pour modifier une, le format date n'est plus le même
pouvez vous m'expliquer, je cherche je cherche mais le ne trouve pas la solution
Bonjour micîd,
'''Database
Me.Txt_Date_debut = Me.ListBox1.Column(9, ligne)
Me.Txt_Date_debut = CDate(Me.Txt_Date_debut)
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 10) = Me.Txt_Date_debut
'''frmSaisie
ActiveCell.Offset(0, 8).Value = Txt_date_achatVoici la différence ... dans "Database" ... le Txt_Date_debut est alimenté via le listbox ...
Puis ... tu utilise CDate sur le Txt_date_debut ...
Essai avec l'une ou l'autre de tes méthodes ... voir celle qui convient ...
Tu peux retrouver rapidement les occurrences à l'aide de la recherche CTRL+F ...
ric
Voila ce que j'ai mis le code du bouton modifier du formulaire datebase mais je dois me tromper
Private Sub Btn_modifier_Click()
If Me.Txt_nr_concession = "" Then
MsgBox ("Il manque le numéro de concession !")
Else
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 2) = Me.Txt_nr_concession
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 3) = Me.Txt_section
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 4) = Me.Txt_rang
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 6) = Me.txt_libre_concede
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 7) = Me.Txt_type_concession
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 8) = Me.Txt_famille
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 9) = Me.Txt_concessionActuel
'''Database
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 10) = Me.Txt_Date_debut
Me.Txt_Date_debut = Me.ListBox1.Column(9, ligne)
Me.Txt_Date_debut = CDate(Me.Txt_Date_debut)
'Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 10) = Me.Txt_Date_debut
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 11) = Me.Txt_duree
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 13) = Me.Txt_adresse
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 14) = Me.Txt_telephone
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 15) = Me.Txt_mail
Sheets("source").ListObjects(1).DataBodyRange(Me.Txt_RowId, 16) = Me.Txt_observation
Me.Txt_nr_concession = ""
Me.Txt_section = ""
Me.Txt_rang = ""
Me.txt_libre_concede = ""
Me.Txt_type_concession = ""
Me.Txt_famille = ""
Me.Txt_concessionActuel = ""
Me.Txt_Date_debut = ""
Me.Txt_duree = ""
Me.Txt_adresse = ""
Me.Txt_telephone = ""
Me.Txt_mail = ""
Me.Txt_observation = ""
Me.Txt_RowId = ""
'relancer le recherche pour afficher les modification
Sheets("source").Range("z3") = "*" & Me.Txt_chercher & "*"
Range("T_source").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("source").Range("Z2:Z3"), CopyToRange:=Sheets("source").Range("AB2:AR2"), Unique:=False
Me.ListBox1.RowSource = "decaler"
End If
End SubEn fait la date de la feuille "source" (colonne K date de début) doit être au format texte pour pouvoir calculer une date de fin feuille "source" colonne M sachant que les dates de début peuvent être avant 1900
Encore merci pour votre réaction
Personne pour m'aider ?
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
ci-dessous code
Private Sub Btn_modifier_Click()
Dim i As Integer, j As Integer
Dim ctrl As Control
If Me.Txt_nr_concession = "" Then
MsgBox ("Il manque le numéro de concession !")
Else
With [T_source].ListObject
i = .ListColumns("ID").Range.Find(Val(Me.Txt_RowId), LookIn:=xlValues, LookAt:=xlWhole).Row 'indice ligne feuille
j = i - .HeaderRowRange.Row 'indice ligne tableau structuré
.ListColumns("N° Concession").DataBodyRange(j) = Me.Txt_nr_concession
.ListColumns("Section").DataBodyRange(j) = Me.Txt_section
.ListColumns("Rang").DataBodyRange(j) = Me.Txt_rang
.ListColumns("Libre ou Concédé").DataBodyRange(j) = Me.txt_libre_concede
.ListColumns("Type de Concession").DataBodyRange(j) = Me.Txt_type_concession
.ListColumns("Famille").DataBodyRange(j) = Me.Txt_famille
.ListColumns("Concession actuelle").DataBodyRange(j) = Me.Txt_concessionActuel
.ListColumns("Date de Début").DataBodyRange(j) = CDate(Me.Txt_Date_debut)
.ListColumns("Durée").DataBodyRange(j) = CDec(Me.Txt_duree)
.ListColumns("Adresse du concessionnaire actuel").DataBodyRange(j) = Me.Txt_adresse
.ListColumns("Téléphone").DataBodyRange(j) = Me.Txt_telephone
.ListColumns("Mail").DataBodyRange(j) = Me.Txt_mail
.ListColumns("Observations").DataBodyRange(j) = Me.Txt_observation
End With
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.TextBox Then ctrl = ""
Next ctrl
'relancer le recherche pour afficher les modifiction
Sheets("source").Range("z3") = "*" & Me.Txt_chercher & "*"
Range("T_source").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("source").Range("Z2:Z3"), CopyToRange:=Sheets("source").Range("AB2:AR2"), Unique:=False
Me.ListBox1.RowSource = "decaler"
End If
End Sub