Format date Et changement valeur celulles

bonjour le forum

je reviens vers vous pour un petit problème que je n'arrive pas a ressoudre.

En ayant un code VBA qui me permet de filtrer les données de plusieurs client sur une autre feuille (Compta) , ce qui ai réussi quand je lance ma macro, mes données s'affiche bien sauf pour la cellule date (A1) La moitie de ma feuil1 Excel affiche les bonnes date tandis que l'autre moitié m'affiche des dates inversé (Voir exemple ci dessous ) 01/03/2022 devrait s'afficher en 03/01/2022

image

et deuxième problème dans ma colonne Code journal je dois afficher que "VE" sur toutes les lignes

Est ce que quelqu'un pourrait m'aider ? s'il vous plait

cordialement

Ps: Voici mon code permettant de comptabilisé et de filtrer

Sub comptabiliser()
Dim F1 As Worksheet
Dim F2 As Worksheet
Set F1 = Sheets("Feuil1")
Set F2 = Sheets("Compta")
Dim Tablo

F2.Cells.ClearContents
Dim i As Long
Application.ScreenUpdating = False

Tablo = F1.Range("A2", "Z" & F1.Range("A" & Rows.Count).End(xlUp).Row)
F2.Cells(1, 1).Resize(1, 8) = Array("Date", "code journal", "compte", "débit", "crédit", "Libellé pièce", "Pièce", "référence pièce")
Set d = CreateObject("Scripting.Dictionary")
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")

    For i = 1 To UBound(Tablo)
    clé = Tablo(i, 2) & "|" & Tablo(i, 9) & "|" & "70600000" & "|" & "" & "|" & Tablo(i, 10) & "" & "|" & Tablo(i, 6) & "|" & Tablo(i, 1) & "|" & Tablo(i, 9)
    clé1 = Tablo(i, 2) & "|" & Tablo(i, 9) & "|" & "44571200" & "|" & "" & "|" & Tablo(i, 11) & "" & "|" & Tablo(i, 6) & "|" & Tablo(i, 1) & "|" & Tablo(i, 9)
    clé2 = Tablo(i, 2) & "|" & Tablo(i, 9) & "|" & "411" & Tablo(i, 5) & "|" & Tablo(i, 12) & "" & "|" & "" & "|" & Tablo(i, 6) & "|" & Tablo(i, 1) & "|" & Tablo(i, 9)
    d(clé) = d(clé)
    d1(clé1) = d1(clé1)
    d2(clé2) = d2(clé2)
    Next i

 F2.Range("A2").Resize(d.Count) = Application.Transpose(d.keys)
 F2.Range("A2").Resize(d.Count).TextToColumns Other:=1, DataType:=xlDelimited, OtherChar:="|"
 j = F2.Cells(Rows.Count, 1).End(xlUp).Row + 1
 F2.Range("A" & j).Resize(d.Count) = Application.Transpose(d1.keys)
 F2.Range("A" & j).Resize(d.Count).TextToColumns Other:=1, DataType:=xlDelimited, OtherChar:="|"
 L = F2.Cells(Rows.Count, 1).End(xlUp).Row + 1
 F2.Range("A" & L).Resize(d.Count) = Application.Transpose(d2.keys)
 F2.Range("A" & L).Resize(d.Count).TextToColumns Other:=1, DataType:=xlDelimited, OtherChar:="|"
F2.Select
Call flitrer
Application.ScreenUpdating = True

End Sub
Sub flitrer()

Dim DerLig As Long

    Application.ScreenUpdating = False

        With Sheets("Compta")
            .Select
            .AutoFilterMode = False
            DerLig = .Range("A" & Rows.Count).End(xlUp).Row
            .Range("A1:H" & DerLig).Select
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:=Range("G1:G" & DerLig) _
                , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("A1:H" & DerLig)
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With

        End With

End Sub

Bonjour,

Fournir un fichier permettant d'exécuter la macro SVP

A+

bonjour

autant pour moi

j'y ai incrusté la macro

bonjour,

avec des valeurs dates et currency , c'est mieux d'utiliser ".value2"

Tablo = F1.Range("A2", "Z" & F1.Range("A" & Rows.Count).End(xlUp).Row).Value2

Ca fonctionne merci il me manquait juste ca

Merci beaucoup

vous m'avez fais comprendre mon erreur

et savez comment changer la valeur des cellules " code journal" pour que ca affiche "VE" sur toute la ligne

re,

un code plus efficace

votre dernier remarque "VE" dans code journal = remplacer Tablo(i,9) par "VE" dans les 3 lignes Dict.add ....

Sub comptabiliser()
     Dim F1 As Worksheet, F2 As Worksheet
     Dim Tablo, i As Long

     Set F1 = Sheets("Feuil1")
     Set F2 = Sheets("Feuil2")

     Tablo = F1.Range("A2", "Z" & F1.Range("A" & Rows.Count).End(xlUp).Row).Value2
     Set dict = CreateObject("scripting.dictionary")
     dict.Add dict.Count, Array("Date", "code journal", "compte", "débit", "crédit", "Libellé pièce", "Pièce", "référence pièce")     'les titles

     For i = 1 To UBound(Tablo)     'IMPORTANT, CHAQUE LIGNE DOIT AJOUTER LE MÊME NOMBRE D'ELEMENTS DANS "ITEMS" = 8 !!!
          dict.Add dict.Count, Array(Tablo(i, 2), Tablo(i, 9), "70600000", "", Tablo(i, 10), Tablo(i, 6), Tablo(i, 1), Tablo(i, 9))
          dict.Add dict.Count, Array(Tablo(i, 2), Tablo(i, 9), "44571200", "", Tablo(i, 11), Tablo(i, 6), Tablo(i, 1), Tablo(i, 9))
          dict.Add dict.Count, Array(Tablo(i, 2), Tablo(i, 9), "411" & Tablo(i, 5), Tablo(i, 12), "", Tablo(i, 6), Tablo(i, 1), Tablo(i, 9))
     Next i

     arr = Application.Index(dict.items, 0, 0)
     F2.Cells.ClearContents
     With F2.Range("A1").Resize(UBound(arr), UBound(arr, 2))
          .Value = arr
          .EntireColumn.AutoFit
          .Sort .Range("G1"), xlAscending, Header:=xlYes
     End With

End Sub

Ca fonctionne Merci beaucoup

grace a vous je vais devenir pro Excel VBa

Rechercher des sujets similaires à "format date changement valeur celulles"