XL 2021 formule pour modifier le CONTENU de certaines cellules

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bjr à toutes et à tous :)

J'ai un souci qui vient de moi "codeur bricoleur à la noix" :mad:
Dans mon fichier de travail, certaines dates ne sont pas triées.
J'ai cherché longtemps, y compris cette nuit et j'ai fini par comprendre.

En effet, j'ai toujours gaffouillé dans mes formats de dates et mes bricolages ont fait que :
- j'ai des dates comme ceci : 03.05.2023 00:00:00
- j'ai des dates comme cela : 03.05.2023 00:00
Evidemment, le tri n'est pas fait pour les dates comme cela "03.05.2023 00:00"

Pour mon fichier de travail :
Est-il possible d'ajouter par code ":00" la où ça manque pour que toutes les dates soient toutes
avec "00:00:00" ?

Dans le classeur test joint les cellules confernées sont les 2 cellules en jaune de la colonne "J"

Merci pour votre aide...
Je joins le classeur test.
Je continue mes recherches :)
 

Pièces jointes

  • affiche lignes Test.xlsm
    276.9 KB · Affichages: 6

TooFatBoy

XLDnaute Barbatruc
Parfaitement d'accord avec toi. Et ces soucis de formats de dates me causent bien des soucis.
Mais refaire mon Usine à gaz est un vrai "chantier" pour moi "bricoleur" même pas du dimanche lol :)
Je viens d'ouvrir ton fichier et c'est effectivement toujours le même problème, que tu as rencontré plusieurs fois, de "date" avec les "." qu'il faut commencer par remplacer par des "/", comme on l'a dit plusieurs fois et en particuliers dès le départ. ;)

Peut-être que ça vaudrait le coup de revoir cette partie du code pour enfin être débarrassé de ce "problème" qui alourdi inutilement ton UàG. 🤔
A mon avis il n'y en a pas pour plus de trente secondes de boulot... Me trompé-je ? 🤔
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
En effet, j'ai toujours gaffouillé dans mes formats de dates et mes bricolages ont fait que :
- j'ai des dates comme ceci : 03.05.2023 00:00:00
- j'ai des dates comme cela : 03.05.2023 00:00
Evidemment, le tri n'est pas fait pour les dates comme cela "03.05.2023 00:00"
Comme dit dans les 3 ou 4 fils précédents, le problème ce sont les "." à la place des "/" (et non "00:00" à la place de "00:00:00").


A noter à feuille d'or sur ta cheminée (pas sûr que tu aies une cheminée là-bas... LOL) :

Dans la partie date le séparateur est "/" et dans la partie horaire le séparateur est ":"
 

TooFatBoy

XLDnaute Barbatruc
Peut-être que ça vaudrait le coup de revoir cette partie du code pour enfin être débarrassé de ce "problème" qui alourdi inutilement ton UàG. 🤔
A mon avis il n'y en a pas pour plus de trente secondes de boulot... Me trompé-je ? 🤔
Tu peux déjà le vérifier sur une copie d'un de tes fichiers :
- ouvre VBE
- fais un Ctrl+<H>
- dans le premier champ saisis dd.mm.yyyy
- dans le deuxième champ saisis dd/mm/yyyy
- n'oublie pas de cocher "Projet en cours"

Ensuite, tu cliques sur "Suivant".

Si tu tombes sur une instruction dans laquelle tu dois faire le remplacement alors tu cliques sur "Remplacer", sinon tu cliques sur "Suivant".
Ainsi de suite jusqu'à avoir balayé tout le projet.

Ceci dit, ce n'est peut-être pas suffisant : peut-être qu'il y a du code qui transforme ce texte en date et qu'il faudrait donc peut-être supprimer.
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Tu peux déjà le vérifier sur une copie d'un de tes fichiers :
- ouvre VBE
- fais un Ctrl+<H>
- dans le premier champ saisis dd.mm.yyyy
- dans le deuxième champ saisis dd/mm/yyyy
- n'oublie pas de cocher "Projet en cours"

Ensuite, tu cliques sur "Suivant".

Si tu tombes sur une instruction dans laquelle tu dois faire le remplacement alors tu cliques sur "Remplacer", sinon tu cliques sur "Suivant".
Ainsi de suite jusqu'à avoir balayé tout le projet.

Ceci dit, ce n'est peut-être pas suffisant : peut-être qu'il y a du code qui transforme ce texte en date et qu'il faudrait donc peut-être supprimer.
Bjr TooFatBoy :)
Merci pour ton aide.
Je vais faire ça dans la journée
:)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bjr JHA, Bjr TooFatBoy, Bjr mapomme, Bjr laurent950, Bonjour à toutes et à tous :)

Merci à tous d'avoir été présents à ma demande.
Je vous en suis reconnaissant :)
Malheureusement aucune des pistes et solutions avancées n'étaient "applicable" dans mon "Usine à Gaz".

