Autres Comment enlever ces listes de choix

pygocentus

XLDnaute Nouveau
Bonsoir,
Actuellement je travail sur un fichier dont j'ai en quelque sorte faiT un extrait (copier/coller pour les colonnes A et C ). Le problème est simple comment pourvoir faire des calculs ou tri à partir des cellules des colonnes A et C sans avoir des résultats aberrants comme en E2 et F2 et dans la colonne G. je pense que le problème vient des données récupérées dans les colonnes A et C qui propose des listes de choix. Le fichier original étant très volumineux je me vois mal retaper toutes les valeurs par cellules sachant qu'elles sont réactualisées quotidiennement. Merci pour vos lumières car moi je suis éteint, j'ai utilisé toutes mes allumettes
 

Pièces jointes

  • Extrait.xlsx
    9.6 KB · Affichages: 5
Solution
Comme il devra le faire à chaque import, j'ai copié sur vous et lui ai fait un fichier indépendant pour activer la macro par un raccourci sur la feuille concernée.
On ne pourra pas dire que les XLDnautes Nouveaux ne sont pas bien traités par les plus anciens !
1686408034669.gif

Dudu2

XLDnaute Barbatruc
Bonsoir,
1 - Tes nombres n'en sont pas, c'est du texte.
2 - De plus le texte contient le signe "€".
3 - De plus le signe "€" est précédé d'un espace insécable qui ressemble à un espace mais qui n'en est pas un.
Alors c'est au niveau de la récup que quelque chose ne va pas et qu'il faudrait améliorer pour récupérer des valeurs numériques.

Sinon pour corriger ça sur ton fichier, perso je ne sais pas faire sauf à passer par des colonnes intermédiaires utilisant une formule du genre =CNUM(SUBSTITUE(C2;CAR(160)&"€";"")).
Puis:
  • Soit copier la colonne intermédiaire en valeur dans la colonne originale, et, s'il n'y est pas déjà, définir le bon format, monétaire s'il faut conserver les "€".

  • Soit faire les calculs directement sur les colonnes intermédiaires pour éviter les recopies.
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pygocentrus, Dudu,
Un peu à labour ... :)
Dans la même idée que la première idée de Dudu, un essai en PJ avec deux nouvelles colonnes :
VB:
Ventes :
=CNUM(SUBSTITUE(SUBSTITUE(A2;",";"");" €";""))/100
Gains :
=CNUM(SUBSTITUE(SUBSTITUE(C2;",";"");" €";""))/100
Ratio :
=SIERREUR(G2/B2;"")

Deux autres idée :
1- Changer l'importation pour être compatible d' XL, si c'est possible.
2- traiter les données en VBA pour faire la conversion juste après l'importation.
 

Pièces jointes

  • Extrait (1).xlsx
    10 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Le même en macro. Il suffit d'appuyer sur le bouton pour convertir la page. Avec :
VB:
Sub Convertir()
    Dim T, i%
    T = [A1].CurrentRegion
    For i = 2 To UBound(T)
        T(i, 1) = Val(Replace(Replace(T(i, 1), ",", ""), " €", "")) / 100
        T(i, 3) = Val(Replace(Replace(T(i, 3), ",", ""), " €", "")) / 100
        If T(i, 2) <> 0 Then T(i, 6) = T(i, 3) / T(i, 2)
    Next i
    [A1].Resize(UBound(T, 1), UBound(T, 2)) = T
    [D2] = Application.Sum([A:A]): [E2] = Application.Sum([C:C])
End Sub
 

Pièces jointes

  • Extrait (1).xlsm
    16.9 KB · Affichages: 0

job75

XLDnaute Barbatruc
Avec la solution précédente les colonnes A et C restent des textes.

Pour y remédier :
VB:
Sub Convertir()
Dim ncol%, tablo, i&, j%, v
ncol = 3
With [A1].CurrentRegion.Resize(, ncol)
    tablo = .Resize(, ncol)
    For i = 1 To UBound(tablo)
        For j = 1 To ncol
            v = Replace(tablo(i, j), Chr(160) & "€", "")
            If IsNumeric(v) Then tablo(i, j) = CDbl(v)
    Next j, i
    .Value = tablo
End With
End Sub
 

Pièces jointes

  • Extrait(1).xlsm
    19.2 KB · Affichages: 0

Dudu2

XLDnaute Barbatruc
Comme il devra le faire à chaque import, j'ai copié sur vous et lui ai fait un fichier indépendant pour activer la macro par un raccourci sur la feuille concernée.
On ne pourra pas dire que les XLDnautes Nouveaux ne sont pas bien traités par les plus anciens !
1686408034669.gif
 

Pièces jointes

  • Traiter Feuille.xlsm
    22.9 KB · Affichages: 5

pygocentus

XLDnaute Nouveau
Bonsoir,
1 - Tes nombres n'en sont pas, c'est du texte.
2 - De plus le texte contient le signe "€".
3 - De plus le signe "€" est précédé d'un espace insécable qui ressemble à un espace mais qui n'en est pas un.
Alors c'est au niveau de la récup que quelque chose ne va pas et qu'il faudrait améliorer pour récupérer des valeurs numériques.

Sinon pour corriger ça sur ton fichier, perso je ne sais pas faire sauf à passer par des colonnes intermédiaires utilisant une formule du genre =CNUM(SUBSTITUE(C2;CAR(160)&"€";"")).
Puis:
  • Soit copier la colonne intermédiaire en valeur dans la colonne originale, et, s'il n'y est pas déjà, définir le bon format, monétaire s'il faut conserver les "€".

  • Soit faire les calculs directement sur les colonnes intermédiaires pour éviter les recopies.
Bonjour Pygocentrus, Dudu,
Un peu à labour ... :)
Dans la même idée que la première idée de Dudu, un essai en PJ avec deux nouvelles colonnes :
VB:
Ventes :
=CNUM(SUBSTITUE(SUBSTITUE(A2;",";"");" €";""))/100
Gains :
=CNUM(SUBSTITUE(SUBSTITUE(C2;",";"");" €";""))/100
Ratio :
=SIERREUR(G2/B2;"")

Deux autres idée :
1- Changer l'importation pour être compatible d' XL, si c'est possible.
2- traiter les données en VBA pour faire la conversion juste après l'importation.
 

pygocentus

XLDnaute Nouveau
Merci à tous pour votre contribution et au champion dudu il a juste fallu que je remplace les espaces insécables par des espaces normaux avec un rechercher remplacer et t tout fonctionne bien depuis. je pense que je vais faire une macro comme ça je serai tranquille pour la suite. Encore mille fois merci pour votre aide. Juste une petite question au passage comment Dudu a repéré les espaces insécables ?
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin