Format de cellule
Bonjour à tous
Je dois traiter un fichier d'un fournisseur ( chaussures) et dans sa colonne taille les données apparaissent dans la barre de formule sous la forme d'un décimale (41.3333 ou 42.666667 etc) mais dans la cellule elles sont bien formatées sous la forme de fraction (41 1/3 ou 42 2/3 etc..)
Donc visuellement y a pas de soucis.
Mais je dois importer ces données avec mon logiciel dans la base de données de mon site marchand ( prestashop) et là le problème c'est que lors de l'import la donnée importée est sous la forme décimale et ce n'est pas joli d'avoir une paire de chaussure taille 45,33. J'aurais préféré avoir 45 1/3.
J'ai essayé de formater et /ou de remplacer ces données mais rien n'y fait ( à part faire un remplacement manuel dans la barre de formule puis de mettre en format texte - mais j'ai plusieurs centaines de références je ne peux donc pas le faire à la main.
Avez vous une astuce ou autre pour me permettre de modifier cela rapidement et simplement.
MERCI.
Bonsoir TofDeParis,
Voici un code qui permettra la mise à jour
Sub MàJFraction()
Dim dLig As Long, Lig As Long
Dim IntPointure As Single, DecPointure As Single
Dim sPointure As String
dLig = Range("A" & Rows.Count).End(xlUp).Row
For Lig = 2 To dLig
' Vérifier si c'est un nombre
If Not IsNumeric(Range("B" & Lig)) Then GoTo Suite
' Sinon
IntPointure = Int(Range("B" & Lig).Value)
DecPointure = Round(Range("B" & Lig) - IntPointure, 2)
Select Case DecPointure
Case 0.33
sPointure = IntPointure & " 1/3"
Case 0.5
sPointure = IntPointure & " 1/2"
Case 0.67
sPointure = IntPointure & " 2/3"
Case Else
sPointure = IntPointure
End Select
' Remplacer la cellule
Range("B" & Lig).Value = sPointure
' ou écrire ailleurs
Range("E" & Lig).Value = sPointure
Suite:
Next Lig
End Sub@+
Bonsoir BunoM45,
Ta solution ne fonctionne pas pour moi.
Cela me crée bien une nouvelle colonne avec les pointures en 1/3, 2/3 ... mais dans la barre de formule ( en haut d'excel ) c'est toujours des nombres décimaux et j'ai l'impression que mon logiciel d'interface avec prestashop me prend ces valeurs pour l'importation ( il ne semble pas prendre le format d'affichage de la cellule en compte.
Si tu as une autre solution ou si je mis prend mal; je suis preneur...
Encore merci pour ton aide
Bonjour,
J'ai dû appliquer un format texte sur mes cellules avant exécution du code, je pense.
Pour que ce soit du texte, il faut ajouter un apostrophe avant
' Remplacer la cellule
Range("B" & Lig).Value = "'" & sPointure
' ou écrire ailleurs
Range("E" & Lig).Value = "'" & sPointure@+
Merci beaucoup.
En mettant en texte avant de lancer la macro cela fonctionne meme mieux qu'avec la nouvelle mouture.
Tu vas m'éviter de longue erreur de copier coller.
Je n'ai pas les connaissances suffisante pour analyser complètement ton code mais tu pourrais me dire ce qu'il fait.
Encore merci pour ton aide
Re,
Le code parcours toutes les lignes de la colonne B, récupère la partie entière du chiffre en déduit la partie décimale
Et en fonction de la décimale, ajoute la fraction qui va bien