Transformer le contenu d'une cellule en VBA

Résolu/Fermé
jahawai Messages postés 223 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 12 mai 2020 - Modifié par jahawai le 21/05/2010 à 15:26
jahawai Messages postés 223 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 12 mai 2020 - 21 mai 2010 à 16:05
Bonjour,

Mon problème est assez simple et j'espère que vous pourrez m'aider.
J'ai un tableau rempli de valeurs du type "24.5165" que je voudrais transformer en "25%", grâce à une macro.

Pour l'instant, j'ai changé le type de format de mes cases en faisant cela :

Dim dercol20 As Byte 
Dim derline20 As Byte 
dercol20 = Range("B4").End(xlToRight).Column 
derline20 = Range("B4").End(xlDown).Row 

Dim k20 As Byte 
Dim h20 As Byte 

For k20 = 6 To dercol20 - 1 
For h20 = 4 To derline20 
Cells(h20, k20).Select 
With Selection 
.NumberFormat = "0" 
End With 
Next 
Next


Ce que je pensais faire après c'était quelquechose du style
Cells(h20,k20).Value = Cells(h20,k20).Value + "%" 


Cependant, ça ne marche pas et je pense que c'est notamment parce que maintenant mon format de case est défini comme un nombre.

Qu'en pensez-vous ?
Comment je peux faire ?

Merci d'avance pour votre aide

3 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 307
21 mai 2010 à 15:40
Bonjour,

j'ai essayé avec le signe + ça n'a pas marché, mais essaie plutôt avec le signe &, c'est normalement le signe de concaténation en VBA.

Cordialement.
0
jahawai Messages postés 223 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 12 mai 2020 11
21 mai 2010 à 15:47
Effectivement, le 1 marche mieux ! Merci déjà

Mais je ne suis pas sorti d'affaire.
Le problème c'est qu'à la place de 24.51 il va m'écrire 24.51% et non 25%.

J'ai essayé Cells(a,b).Value=Int(Cells(a,b).Value & "%" mais j'ai une erreur (incompatibilité de type)...

Une idée ?

Merci
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 307
21 mai 2010 à 15:52
Problème de parenthèses ^^
Cells(a,b)=Int(Cells(a,b)) & "%"


conviendra mieux.

D'aileurs, j'ai appris il y a pas si longtemps que ça qu'écrire Cells(a,b).Value et Cells(a,b) donne le même résultat car ".Value" est la propriété par défaut affectée à Cells ou à Range.
0
jahawai Messages postés 223 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 12 mai 2020 11
21 mai 2010 à 16:05
Au temps pour moi, ça fonctionne

Il faut supprimer la première partie de code que j'avais donné.
C'est à dire qu'il ne faut pas transformer le format de la cellule avant.
En fait c'est tout à fait logique...

Merci chossette en tous cas !

Sujet résolu
0