Macro

Résolu/Fermé
caryan16 Messages postés 7 Date d'inscription dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013 - 17 juin 2012 à 10:43
caryan16 Messages postés 7 Date d'inscription dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013 - 19 juin 2012 à 06:16
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 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
17 juin 2012 à 10:54
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 dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013
17 juin 2012 à 11:17
Merci Mike, ça fonctionne mais j'ai toujours mes décimales, et là je bloque !!!!
0
caryan16 Messages postés 7 Date d'inscription dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013
17 juin 2012 à 11:59
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 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
17 juin 2012 à 11:23
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 dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013
17 juin 2012 à 11:51
J'ai toujours mes décimales !!! là je suis un peu pommé. Merci beaucoup.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié par eriiic le 17/06/2012 à 12:21
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 dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013
19 juin 2012 à 06:16
Merci beaucoup, j'ai réussi.
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
17 juin 2012 à 15:04
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 dimanche 17 juin 2012 Statut Membre Dernière intervention 19 janvier 2013
19 juin 2012 à 06:15
Merci beaucoup, j'ai réussi. A bientôt
0