non "validation" d'un format de cellule choisi par boucle VBA
3 réponses
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é.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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é.
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
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
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
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
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
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
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