Problème de Format de cellule

Je rencontre un problème certainement de format de cellule, voir tableau joint. Ces infos sont issues d'un logiciel Navision, je fais un copier coller dans Navision puis je ramène les lignes dans Excel.

Comment se fait il que les cellules B3, B4 et B6 ne s'additionnent pas ? Je suis obligée de ressaisir les données dans chaque cellule pour que l'addition se fasse. Je pense que c'est un problème avec le format mais je n'arrive pas à le résoudre.

Est ce que quelqu'un a déja rencontré ce souci ? Si oui, comment dois je faire ?

Merci d'avance pour vos réponses et votre aide.

28tableau.xlsx (8.04 Ko)

Bonjour Sabinou,

tes données en B3 ; B4 ; B6 sont alignées à gauche car c'est des nombres sous forme de texte ; quand c'est des vrais nombres, c'est aligné à droite.

dhany

Bonjour Dhany,

Merci pour ta réponse.

Je viens d'aligner les données de B3, B4 et B6 à droite et cela ne fonctionne toujours pas. Faut il faire autre chose en plus de les aligner à droite ?

Merci d'avance.

le format des cellules est Standard, et normalement, l'alignement est fait automatiquement : à gauche pour le texte ; à droite pour les nombres ; j'essaye de trouver une solution pour ton fichier, mais pour l'instant, ça ne marche pas ; j'ai mis un format nombre avec 2 chiffres après la virgule et séparateur de milliers, mais malgré ça, les nombres restent alignés à gauche !

(et pourtant, l'alignement utilisé est Standard, c'est pas un alignement à gauche)

dhany

C'est ça....

J'ai fait le même changement de format et effectivement cela ne marche pas...

Je pense que c'est le séparateur de milliers initial qui pose problème. En le supprimant manuellement ça marche. Maintenant quand le tableau comporte plusieurs centaines ou plusieurs milliers de lignes, on ne peut pas le faire manuellement.

patiente un long moment : j'essaye de trouver une solution ; dès qu'ce sera fait, je posterai un autre message.

dhany

Génial.

Encore merci et bonne journée à toi

Bonjour,

Tes données Navision sont sous forme de texte pour certaines valeurs qui ne peuvent pas être converties (rapidement) en nombres (espaces pour les milliers).

Tes données Navision que tu copies, sont elles issues d'un fichier txt ou encore csv ?

Dans l'exemple joint, j'ai utilisé Récupérer et transformer (Power Query) intégré à Excel 2016.

C'est rapide et (simple) d'utilisation.

A te relire.

Cdlt.

41tableau.xlsx (23.02 Ko)

@Sabinou

ça y'est, j'ai trouvé la solution :

68tableau.xlsm (14.40 Ko)

ouvre le fichier ; fais Ctrl d

Alt F11 pour voir le code VBA, puis revenir sur Excel

dhany

Re,

Bonjour dhany,

Une autre proposition VBA à étudier.

Cdlt

9tableau-v2.xlsm (21.43 Ko)
Public Sub ConvertStringToNumber()
'Ctrl + Maj + x
Dim n As Long, Rng As Range, Cell As Range
    n = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
    Set Rng = ActiveSheet.Cells(2, 2).Resize(n - 1)
    For Each Cell In Rng
        Cell.Replace Chr(160), vbNullString
        Cell.Value = CDbl(Cell.Value)
    Next Cell
End Sub

Nota : J'ai omis de préciser que la solution Power query nécessite une actualisation (Ruban Actualiser tout…)

Tout d'abord un grand merci beaucoup à tous les deux.

Dhany,

Effectivement, j'ai suivi tes instructions, cela fonctionne. En revanche, après avoir fait ALT + F11, qu'est ce que je dois faire de ce bout de programme qui s'ouvre.... Je ne suis pas trop de la partie et là je suis un peu perdue....

Faut il que je copie ce programme quelque part ?

Jean Eric,

Lorsque je suis dans Navision, je sélectionne mes lignes et je fais copier les lignes puis je vais dans un tableau vierge excel et je fais coller.... Malheureusement, je ne sais pas si je suis en .txt ou en .csv...

De plus, je ne connais pas Power Query.

* si ton vrai fichier Excel a l'extension .xlsx alors il faut d'abord le convertir en .xlsm pour pouvoir y mettre du code VBA

* ensuite, il faut insérer un module vierge, puis dans Module1, copier / coller mon code VBA

si c'est compliqué pour toi, je peux te le faire si tu m'envoies ton vrai fichier.

dhany

ajout : bien sûr, tu dois envoyer ton vrai fichier (sans données confidentielles) ; pour cela, tu peux utiliser le bouton « Ajouter des fichiers » qui est situé sous la fenêtre d'édition du post ; si c'est trop compliqué d'anonymiser le fichier, tu peux me l'envoyer en MP.

si tu préfères le faire toi-même, mais que t'as besoin de plus d'infos sur la façon de convertir ton fichier en .xlsm tu peux m'demander.

dhany

C’est super sympa Dhany, le souci est que je suis amenée à avoir plein d’autres fichiers qui rencontrent ce problème. Je vais essayer de voir avec l’informaticien de mon entreprise. Peut être que lui ça lui parlera plus 😉

alors dans ce cas, je te souhaite bonne chance pour la suite !

dhany

Re,

la question était de savoir si sous Navision (ERP ?), tu pouvais exporter tes données (à copier) dans un fichier Excel, txt ou csv, pour l'importer directement dans Excel, via Récupérer et transformer (Power Query).

Cdlt.

Bonjour Sabinou,

attention : dans mon fichier Excel précédent du 24 août, j'me suis aperçu que pour les nombres qui ont comme séparateur de milliers un espace insécable, ça enlève les centimes !

* 1 952,55 devient 1 952,00

* 13 601,57 devient 13 601,00

* 8 430,28 devient 8 430,00

cela à cause de la virgule, que j'ai oublié de convertir en point dans le code VBA !

c'est corrigé dans cette nouvelle version :

10tableau.xlsm (14.50 Ko)

qui contient maint'nant ce code VBA :

Option Explicit

Sub Essai()
  Dim dlig&, lig&: Application.ScreenUpdating = 0
  dlig = Cells(Rows.Count, 2).End(xlUp).Row
  For lig = 2 To dlig
    With Cells(lig, 2)
      If InStr(.Value, Chr$(160)) > 0 Then
        .Value = Val(Replace$(Replace$(.Value, Chr$(160), ""), ",", "."))
      End If
      .NumberFormat = "# ##0.00"
    End With
  Next lig
End Sub

c'est la ligne la plus longue qui a été modifiée : 2 Replace$() au lieu d'un seul

(pas d'autre modif)

dhany

Rechercher des sujets similaires à "probleme format"