Bonjour à tous,
Encore un problème dont je ne trouve pas la solution.
.NumberFormat = "0 \ M²" ne fonctionne pas dans ce cas là, pourtant la feuille n'est pas protéger et je trouve bien l'adresse de la cellule à formatée
Ce même code dans un autre bouton et sur le même tableau fonctionne parfaitement. Je recherche la ligne différament ma cela ne vient pas de là car je la trouve aussi dans le code de dessus ; j'ai bien vérifié
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 Private Sub Worksheet_Change(ByVal Target As Range) Dim R As String, L As Integer, T As Integer, U As String, F As Integer, cellule As Range If Not Application.Intersect(Target, Range("B49:c66")) Is Nothing Then F = ActiveCell.Row R = Sheets("feuil1").Cells(F, 2) With Sheets("Feuil5") Set cellule = .Range("A2:A150").Find(R, LookAt:=xlWhole) T = cellule.Row 'Formatage des cellules selon l'unité U = .Cells(T, 3) End With With Sheets("Feuil1") If U = "M²" Then .Cells(F, 5).NumberFormat = "0 \ M²" .Cells(F, 6).NumberFormat = "0 \ M²" ElseIf U = "M³" Then .Cells(F, 5).NumberFormat = "0 \ M³" .Cells(F, 6).NumberFormat = "0 \ M³" ElseIf U = "ML" Then .Cells(F, 5).NumberFormat = "0 \ ML" .Cells(F, 6).NumberFormat = "0 \ ML" ElseIf U = "F" Then .Cells(F, 5).NumberFormat = "0 \ F" .Cells(F, 6).NumberFormat = "0 \ F" ElseIf U = "Litres" Then .Cells(F, 5).NumberFormat = "0 \ L" .Cells(F, 6).NumberFormat = "0 \ L" ElseIf U = "Unt." Then .Cells(F, 5).NumberFormat = "0 \ Unt" .Cells(F, 6).NumberFormat = "0 \ Unt" ElseIf U = "Tonnes" Then .Cells(F, 5).NumberFormat = "0 \ T" .Cells(F, 6).NumberFormat = "0 \ T" ElseIf U = "Kg" Then .Cells(F, 5).NumberFormat = "0 \ Kg" .Cells(F, 6).NumberFormat = "0 \ Kg" End If End With End If End Sub
Les cellules à formater sont en format standard, j'ai essayé cellule vide et cellule avec une valeur, rien n'y fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 With Sheets("Feuil1") 'Formatage des cellules selon l'unité L = .Range("i44").End(xlUp).Offset(1, 0).Row .Cells(L, 9) = Me.Text2.Text .Cells(L, 10) = Me.Text3.Text .Cells(L, 11) = Me.Text4.Text If Me.List1.Text = "M²" Then .Cells(L, 11).NumberFormat = "0 \ M²" ElseIf Me.List1.Text = "M³" Then .Cells(L, 11).NumberFormat = "0 \ M³" ElseIf Me.List1.Text = "ML" Then .Cells(L, 11).NumberFormat = "0 \ ML" ElseIf Me.List1.Text = "Forfait" Then .Cells(L, 11).NumberFormat = "0 \ F" ElseIf Me.List1.Text = "Litres" Then .Cells(L, 11).NumberFormat = "0 \ L" ElseIf Me.List1.Text = "Unt." Then .Cells(L, 11).NumberFormat = "0 \ Unt" ElseIf Me.List1.Text = "Tonnes" Then .Cells(L, 11).NumberFormat = "0 \ T" ElseIf Me.List1.Text = "Kg" Then .Cells(L, 11).NumberFormat = "0 \ Kg" End If End With
Quelqu'un aurait-il une idée ?
Merci pour votre aide
Je viens de m’apercevoir que ces lignes de code fonctionnent, alors pourquoi celles-ci et pas les autres ?
J'ai bien Vérifier, U contient bien la bonne valeur et la condition s'exécute bien au bon endroit, mais ça plante au formatage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ElseIf U = "Tonnes" Then .Cells(F, 5).NumberFormat = "0 \ T" .Cells(F, 6).NumberFormat = "0 \ T"
en fait les cellules sont formatées si l'unité à inscrire ne comporte qu'une seule lettre, par exemple si je transforme T en Tonnes, ça ne fonctionne plus
Quelqu'un aurait-il la solution ?
merci pour votre aide
Partager