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

XL 2016 problème de trie de date lors de consolidation

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jean marc1234

XLDnaute Occasionnel
re bonjour,
donc une nouvelle discussion, toujours mon problème de trie de date lors d'une consolidation.
Pour répondre à dranreb, j'ai donc copier les données du classeur qui ne fonctionne pas dans celui qui fonctionne. J'ai toujours ce problème dans les dernières lignes de consolidation. Alors qu'avec les données tests sa fonctionne très bien.
 

Pièces jointes

Re,

@jean marc1234
Heureusement que je t'vais suggéré de prendre le temps de créer un fichier anonymisé...

Je viens de tester sur ton classeur et la macro que j'avais proposer dans l'autre fil fonctionne.
Je n'ai pas de message d'erreur et le tri se fait sur la colonne A
(si tes colonnes A contiennent de "vraies dates")
(Je parle de la macro nommée consolider_Et_Trier)
L'autre ne sert que pour test sur un classeur test, il faut évidemment pas l'utiliser sur ton fichier réel
Mais cela je te l'ai déjà dit dans l'autre fil 😉
 
Dernière édition:
Bonjour.
Précision: Sont donc regroupés à la fin de la consolidation, à partir de la ligne 109, tous les textes ayant l'apparence de dates, repris, de ci de là des différentes autres feuilles.
 
Le plus souvent c'est la conséquence d'écritures directes de valeurs de TextBox servant à saisir une date, au lieu d'en écrire leurs conversions en dates à l'aide de la fonction CDate.
Cette procédure devrait vous intéresser :
VB:
Sub ConvertirEnDates()
Dim ArrWks, Wsh As Worksheet, Rng As Range, T(), L As Long, NbStr As Long, NbCDt As Long, Réécrire As Boolean
ArrWks = Array("ales", "arles", "bagnols", "calvisson", "grau du roi", "montpellier", "nimes", "uzes")
Application.ScreenUpdating = False
For Each Wsh In Sheets(ArrWks)
   Set Rng = Wsh.[A3].Resize(Wsh.[A1000000].End(xlUp).Row - 2)
   T = Rng.Value
   Réécrire = False
   For L = 1 To UBound(T, 1)
      If VarType(T(L, 1)) = vbString Then
         NbStr = NbStr + 1
         If IsDate(T(L, 1)) Then
            T(L, 1) = CDate(T(L, 1))
            NbCDt = NbCDt + 1
            Réécrire = True: End If: End If: Next L
   If Réécrire Then Rng.Value = T
   Next Wsh
Select Case NbStr
   Case Is > NbCDt: MsgBox NbStr & " textes trouvés, dont " & NbStr - NbCDt & _
      " n'ont pu être convertis en dates.", vbInformation, "ConvertirEnDates"
   Case 0: MsgBox "Aucun texte trouvé.", vbInformation, "ConvertirEnDates"
   Case Else: MsgBox NbStr & " textes trouvés, ayant tous été convertis en dates.", _
      vbInformation, "ConvertirEnDates"
   End Select
End Sub
 

bonjour dranreb,
la effectivement avec ce code sa fonctionne beaucoup mieux.
Je me doutais un peux que sa devais venir de lamise en forme du champs date et j'avais tous repris.
Mais effectivement au début de la création de mes classeurs les personnes rentrée les dates à partir d'un formulaire contenant des textbox.
Ce qui n'ai plus le cas.
J'ai une petite question, j'ai 5 classeurs identique 2014,2015,2016,2017 et 2018.
la macro de conversion fonctionne très bien sur 2018 et 2016 mais sur les autres classeurs elle m'indique une erreur 1004 avec une mise en surbrillance de la ligne "If Réécrire Then Rng.Value = T"
Serais t'il possible de mettre des annotations pour indiquer à quoi correspondent les lignes de code principal, comme cela se fait dans certains tuto.
Cela serais plus facile à suivre et comprendre pour moi et sa peut servir également à d'autres personnes.
en tout cas merci beaucoup sa me permet d'avances dans mon projet.
Bon dimanche et resté à l'ombre.
Encore une fois je suis pas programmeur et je fais à mon niveau. Alors faut pas trop m'en vouloir si je comprend pas vite.
Chacun son domaine. pour ma part c'est autre chose.
 
