Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

non "validation" d'un format de cellule choisi par boucle VBA

3 réponses
Avatar
Antoine
Bonjour à tous

Dans un programme, j'essaie de faire appliquer aux numéros de sécurité
sociale d'une liste, un format spécifique lié aux chiffres qui peuvent être
manquant, avec une boucle du type :
For a = Range("gmci_1").Row To Range("gmci_4").Row
With Cells(a, 2)
Select Case Len(Cells(a, 2))
... Case 5
.NumberFormat = "#"" ""##"" ""##" ........
Le problème que je rencontre est que, si le format retenu parvient bien
jusqu'à la cellule, celui-ci n'est pas appliqué à l'affichage ! Un contrôle
manuel par Format/Cellule permet de vérifier que la procédure a
effectivement bien fonctionné. Pour le faire afficher correctement, il faut
aller dans chaque cellule, et faire un double clic suivi de Enter.
Je ne sais pas comment contourner ce problème de validation du format des
cellules pourtant bien choisi et transféré.

Merci pour votre aide

Antoine

3 réponses

Avatar
isabelle
bonjour Antoine,

j'ai fait un test avec les chiffres suivant, sur un nouveau classeur, et tout fonctionne bien.

12345
123
12345
123
12345

Sub Macro1()
For a = 1 To 5
With Cells(a, 1)
Select Case Len(Cells(a, 1))
Case 5
.NumberFormat = "#"" ""##"" ""##"
End Select
End With
Next
End Sub

peut tu faire ce test sur un nouveau classeur ?
tu travaille sur quel version d'excel ?

isabelle

Bonjour à tous

Dans un programme, j'essaie de faire appliquer aux numéros de sécurité
sociale d'une liste, un format spécifique lié aux chiffres qui peuvent être
manquant, avec une boucle du type :
For a = Range("gmci_1").Row To Range("gmci_4").Row
With Cells(a, 2)
Select Case Len(Cells(a, 2))
... Case 5
.NumberFormat = "#"" ""##"" ""##" ........
Le problème que je rencontre est que, si le format retenu parvient bien
jusqu'à la cellule, celui-ci n'est pas appliqué à l'affichage ! Un contrôle
manuel par Format/Cellule permet de vérifier que la procédure a
effectivement bien fonctionné. Pour le faire afficher correctement, il faut
aller dans chaque cellule, et faire un double clic suivi de Enter.
Je ne sais pas comment contourner ce problème de validation du format des
cellules pourtant bien choisi et transféré.

Merci pour votre aide

Antoine




Avatar
Antoine
Bonjour Isabelle

Effectivement, j'ai copié l'ensemble de la procédure Select Case
(ci-dessous) sur une nouvelle feuille, en mettant le nom à des cellules, et
cela fonctionne parfaitement. Je dois donc avoir qquechose dans le reste de
la procédure qui interfère, mais où ?

Tout penaud, permettez-moi de retirer ma question !
(Sans doute aurais-je pu avoir l'idée de tester cette partie séparément ...

mea culpa, et merci

Antoine

' met les N° SS du tableau à un format adapté au nombre de chiffres
For a = Range("gmci_1").Row To Range("gmci_4").Row
With Cells(a, 2)
Select Case Len(Cells(a, 2))
Case 1
.NumberFormat = "0"
Case 2
.NumberFormat = "#"" ""#"
Case 3
.NumberFormat = "#"" ""##"
Case 4
.NumberFormat = "#"" ""##"" ""#"
Case 5
.NumberFormat = "#"" ""##"" ""##"
Case 6
.NumberFormat = "#"" ""##"" ""##"" ""##"
Case 7
.NumberFormat = "#"" ""##"" ""##"" ""##"
Case 8
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""#"
Case 9
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""##"
Case 10
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"
Case 11
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""#"
Case 12
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""##"
Case 13
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""###"
Case 14
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""###"" / ""#"
Case 15
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""###"" /
""##"
Case Else
End Select
End With
Next
End Sub
Avatar
isabelle
si tu peut mettre la(es) procédure(s) complete je pourrais la testé.
sur quel version travaille tu ?

isabelle

Bonjour Isabelle

Effectivement, j'ai copié l'ensemble de la procédure Select Case
(ci-dessous) sur une nouvelle feuille, en mettant le nom à des cellules, et
cela fonctionne parfaitement. Je dois donc avoir qquechose dans le reste de
la procédure qui interfère, mais où ?

Tout penaud, permettez-moi de retirer ma question !
(Sans doute aurais-je pu avoir l'idée de tester cette partie séparément ...

mea culpa, et merci

Antoine

' met les N° SS du tableau à un format adapté au nombre de chiffres
For a = Range("gmci_1").Row To Range("gmci_4").Row
With Cells(a, 2)
Select Case Len(Cells(a, 2))
Case 1
.NumberFormat = "0"
Case 2
.NumberFormat = "#"" ""#"
Case 3
.NumberFormat = "#"" ""##"
Case 4
.NumberFormat = "#"" ""##"" ""#"
Case 5
.NumberFormat = "#"" ""##"" ""##"
Case 6
.NumberFormat = "#"" ""##"" ""##"" ""##"
Case 7
.NumberFormat = "#"" ""##"" ""##"" ""##"
Case 8
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""#"
Case 9
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""##"
Case 10
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"
Case 11
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""#"
Case 12
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""##"
Case 13
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""###"
Case 14
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""###"" / ""#"
Case 15
.NumberFormat = "#"" ""##"" ""##"" ""##"" ""###"" ""###"" /
""##"
Case Else
End Select
End With
Next
End Sub