Macro

Résolu
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je dois faire une macro, et je suis débutante. Transformer des Euros en K€ avec le sigle K€ après la valeur et sans décimal.

Voici le code que j'ai fait mais erreur 400, et je ne parviens pas à comprendre.

Sub essai()
Set Plage = Range("B1:B9999999")
FormatNumerique = "# ##0"
Total = 0
For Each cellule In Plage
If cellule.NumberFormat = FormatNumerique Then
End If
If IsNumeric(cellule) Then
cellule.Value = cellule.Value / 1000 & "K€"
End If
Next cellule
End Sub

Je vous remercie

A voir également:

4 réponses

Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

tu es hors ligne, réduit ta plage

Sub essai()
Set Plage = Range("B1:B1000")
FormatNumerique = "# ##0"
Total = 0
For Each cellule In Plage
If cellule.NumberFormat = FormatNumerique Then
End If
If IsNumeric(cellule) Then
cellule.Value = cellule.Value / 1000 & "K€"
End If
Next cellule
End Sub
1
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Mike, ça fonctionne mais j'ai toujours mes décimales, et là je bloque !!!!
0
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Mes cellules sont au départ en euros sans décimales et doivent être converties en K€ sans décimales aussi. Quelle galère !!!
Encore merci beaucoup....
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Tiens simplement comme cela, affectera automatiquement le format de la première cellule à la dernière non vide de la colonne

Sub essai()
Range(Range("B1"), Range("B1000").End(xlUp)).NumberFormat = "#,##0 K€"
End Sub
0
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai toujours mes décimales !!! là je suis un peu pommé. Merci beaucoup.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Si c'est juste pour l'affichage tu n'as pas besoin de macro.
Dans un format personnalisé ajouter un espace après le format voulu divise par 1000.

Donc avec en format personnalisé :
# ##0 " k"€

143528 s'affichera 144 k€ (avec l'arrondi au plus proche)
La cellule conserve sa valeur 143528 pour les calculs ultérieurs.

eric
0
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, j'ai réussi.
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Et si ta colonne était en format texte des fois ?
il est possible de la convertir simplement manuellement ou en complétant le code

Sub essai()
For n = 1 To Range("B65536").End(xlUp).Row
If Range("B" & n) <> "" Then Range("B" & n) = Range("B" & n) * 1
Next n
Range(Range("B1"), Range("B1000").End(xlUp)).NumberFormat = "#,##0 K€"
End Sub
0
caryan16 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, j'ai réussi. A bientôt
0