Macro

Résolu
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

4 réponses

  1. 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. Merci Mike, ça fonctionne mais j'ai toujours mes décimales, et là je bloque !!!!
    2. 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....
  2. 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
    1. J'ai toujours mes décimales !!! là je suis un peu pommé. Merci beaucoup.
  3. Contributeur
    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
    1. Merci beaucoup, j'ai réussi.
  4. 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
    1. Merci beaucoup, j'ai réussi. A bientôt