Convertir contenu cellule en nombre

  • Initiateur de la discussion Initiateur de la discussion bbobb
  • 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 !

bbobb

XLDnaute Occasionnel
Bonjour le Forum,
Je n'arrive pas à convertir le contenu de certaines cellules en nombre. J'ai intégré les lignes ci-dessous dans la macro :

For Each xCell In Selection
xCell.Value = xCell.Value
Next xCell

Ça marche très bien pour la cellule L27 mais pas pour la cellule AC28
En fait, ça ne marche pas lorsqu'il y a le signe "€" après le nombre.
Petit fichier joint pour l'exemple.
Évidemment, il y a des cellules fusionnées et je ne peux pas les changer...

Merci à ceux qui voudront bien se pencher sur le problème
bbobb
 

Pièces jointes

Re : Convertir contenu cellule en nombre

Salut bbobb, le forum,
tout d'abord, bien le bonjour ! Après la lecture de votre problème, de votre fichier et de votre code VBA, plusieurs constats m'apparaissent. Les voici :

1) Pour pouvoir utiliser ceci :
Code:
For Each xCell In Selection
vous devez au préalable faire une sélection de cellule. Bien que je n'aime pas cette manière de procéder, soit sélectionner une plage plutôt que de la nommer directement, elle fonctionne à condition de bien déterminer la zone de recherche.
Exemple pour nommer :
Code:
Set Plage = Range("A1:A5")
Sinon, pour sélectionner :
Code:
Cells(1,1).Select
ou
Code:
Cells(L,C).Select
2) Il serait judicieux de déclarer tous vos variables, particulièrement dans le cas de votre variable xCell. Une manière de procéder :
Code:
Dim xCell As Range

3) Au niveau de la conversion en chiffre, comme le mentionne masterdisco (que je salue au passage), il faut faire une opération. En écrivant
Code:
xCell.Value = xCell.Value
vous faites l'équivalent de QQCH = QQCH, ce qui ne crée rien de nouveau. L'idée son idée pour supprimer les caractères parasites est également judicieuse. Voici une version un peu plus courte :
Code:
xCell.Value = CDec(Replace(Replace(xCell.Value, " ", ""), "€", ""))

4) Plutot que de lancer 2 procédures, soit test et test2, pourquoi ne pas les intégrer à la même ?


Voici donc un code qui pourrait faire le travail :

VB:
Sub test()
Dim L As Long, C As Integer
Dim Valeur As Integer
Dim Cel

'Premiere recherche
Set Cel = Cells.Find("Total Nb paiements")
If Not Cel Is Nothing Then
    L = Cel.Row
    Set Cel = Cells.Find("Nombre de transactions")
    If Not Cel Is Nothing Then
        C = Cel.Column
        Cells(1, 1) = Cells(L, C)
        Valeur = Cells(1, 1).Value
    Else 'Si on ne trouve pas la bonne colonne, alors on passe à la recherche suivante
        GoTo Deuxieme_Recherche
    End If
Else 'Si on ne trouve pas la bonne ligne, alors on passe à la recherche suivante
    GoTo Deuxieme_Recherche
End If

'1) En déclarant la variable Valeur en integer, on s'assure du fait que ce soit un nombre
'2) Ensuite, avec le code ici, on enleve les caractères indésirables
Valeur = CDec(Replace(Replace(Valeur, " ", ""), "€", ""))

'2e recherche
Deuxieme_Recherche:

Set Cel = Cells.Find("Total TTC")
If Not Cel Is Nothing Then
    L = Cel.Row
    Set Cel = Cells.Find("Total")
    If Not Cel Is Nothing Then
        C = Cel.Column
        Cells(5, 1) = Cells(L, C)
        Valeur = Cells(5, 1).Value
    Else 'Si on ne trouve pas la bonne colonne, alors on sort
        Exit Sub
    End If
Else 'Si on ne trouve pas la bonne ligne, alors on sort
    Exit Sub
End If

Valeur = CDec(Replace(Replace(Valeur, " ", ""), "€", ""))

End Sub

Private Sub CommandButton1_Click()
test
End Sub

Au plaisir de vous relire,

Étienne
 
Dernière édition:
Re : Convertir contenu cellule en nombre

Bonsoir à tous,
Voilà un post riche d'enseignement pour un débutant en VBA comme moi.
Je n'ai pas tout compris (ça viendra), mais j'ai trouvé ce qu'il fallait pour que ça marche et vous remercie beaucoup.

Bonsoir le forum
Encore merci Masterdisco et Etienne2323

Bbobb
 
- 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

Retour