C'est que je ne sais pas pourquoi ça plante.
J'en suis réduit à une hypothèse: certains tableaux seraient vides.
Je me suis borné à commenter les instructions essentielles :
VB:
Sub ConvertirEnDates()
Dim ArrWks, LMax As Long, Wsh As Worksheet, Rng As Range, T(), L As Long, NbStr As Long, NbCDt As Long, Réécrire As Boolean
ArrWks = Array("ales", "arles", "bagnols", "calvisson", "grau du roi", "montpellier", "nimes", "uzes")
Application.ScreenUpdating = False
For Each Wsh In Sheets(ArrWks)
   Set Rng = Wsh.[A1000000].End(xlUp)
   If Rng.Row >= 3 Then
      Set Rng = Wsh.Range(Wsh.[A3], Rng)
      If Rng.Rows.Count = 1 Then ReDim T(1 To 1, 1 To 1): T(1, 1) = Rng.Value Else T = Rng.Value
      ' Récupère les valeurs des cellules de la plage dans un tableau VBA 2D d'une seule colonne.
      Réécrire = False
      For L = 1 To UBound(T, 1)
         If VarType(T(L, 1)) = vbString Then
            NbStr = NbStr + 1 ' Compte les textes
            If IsDate(T(L, 1)) Then ' Si la conversion du texte en date est possible
               T(L, 1) = CDate(T(L, 1)) ' Remplace la valeur texte par sa conversion en date
               NbCDt = NbCDt + 1 ' Compte les corrections
               Réécrire = True: End If: End If: Next L
      If Réécrire Then Rng.Value = T ' Réécrit les valeurs corrigées s'il y a eu au moins une correction.
      End If: Next Wsh
Select Case NbStr
   Case Is > NbCDt: MsgBox NbStr & " textes trouvés, dont " & NbStr - NbCDt & _
      " n'ont pu être convertis en dates.", vbInformation, "ConvertirEnDates"
   Case 0: MsgBox "Aucun texte trouvé.", vbInformation, "ConvertirEnDates"
   Case Else: MsgBox NbStr & " textes trouvés, ayant tous été convertis en dates.", _
      vbInformation, "ConvertirEnDates"
   End Select
End Sub
Édition:
Je me doutais un peux que sa devais venir de lamise en forme du champs date
Non, il ne faut pas dire les chose comme ça. Ça mélange des notions qui n'ont rien à voir les unes avec les autres. Une cellule possède une valeur de cellule qui peut être de peu de types possibles: Vide, Erreur, Texte, Logique, Nombre, Date ou Monétaire. Indépendamment de cela elle possède un format de cellule qui indique seulement comment doit être resitué visuellement cette information.
 
Dernière édition:
 

Re,
merci pour les infos et le détails du code.
Je vais me pencher la dessus.
 

bonjour,
j'avais répondu directement sur le mail que j'avais reçu. Je répond toujours par politesse
Je disais donc que les données que j'avais dans le tableau ne pouvais pas servir. Données complètement bidons.
En ce qui concerne les dates j'avais déjà répondu en notant que j'avais vérifier tous mes formats.
Et pour le fichier test j'avais très bien compris qu'il ne devait pas etre utiliser dans mon classeur.
Je suis pas programmeur mais bon quand même.
Ya des personnes qui sont plus doués que d'autres dans certains domaines. Chacun le sien.
 
Re,

@jean marc1234
De quel mail tu parles???
Je n'ai jamais échangé avec toi par mail ??

Moi je parle de ce fil de discussion actuel, et du message#2 où je te disais avoir testé sur ton fichier exemple et que le tri se fait bien si le classeur contient de vraies dates en colonne A.

Mais bon, pas grave.
 
je suis aller trop , j'avais répondu directement sur le mail que j'avais reçu dans ma messagerie Outlook.
Désolé
Mais oui pas grave
 
Re bonjour staple1600 et dranreb,
voila tous fonctionne correctement.
Dranreb j'ai trouver pourquoi cela ne fonctionné pas sur certains classeurs.
Des lignes masquées et en plus avec des erreurs de frappes.
Faut que je fasse plus attention.
cela remis correctement, tout fonctionne impeccablement bien.
Je vais pouvoir continuer mon projet.
Encore merci à tous les deux. Vos analyse, vos réflexions,vos codes avec les annotations vont bien m'être utile.(d'autres idées de projets)
Je vous souhaite une bonne fin de wk et encore merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
377
Réponses
5
Affichages
235
Réponses
10
Affichages
542
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…