Problème de modification occasionnelle de cellules après un tri
Bonjour à tous,
J'ai un soucis avec une macro que j'ai codé pour l'entreprise dans laquelle je suis. C'est une macro très spécifique aux besoins et je ne pourrait malheureusement pas vous la partager car les consignes sont stricts là dessus mais je vais essayer de vous l'expliquer en détail.
La procédure est la suivante, la macro se lance sur un tableur Excel comportant plusieurs lignes. Chaque ligne est un patient différent et pour chaque patient on à une 20aine de champs avec des valeurs.
Ces champs sont le typage du patient et chaque champ est de la forme "26:01" ou "42:01/42:02" ou "15:02/15:04/15:06" ...etc. Soit deux nombres séparés par ":" et parfois plusieurs codes séparés par "/".
La macro vient lire chaque champ du patient et pour certains elle rencontre un code qu'elle doit décoder pour l'afficher dans la cellule sous le même schéma que précédemment.
Elle compare ensuite avec une référence et calcul un score pour le patient puis passe au suivant.
A la fin du fichier les lignes sont triées selon le score de chacune pour présenter en premier ceux avec le meilleur.
Le code de tri est le suivant :
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Columns(lastCol - 2) , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveSheet.Sort.SortFields.Add Key:=Columns(lastCol - 1) , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveSheet.Sort.SortFields.Add Key:=Columns(lastCol) , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range(Cells(cellEntete.row, 1), Cells(lastrow, lastCol + 3).Address)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End WithJe tri donc selon trois colonnes (lastCol-2, lastCol-1 et lastCol).
Le problème est que certaines fois, assez rarement, après le tri final certaines cellules sont modifiées.
- Il s'agit uniquement de cellules comportant plusieurs codes (donc séparés par "/")
- Elles sont modifiées comme ceci, "42:01/42:03" devient "42:01/42:42" ; "15:02/15:04/15:06" devient "15:02/15:15" ; "12:01/12:05/12:06/12:25" devient "12:01/12:12"...
Comme vous voyez les codes sont ramenés à deux même s'il y en avait plus et le dernier numéro est toujours le même que le premier.
Ce problème ne peut pas venir du décodage car le score calculé avant de changer de patient est toujours bon donc à ce moment le code était complet.
Personnellement je penche pour un bug d'affichage d'Excel à cause des multiples ":" et "/" dans la même cellule. Le format des cellules est Texte donc je ne pense que ce que soit la cause.
Voilà si certains ont déjà eu ce problème merci de votre expérience et pour les pros d'Excel merci de votre avis
bonjour,
très difficile de t'aider sans voir le fichier ...
1) quel est le format de ces cellules ?
2) ces cellules contiennent des formules ?
1) quel est le format de ces cellules ?
Toutes les cellules sont au format Texte pour justement éviter que les données soient assimilées à des dates ou autre
2) ces cellules contiennent des formules ?
Non aucune formule dans le tableur
rebonjour,
essaie d'anonymiser ton classeur et si c'est le code de détermination du score qui est confidentiel, mets le classeur avec les données(y compris scores calculés) avant le tri et ton code de tri.
Merci beaucoup pour ton aide mais je ne pense pas que ce forum soit la solution la plus adaptée à mon problème et avec les restrictions que j'ai.
Je ne peux pas supprimer le sujet alors je met ton dernier message comme solution pour clore le débat.
Encore merci.