Macro

Résolu
caryan16 Messages postés 7 Statut Membre -  
caryan16 Messages postés 7 Statut Membre -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. caryan16 Messages postés 7 Statut Membre
       
      Merci Mike, ça fonctionne mais j'ai toujours mes décimales, et là je bloque !!!!
      0
    2. caryan16 Messages postés 7 Statut Membre
       
      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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. caryan16 Messages postés 7 Statut Membre
       
      J'ai toujours mes décimales !!! là je suis un peu pommé. Merci beaucoup.
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. caryan16 Messages postés 7 Statut Membre
       
      Merci beaucoup, j'ai réussi.
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. caryan16 Messages postés 7 Statut Membre
       
      Merci beaucoup, j'ai réussi. A bientôt
      0