Problème de formatage de cellules avec VBA

dmoluc

XLDnaute Occasionnel
Bonjour à Tous,

J'essais de formater des cellules sous conditions et ça plante sans que j'arrive à trouver pourquoi
Voilà le code pour une condition, et j'ai l'erreur "impossible de définir la propriété NumberFormat de la classe Range"
Code:
If ListBox35.Text = "M²" Then
Cells(L, C).NumberFormat = "General ""M²"""
End If

Voilà le code complet, j'arrive bien à inscrire la valeur du textbox85 dans la cellule, mais pas à la formater avec VBa

Code:
Private Sub CommandButton10_Click()
With Sheets("Programme des travaux")
Dim L As Long, C As Long
C = 4
L = Range("A36").End(xlUp).Row
Cells(L, C).Value = TextBox85.Value
Unload UserForm1
If ListBox35.Text = "M²" Then
Cells(L, C).NumberFormat = "General ""M²"""
End If
End With
End Sub

Est il possible par exemple de faire : Forma = ListBox35.Text et ensuite "format de la cellule = Forma" ?, cela m'éviterait pas mal de si imbriqués :)

Merci d'avance pour votre aide

cordialement Didier
 

Modeste geedee

XLDnaute Barbatruc
Re : Problème de formatage de cellules avec VBA

Bonsour®
Bonjour à Tous,

J'essais de formater des cellules sous conditions et ça plante sans que j'arrive à trouver pourquoi
Voilà le code pour une condition, et j'ai l'erreur "impossible de définir la propriété NumberFormat de la classe Range"
Code:
If ListBox35.Text = "M²" Then
Cells(L, C).NumberFormat = "General ""M²"""
End If

Voilà le code complet, j'arrive bien à inscrire la valeur du textbox85 dans la cellule, mais pas à la formater avec VBa

Code:
Private Sub CommandButton10_Click()
With Sheets("Programme des travaux")
Dim L As Long, C As Long
C = 4
L = Range("A36").End(xlUp).Row
Cells(L, C).Value = TextBox85.Value
Unload UserForm1
If ListBox35.Text = "M²" Then
Cells(L, C).NumberFormat = "General ""M²"""
End If
End With
End Sub

Est il possible par exemple de faire : Forma = ListBox35.Text et ensuite "format de la cellule = Forma" ?, cela m'éviterait pas mal de si imbriqués :)

Merci d'avance pour votre aide

cordialement Didier
  • tel que définit ci-dessus l'instruction cells(....) est non qualifiée puisqu'à l'interieur d'une structure With
il faut écrire :
.Cells(L, C) xx bla-bla xxxxxxxx' noter le "." au début.
  • ensuite
l'utilisation de l'enregistreur aurait donné la syntaxe correcte pour le format :
xxxxxx.NumberFormat = "General"" m²"""
noter l'espace avant m², et aucun espace aprés General(sinon division par 10^3)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Problème de formatage de cellules avec VBA

Bonjour dmoluc, Modeste, geedee,

Un p'ti fichier serait le bienvenu. Sinon un point au premier abord:

1) On utilise With Sheets("Programme des travaux") mais nulle part dans le code on ne préfixe un range pour référencer un range de cette feuille (du type .Cells(L, C).Value = TextBox85.Value ou bien .Cells(L, C).NumberFormat = "General ""M²""")
 
Dernière édition:

dmoluc

XLDnaute Occasionnel
Re : Problème de formatage de cellules avec VBA

Merci pour ces infos
j'ai réutilisé l'enregistreur automatique et modifier légèrement le code et maintenant cela fonctionne


Code:
With Sheets("Programme des travaux")

Dim L As Long, C As Long
C = 4
L = Range("A36").End(xlUp).Row
Cells(L, C).Value = TextBox85.Value
Unload UserForm1
With Cells(L, C)
ActiveSheet.Unprotect
If ListBox35 = "M²" Then
.NumberFormat = "#,##0.0 ""M²"""
End If
If ListBox35 = "M³" Then
.NumberFormat = "#,##0.0 ""M³"""
End If
If ListBox35 = "Forfait" Then
.NumberFormat = "#,##0.0 ""F"""
End If
If ListBox35 = "ML" Then
.NumberFormat = "#,##0.0 ""ML"""
End If
If ListBox35 = "Unitée" Then
.NumberFormat = "#,##0.0 ""Unt."""
End If
If ListBox35 = "Tonne" Then
.NumberFormat = "#,##0.0 ""T"""
End If
If ListBox35 = "Kg" Then
.NumberFormat = "#,##0.0 ""Kg"""
End If
If ListBox35 = "Litre" Then
.NumberFormat = "#,##0.0 ""L"""
End If
End With

End With

Il y avait la protection de la feuille qui metter un peu le bazard mais le fait de changer le format a tout débloquer

Encore merci pour votre aide

UserForm5, Bouton renseigner le planning
Voilà le fichier

http://cjoint.com/?3HmkSrOcon1

cordialement
 

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16