Microsoft 365 Changer format cellule_VBA

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

hbb

XLDnaute Occasionnel
Bonjour à tous,
J'ai une feuille sur laquelle j'importe des données.
==> Les nombres de sont pas reconnus (format texte probablement) alors que le format renseigné pour les cellules est bien "standard"
On voit bien le triangle vert dans le coin de chaque cellule.

Pour que les valeurs soient reconnues (dans une fonction somme par exemple), je peux soit :
- activer chaque cellule et faire uniquement "entrée" mais ça va me prendre 3 heures tous les jours...
- intégrer un changement de format dans mon code VBA
J'ai essayé avec Selection.NumberFormat = "0" mais ça ne fonctionne pas.

Quelqu'un aurait une idée ?
merci d'avance,


1719675051629.png
 
Bonjour hbb

Si les nombres ne dépassent pas 999€ sinon il faut supprimer l'espace des milliers

Il "suffit" de mettre la valeur 1 dans une cellule, de la copier
De sélectionner toutes les cellules souhaitées et de faire un
Collage spécial -> Valeurs par mutiplication

A+
 
Bonjour hbb

voici un code à essayer :

Sub Test()
For i = 1 To 10
Range("F" & i) = CDbl(Range("F" & i))
Next i
End Sub

à adapter tes colonnes et tes lignes.

Sinon tu ajoutes directement la fonction CDbl() lors de l'importation de données. Tu régleras le problème à la source.
 
Bonsoir,
merci beaucoup à tous pour vos conseils.
J'avoue ne pas avoir réussi en suivant ces méthodes...
Avec 300 lignes et 50 colonnes, j'ai essayé de faire tourner une boucle i pour les lignes (suivant proposition de Phébus)
Par contre, pour enchainer d'une colonne à la suivante, je suis bloqué (la variante j = 1 to 50 ne fonctionne pas pour des colonnes A-B-C etc....

Au cas où... merci
Bonne soirée
 
Bonsoir,
merci beaucoup à tous pour vos conseils.
J'avoue ne pas avoir réussi en suivant ces méthodes...
Avec 300 lignes et 50 colonnes, j'ai essayé de faire tourner une boucle i pour les lignes (suivant proposition de Phébus)
Par contre, pour enchainer d'une colonne à la suivante, je suis bloqué (la variante j = 1 to 50 ne fonctionne pas pour des colonnes A-B-C etc....

Au cas où... merci
Bonne soirée
Re

Voici le code à adapter à tes colonnes et à tes lignes :

Sub Test()
For i = 1 To 500
For j = 1 To 50
Cells(i, j) = CDbl(Cells(i, j))
Next j
Next i
End Sub
 
Puisque ".Value=--.Value" ne fonctionne pas, voici une autre proposition :
VB:
Sub test()
    For Each Cellule In Range("A1:D10")     ' Mettre l'adresse de la plage désirée
        If Cellule.Value <> "" Then Cellule.Value = --Cellule.Value
    Next
End Sub
 
- 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
8
Affichages
676
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
462
Réponses
14
Affichages
517
Réponses
12
Affichages
1 K
Retour