Changer format cellule de texte en chiffres (Sur une colonne)

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

G

Guillaume

Guest
je veux automatiser un changement de format de cellules mais VBA ne reproduit pas ce que je fais avec Excel seul.
LEs cellules sont à l'origine exportées de Siebel avec € et en format standard.
Version Excel pure:
1)je sélectionne la colonne
2) je vais dans le menu "remplacer", je choisis " €" par "" et du coup ma cellule prend déjà un format chiffre.

En VBA: la même procédure ne fait que remplacer mes " €" par "" mais les chiffres restent à gauche, donc Excel ne peut plas additionner les cellules.

Merci de votre aider et bonne soirée


Réponse de Ronan:
En + simple

Dim valeur As String
Dim valeur2 As Double
valeur = Range("a1").Value
valeur2 = Replace(valeur, " €", "", 1)
Range("a1").Value=valeur2

Nouvelle QUESTION:
bonjour Ronan le nocturne,

ta formule est ok sur une cellule mais comment l'appliquer sur une colonne entière stp?
Guillaume
 
Salut
Pour Avoir un code qui marche, tu peux esayer d'enregistrer une macro.
Pendant ton enregistrement, tu sélectionne ta colonne, tu fait ton changement de format, et tu valide
Ensuite, va voir ce que ca te donne dans VBA.
C'est une méthode un peu "bateau", mais qui à l'avantage de donner de bon résultats.
Bon courage
Arnaud
 
Bonjour Arnaud,

ce que j'expliquais hier, c'est que le gag c'est qu'en enregistrement ok mais en lancant la macro ainsi enregistrée ca ne marche pas! D'où la solution de Renan mais que je ne réussis aps à étendre à plus D'une cellule à la fois. Comme mon tableau à 4000 lignes il y a un hic!
Merci quand même
Guillaume
 
Bonjour
pour resoudre ton problème tu selectionnes la zone en question et tu fais
une boucle avec les instruction For each.....action...... next
et ton taitement s'appliquera à l' ensemnle de la zone.
Bon courage
Exemple
For Each c In Selection
c.Offset(0, 0).FormulaR1C1 = "=Rc[-2]-Rc[-1]"
c.Offset(0, 1).FormulaR1C1 = "=abs(Rc[-1])/Rc[-2]-1"
Next
 
Merci F,

ca ne marchait aps. J'ai trouvé sur un forum allemand la solution suivante que je recopie pour info:

Sub Zahlen_auslesen()
decimalseparation= ","
For i = 1 To 3
valeur = Cells(i, 1).Value 'Exemple A1 à A3
cellvaleur = ""

For k = 1 To Len(wert)
z = Mid(wert, k, 1)
If Not (Asc(z) > 47 And Asc(z) < 58) Then
If z = decimalseparation Then
If Not Asc(Mid(wert, k + 1, 1)) > 47 And Asc(Mid(wert, k + 1, 1)) < 58 Then
z = ""
End If
Else
z = ""
End If
End If
cellvaleur= cellvaleur& z
Next k

Cells(i, 2).Value = CDbl(zellwert) 'valeurs recopiées dans B1 bis B3
Next i

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
11
Affichages
812
Réponses
3
Affichages
774
Retour