XL 2016 VBA - Problème de filtre sur colonne

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dudu2

XLDnaute Barbatruc
Bonjour

1643008546184.png

Le problème est le suivant:
- Je veux filtrer sur la colonne D.
- La valeur de filtre est 1714426200108 représenté sous forme 1,71443E+12 dans la cellule dont le format est "Standard".

Si je filtre sur 1714426200108 je n'obtiens aucun résultat.
Il faut que je filtre avec la valeur 1,71443E+12. qui peut signifier des valeurs très différentes.
Comment en VBA puis-je récupérer le contenu de la cellule sous sa forme affichée: 1,71443E+12 ?

Merci par avance.
 
Dernière édition:
Solution
Re,

C'est parce que votre cellule n'a pas de format particulier. Mettez un format numérique ou scientifique et ça passera.

Si je me réfère strictement à votre demande initiale :
Comment en VBA puis-je récupérer le contenu de la cellule sous sa forme affichée: 1,71443E+12 ?

La propriété Text de la cellule avec ou sans format devrait suffire, . Soit : 3,0122E+11

Dans votre macro :
VB:
Sub a()
    Dim S As String
    S = [A1].Text
    
    MsgBox S
End Sub

Cordialement
Bonjour,

VB:
Range("LaCellule").DisplayFormat.NumberFormat

Ou pour être plus juste :
Code:
format(range("A1"),range("A1").DisplayFormat.NumberFormat)
Ou qui semble fonctionner :
VB:
format(range("A1"),range("A1").NumberFormat)
Ou agrandissez la largeur de colonne et mettez un format numérique idoine.


Cordialement
 
Dernière édition:
Re,

Chez moi çeci fonctionne :
VB:
cdbl(format(range("A1"),range("A1").NumberFormat))
qui donne : 1714426200108 en valeur numérique

Range("A1").Value2 vous donnera directement : 1714426200108

Ne pas oublier que Format() renvoie du texte et non un nombre.

Cordialement
 
Re,

C'est parce que votre cellule n'a pas de format particulier. Mettez un format numérique ou scientifique et ça passera.

Si je me réfère strictement à votre demande initiale :
Comment en VBA puis-je récupérer le contenu de la cellule sous sa forme affichée: 1,71443E+12 ?

La propriété Text de la cellule avec ou sans format devrait suffire, . Soit : 3,0122E+11

Dans votre macro :
VB:
Sub a()
    Dim S As String
    S = [A1].Text
    
    MsgBox S
End Sub

Cordialement
 
Sauf à faire un code bidouille du genre:
VB:
Sub a()
    MsgBox FormatExposant([A1])
End Sub

Function FormatExposant(Cellule As Range) As String
    Dim d As Double
    Dim S As String
    Dim i As Integer
    
    S = CStr(Cellule.Value)
    If Len(S) >= 12 Then
        S = Left(S, 1) & "," & Mid(S, 2, 4) & "E+" & Len(S) - 1
    End If
    
    FormatExposant = S
End Function
 
@ Hasco,

Oui, j'ai lu tous tes posts.
Quant à moi j'ai bien précisé.
- La valeur de filtre est 1714426200108 représenté sous forme 1,71443E+12 dans la cellule dont le format est "Standard".
Je ne peux pas changer le format en nombre car le format Exposant disparait.
Je ne peux pas non plus le changer en format scientifique car alors il faut que je connaisse le nombre de décimales à préciser.

La propriété Text de la cellule avec ou sans format devrait suffire, . Soit : 3,0122E+11
Et en effet, cette propriété que je ne connaissais pas donne le résultat escompté sans avoir à modifier le format de la cellule.
Merci !
 
Dernière édition:
Je n'utilise quasiment jamais la fenêtre espion et je sais que je devrais pour faciliter le debug notamment, ni les points d'arrêt dont je ne sais pas me servir.

En tous cas, cette propriété Cellule.Text est une révélation pour moi et rétrospectivement je me rends compte qu'elle aurait pu me servir dans d'autres codes.
Merci encore pour cette découverte.
Bonne journée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
182
Réponses
16
Affichages
842
Réponses
16
Affichages
946
Retour