Microsoft 365 Copier coller dates

JBL07

XLDnaute Occasionnel
Bonjour à toutes et tous !

Un souci à vous soumettre, après avoir vainement tenté de le résoudre :

J'ai 2 tableaux de suivi bancaire dont je joins ici 2 extraits:
- 1 tableau source ( 8000 lignes )+ 1 tableau dest ( 1050 lignes )

Je dois insérer les 8000 lignes du Tab source dans le Tab dest, sauf que je n'arrive pas à copier-coller les dates : quelque soit le mode de copiage, une fois dans le Tab dest, les insertions ne sont ensuite pas prises en compte dans le tri chronologique ( du plus récent au plus ancien ) que j'effectue
La seule manière pour le moment qui fonctionne, c'est lorsque je retape à main chaque date dans le tab source, et copier-coller ensuite. J
e ne me vois pas retaper 8000 lignes !

Info supplémentaire, le Tab source est un export Excel d'un logiciel de compte ( Comptes & Budget )

Si vous pouvez m'aider, je suis preneur !
Merci par avance
 

Pièces jointes

  • Tab source.xlsm
    10.9 KB · Affichages: 8
  • Tab dest.xlsm
    53.6 KB · Affichages: 9
Solution
Voici une autre solution plus générique qui s'applique à n'importe quelle situation:

VB:
Sub convertirDate()
' convertir un texte en format jj/mm/aaaa en véritable valeur de date
Dim c As Range
For Each c In Selection
    t = c.Value
    If IsDate(t) Then
        j = Left(t, 2)
        m = Mid(t, 4, 2)
        a = Right(t, 4)
        c.Value = DateSerial(a, m, j)
    End If
Next
End Sub


Pour l'utiliser, tu sélectionnes la plage de dates (en texte) à convertir et tu lances la macro. Les valeurs de date remplacent les textes dans les mêmes cellules. Par après ton transfert vers ton fichier destination s'effectue comme aupavant.

Pour usage rapide, assigne un raccourci à la macro, comme ctrl-d par exemple.

fanch55

XLDnaute Impliqué
Bonjour,
Aucun problème avec les 2 fichiers fournis et le code de maj ci-dessous :


VB:
Sub Transfert()
Dim Tabdest As ListObject
Dim Tabfrom As ListObject

Set Tabfrom = Workbooks("Tab source.xlsm").Sheets("Feuil1").ListObjects("Tableau1")
Set Tabdest = Workbooks("Tab dest.xlsm").Sheets("Ecritures").ListObjects("Tabécritures")
    For i = 1 To Tabfrom.ListRows.Count
        Tabdest.ListRows.Add 1
        Tabdest.ListColumns("Date").DataBodyRange.Rows(1) = Tabfrom.ListColumns("Date").DataBodyRange.Rows(i)
        Tabdest.ListColumns("Compte").DataBodyRange.Rows(1) = Tabfrom.ListColumns("Compte").DataBodyRange.Rows(i)
        Tabdest.ListColumns("Compte").DataBodyRange.Rows(1) = Tabfrom.ListColumns("Compte").DataBodyRange.Rows(i)
        Tabdest.ListColumns("Catégorie").DataBodyRange.Rows(1) = Tabfrom.ListColumns("Catégorie").DataBodyRange.Rows(i)
        Tabdest.ListColumns("S/Catégorie").DataBodyRange.Rows(1) = Tabfrom.ListColumns("sous-catégorie").DataBodyRange.Rows(i)
        Tabdest.ListColumns("Tiers / Commentaire").DataBodyRange.Rows(1) = Tabfrom.ListColumns("tiers").DataBodyRange.Rows(i)
        ''''''
        ''''''
        ''''''
        ''''''
    Next
    Tabdest.Sort.Apply
Set Tabfrom = Nothing
Set Tabdest = Nothing
End Sub
 

Recycleur

XLDnaute Nouveau
Voici une autre solution plus générique qui s'applique à n'importe quelle situation:

VB:
Sub convertirDate()
' convertir un texte en format jj/mm/aaaa en véritable valeur de date
Dim c As Range
For Each c In Selection
    t = c.Value
    If IsDate(t) Then
        j = Left(t, 2)
        m = Mid(t, 4, 2)
        a = Right(t, 4)
        c.Value = DateSerial(a, m, j)
    End If
Next
End Sub


Pour l'utiliser, tu sélectionnes la plage de dates (en texte) à convertir et tu lances la macro. Les valeurs de date remplacent les textes dans les mêmes cellules. Par après ton transfert vers ton fichier destination s'effectue comme aupavant.

Pour usage rapide, assigne un raccourci à la macro, comme ctrl-d par exemple.
 
Haut Bas