Bonjour à tous.
J'aimerais écrire une petite procédure évènementielle qui me permette d'imposer un format dans une cellule dès qu'on en change la valeur. Je m'explique :
J'ai une plage de cellule concernée, disons sur ma Feuil1, la plage A1:H5
Toutes les données à entrer dans cette plage sont numériques (nombres compris entre 0 et 50)
J'aimerais, lorsque je rentre une valeur dans la première ligne de ma plage (donc dans une des cellules A1 à H1), que le format du nombre affiche 3 décimales si la valeur est strictement inférieure à 1, et que le format reste en standard si le nombre entré est supérieur ou égal à 1.
Jusque là, j'ai réussi à me débrouiller, j'ai écris ce petit bout de code qui fonctionne (peut-être existe t-il quelque chose de plus simple encore ? )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub Worksheet_Change(ByVal Target As Range) Dim Ligne1 As Range Set Ligne1 = Range("A1:H1") For Each cell In Ligne1 If cell < 1 Then cell.NumberFormat = "0.000" Else: cell.NumberFormat = "General" End If Next End Sub
Mais là où ça se complique pour moi, c'est que je veux appliquer un format imposé dans les lignes du reste de la plage (donc la plage A2:H5) en fonction du nombre entré dans la première ligne. Un exemple sera plus parlant :
Si j'entre le nombre 0,5 dans la cellule A1 (qui s'affichera donc "0,500"), je veux que toutes les cellules de ma plage sous cette cellule A1 (donc A2 à A5) s'affichent avec une décimale, et si le nombre entré en A1 est une autre valeur que 0,5, les cellules A2 à A5 s'affichent sans décimales. Et ce, pour chaque colonne de ma plage dont le format sera dépendant du nombre entré dans la première cellule de la colonne correspondante.
J'ai écris un bout de code à la suite de celui indiqué plus haut avec des boucles for... next, ça fonctionne mais c'est relativement long (ma plage est beaucoup plus grande dans la réalité que celle que j'indique plus haut) et je me demandais s'il n'était pas possible d'utiliser une autre méthode comme for each ... ou un tableau à deux dimensions peut-être ... mais là, mes connaissances sont assez limitées.
Je vous remercie par avance de l'aide ou des conseils que vous pourrez m'apporter.
Joloma
Partager