| Par harzer, le 30 Oct 2007, 13:32 |
Revenir en haut de page |
|
Bonjour à tous,
Je souhaiterais créer une macro qui pourrait sélectionner une colonne (dans mon cas c'est la colonne T), elle va parcourir cette colonne pour vérifier s’il n’y a pas de cellule qui contient la valeur "0" (zéro), dans ce cas, elle remplacera le zéro par le mot "PC"
Un exemple pour vous expliquer mon problème vaut mieux qu'un long discours.
Ma colonne T contient les valeurs suivantes:
96
92
92
90
88
81
81
52
50
0
0
Pour que la macro fonctionne correctement, elle doit remplacer les deux cellules se trouvant à la fin de ma colonne T, dans ce cas mon résultat sera :
96
92
92
90
88
81
81
52
50
PC
PC
D’avance merci pour votre aide. |
|
 |
| Par harzer, le 30 Oct 2007, 17:26 |
Revenir en haut de page |
|
Bonjour,
Comme je n'ai pas eu de réponse et que j'ai trouvé une solution approximative, je la mets à votre disposition ou cas ou cela intéresserais quelqu’un d'autre:
Voici ma solution :
| Code: | Dim Ligne As Integer ' déclaration de la variable ligne
Ligne = Range("T1").SpecialCells(xlCellTypeLastCell).Row
For Ligne = 1 To Ligne 'Fait defiler les lignes jusqu'a la dernière ligne
If Cells(Ligne, 16).Value = "0" Then 'la colonne T se trouve à la 16e place
''Ici on test si la cellule de la colonne T est égale à "0" (zéro)
Cells(Ligne, 16).Value = "PC"
'Dans ce cas, on remplace la valeur trouvée "0" (zéro) par "PC" dans
'toutes les cellules de la colonne T.
End If
Next Ligne |
Je reste à votre disposition si vous avez une solution meilleure et rapide.
Amicalement. |
|
 |
| Par Horny, le 07 Nov 2007, 20:34 |
Revenir en haut de page |
|
Salut,
Désolé du manque de réponse, le forum est plutôt vide ces temps-ci, et je viens moins souvent...
En tout cas, merci d'avoir posté ta soluce
@+++ |
|
 |
| Par Cédric, le 08 Nov 2007, 19:39 |
Revenir en haut de page |
|
Salut et bienvenue sur les forums
Y'a pas, va vraiment falloir que je passe ici plus souvent... pas normal de ne pas avoir de réponse rapide
Mais comme dit Horny, merci! C'est sympa d'avoir posté ta solution! Elle est déjà rapide et la boucle est très utile, surtout lorsqu'il y a beaucoup de conditions.
Maintenant dans ton cas, il existe une autre solution qui se vaut aussi, et qui semble plus adaptée dans ton cas:
| Code: | Columns("T").Replace What:="0", Replacement:="PC", LookAt:=xlWhole
|
Plus adaptée... car tu ne cherches à remplacer que les "0" par "PC". Sachant également qu'il existe d'autres options utiles à cette fonction (comme par ex, la possibilité de tenir compte de la casse) c'est une fonction simple qu'il ne faut pas oublier.
@ bientôt,
Cédric |
|
 |