Mais il me fallait trouver la solution.
Cette nuit, j'ai fini par trouver :)
voici le code :
VB:
Sub Macro1()    'Range("a7:zz" & Range("A" & Rows.Count).End(xlUp).Row).Select
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveSheet.Unprotect Password:=""
[AC7].FormulaR1C1 = "=IF(RC[-19]="""","""",IF(RC[-19]=""NPR"",""NPR"",IF(RC[-19]=""RdV Fait"",""RdV Fait"",IF(RC[-19]=""RdV Fait Facturé"",""RdV Fait Facturé"",RC[-19]*1))))"
[AC7].Copy
[AC8:AC10000].Select
ActiveSheet.Paste
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'Calculate
[AC7:AC10000].Select
Selection.Copy
[J7].Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False

[AC:AC].ClearContents
[A1].Select
ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Il semble fonctionner parfaitement et les 2 lignes qui n'étaient pas triées le sont maintyenant

Il me reste un souci l'exécution du code est long... 1 à 2 mn
L'idéal serait de ne copier la formule "colonne AC" que jusqu'à la dernière ligne NON VIDE de la "colonne A"
Si vous aviez le bon code, ça m'arrangerait bien lol :)
Je joins le classeur qui fonctionne et je continue mes recherches
:)
 

Pièces jointes

  • affiche lignes Test2.xlsm
    309.4 KB · Affichages: 2
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bjr à tous :)
Le p'tit dernier :
VB:
Sub Macro1()    'Range("a7:zz" & Range("A" & Rows.Count).End(xlUp).Row).Select
Application.EnableEvents = False
Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual
ActiveSheet.Unprotect Password:=""
[AC7].FormulaR1C1 = "=IF(RC[-19]="""","""",IF(RC[-19]=""NPR"",""NPR"",IF(RC[-19]=""RdV Fait"",""RdV Fait"",IF(RC[-19]=""RdV Fait Facturé"",""RdV Fait Facturé"",RC[-19]*1))))"
'[AC7].FormulaR1C1 = "=IF(RIGHT(RC[-19],5)=""00:00"",RC[-19]&"":00"",RC[-19])"
'Calculate
[AC7].Copy
[AC8:AC10000].Select
ActiveSheet.Paste
Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'Calculate
[AC7:AC10000].Select
Selection.Copy
[J7].Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False

Columns("AC:AC").ClearContents
[A1].Select
ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.EnableEvents = True
Application.ScreenUpdating = True
'Application.Calculation = xlCalculationAutomatic
End Sub
Il me reste un souci l'exécution du code est long... 1 à 2 mn
L'idéal serait de ne copier la formule "colonne AC" que jusqu'à la dernière ligne NON VIDE de la "colonne A"
:)
 

Pièces jointes

  • affiche lignes Test4.xlsm
    281.9 KB · Affichages: 0

TooFatBoy

XLDnaute Barbatruc
L'idéal serait de ne copier la formule "colonne AC" que jusqu'à la dernière ligne NON VIDE de la "colonne A"
L'idéal serait surtout un classeur sans toutes tes verrues greffées au fur et à mesure pour palier des problèmes que tu t'es toi-même créés avec des formats tout ce qu'il y a de plus personnels.

L'idéal, comme on te l'a dit dès le départ, aurait été de tenter d'utiliser les TS (comme ça plus besoin de chercher la dernière ligne du tableau).

L'idéal aurait été que tu ne sois pas systématiquement encouragé dans toutes les mauvaises voies que tu prenais et que tu écoutes plutôt les bons conseils qui tentaient de te remettre sur la bonne voie.

L'idéal serait que tu écoutes et retiennes quand on te dit de ne pas utiliser les .Select, ou quand on te dit que -- est mieux que *1 (c'est pourtant un conseil de Job).

L'idéal serait... etc.


Maintenant que tu as mis tes cinq classeurs en production, tu te sens un peu bloqué, et c'est normal. :(
Maintenant il faut donc faire avec ce que tu as.


Cherche dans les fils en dessous sur les derniers jours, il y avait quelqu'un qui cherchait aussi la dernière ligne de son tableau.
[edit] Au temps pour moi : le fil auquel je pensais, c'était aussi toi qui faisais une recherche de la dernière ligne d'un tableau. [/edit]
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
L'idéal serait surtout un classeur sans toutes tes verrues greffées au fur et à mesure pour palier des problèmes que tu t'es toi-même créés avec des formats tout ce qu'il y a de plus personnels.

L'idéal, comme on te l'a dit dès le départ, aurait été de tenter d'utiliser les TS (comme ça plus besoin de chercher la dernière ligne du tableau).

L'idéal aurait été que tu ne sois pas systématiquement encouragé dans toutes les mauvaises voies que tu prenais et que tu écoutes plutôt les bons conseils qui tentaient de te remettre sur la bonne voie.

L'idéal serait que tu écoutes et retiennes quand on te dit de ne pas utiliser les .Select, ou quand on te dit que -- est mieux que *1 (c'est pourtant un conseil de Job).

L'idéal serait... etc.


Maintenant que tu as mis tes cinq classeurs en production, tu te sens un peu bloqué, et c'est normal. :(
Maintenant il faut donc faire avec ce que tu as.


Cherche dans les fils en dessous sur les derniers jours, il y avait quelqu'un qui cherchait aussi la dernière ligne de son tableau.
Effecivement, je suis bien d'accord :)
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 273
Membres
103 168
dernier inscrit
isidore33