Nouveau classeur + explications à l'intérieur
http://www.cjoint.com/c/GAnml5UKLCi
Testé sous Windows 10 - Excel 2016 - Configurations à la française dans
le panneau de configurations de Windows.
Chez moi, tout est fonctionnel!
Nouveau classeur + explications à l'intérieur
http://www.cjoint.com/c/GAnml5UKLCi
Testé sous Windows 10 - Excel 2016 - Configurations à la française dans
le panneau de configurations de Windows.
Chez moi, tout est fonctionnel!
Nouveau classeur + explications à l'intérieur
http://www.cjoint.com/c/GAnml5UKLCi
Testé sous Windows 10 - Excel 2016 - Configurations à la française dans
le panneau de configurations de Windows.
Chez moi, tout est fonctionnel!
Il est arrivé quelque chose à ton fichier...
B ) À l'aide de la liste déroulante du menu, j'applique le format
"Comptabilité"
mettez quelques chiffres dans quelques cellules que vous mettrez en
forme avec le bouton "Format nombre comptabilité" (pas la flèche à
coté) chez moi il ressemble à un billet et des pièces
C ) Je vérifie le symbole monétaire dans la fenêtre des formats en
utilisant le menu contextuel - format de cellule D ) Je constate
qu'il n'y a que le symbole "€" et € (Français - France) E )
J'enregistre ce fichier avec la ligne de code qu'il y a dans mon
classeur ThisWorkbook.SaveAs ThisWorkbook.FullName, FileFormat:R,
Local:=True
F ) Je ferme le classeur
G ) Surprise : la cellule affiche toujours
le bon format de cellule, exactement le même qu'elle a reçu.
Ma question : Quel traitement a-t-il reçu pour que tu arrives à avoir
le format que tu veux transformer?
Pour ce qui est de la macro, j'utiliserais plutôt ceci: NbLignes > ActiveSheet.UsedRange.Rows.Count A ) La notion de "UsedRange" est
déficiente sur certaines versions d'Excel, pas sur les dernières
cependant.
B ) La macro que je soumets traite seulement les cellules ayant un
format numérique, par conséquent plus rapide si les données ne sont
pas toutes contigûes.
'----------------------------------------------------------
Sub Test()
Dim DerLig As Long, DerCol As Long
Dim Rg As Range, C As Range, F As String
Dim X As Long
Dim Cherche As String, Remplace As String
'Tes formats de cellules
Cherche = "_(€* # ##0.00_);_(€* (# ##0.00);_(€* ""-""??_);_(@_)"
Remplace = "_-* #,##0.00 [$€-fr-FR]_-;-* #,##0.00 [$€-fr-FR]_-;_-* ""-""?? [$€-fr-FR]_-;"
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'Adapte le nom de la feuille
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With
For Each C In Rg.SpecialCells(xlCellTypeConstants, 1)
F = C.NumberFormat
If F = Cherche Then
C.NumberFormat = Remplace
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'----------------------------------------------------------
Il est arrivé quelque chose à ton fichier...
B ) À l'aide de la liste déroulante du menu, j'applique le format
"Comptabilité"
mettez quelques chiffres dans quelques cellules que vous mettrez en
forme avec le bouton "Format nombre comptabilité" (pas la flèche à
coté) chez moi il ressemble à un billet et des pièces
C ) Je vérifie le symbole monétaire dans la fenêtre des formats en
utilisant le menu contextuel - format de cellule D ) Je constate
qu'il n'y a que le symbole "€" et € (Français - France) E )
J'enregistre ce fichier avec la ligne de code qu'il y a dans mon
classeur ThisWorkbook.SaveAs ThisWorkbook.FullName, FileFormat:R,
Local:=True
F ) Je ferme le classeur
G ) Surprise : la cellule affiche toujours
le bon format de cellule, exactement le même qu'elle a reçu.
Ma question : Quel traitement a-t-il reçu pour que tu arrives à avoir
le format que tu veux transformer?
Pour ce qui est de la macro, j'utiliserais plutôt ceci: NbLignes > ActiveSheet.UsedRange.Rows.Count A ) La notion de "UsedRange" est
déficiente sur certaines versions d'Excel, pas sur les dernières
cependant.
B ) La macro que je soumets traite seulement les cellules ayant un
format numérique, par conséquent plus rapide si les données ne sont
pas toutes contigûes.
'----------------------------------------------------------
Sub Test()
Dim DerLig As Long, DerCol As Long
Dim Rg As Range, C As Range, F As String
Dim X As Long
Dim Cherche As String, Remplace As String
'Tes formats de cellules
Cherche = "_(€* # ##0.00_);_(€* (# ##0.00);_(€* ""-""??_);_(@_)"
Remplace = "_-* #,##0.00 [$€-fr-FR]_-;-* #,##0.00 [$€-fr-FR]_-;_-* ""-""?? [$€-fr-FR]_-;_-@_-"
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'Adapte le nom de la feuille
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With
For Each C In Rg.SpecialCells(xlCellTypeConstants, 1)
F = C.NumberFormat
If F = Cherche Then
C.NumberFormat = Remplace
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'----------------------------------------------------------
Il est arrivé quelque chose à ton fichier...
B ) À l'aide de la liste déroulante du menu, j'applique le format
"Comptabilité"
mettez quelques chiffres dans quelques cellules que vous mettrez en
forme avec le bouton "Format nombre comptabilité" (pas la flèche à
coté) chez moi il ressemble à un billet et des pièces
C ) Je vérifie le symbole monétaire dans la fenêtre des formats en
utilisant le menu contextuel - format de cellule D ) Je constate
qu'il n'y a que le symbole "€" et € (Français - France) E )
J'enregistre ce fichier avec la ligne de code qu'il y a dans mon
classeur ThisWorkbook.SaveAs ThisWorkbook.FullName, FileFormat:R,
Local:=True
F ) Je ferme le classeur
G ) Surprise : la cellule affiche toujours
le bon format de cellule, exactement le même qu'elle a reçu.
Ma question : Quel traitement a-t-il reçu pour que tu arrives à avoir
le format que tu veux transformer?
Pour ce qui est de la macro, j'utiliserais plutôt ceci: NbLignes > ActiveSheet.UsedRange.Rows.Count A ) La notion de "UsedRange" est
déficiente sur certaines versions d'Excel, pas sur les dernières
cependant.
B ) La macro que je soumets traite seulement les cellules ayant un
format numérique, par conséquent plus rapide si les données ne sont
pas toutes contigûes.
'----------------------------------------------------------
Sub Test()
Dim DerLig As Long, DerCol As Long
Dim Rg As Range, C As Range, F As String
Dim X As Long
Dim Cherche As String, Remplace As String
'Tes formats de cellules
Cherche = "_(€* # ##0.00_);_(€* (# ##0.00);_(€* ""-""??_);_(@_)"
Remplace = "_-* #,##0.00 [$€-fr-FR]_-;-* #,##0.00 [$€-fr-FR]_-;_-* ""-""?? [$€-fr-FR]_-;"
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'Adapte le nom de la feuille
DerLig = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find("*", LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With
For Each C In Rg.SpecialCells(xlCellTypeConstants, 1)
F = C.NumberFormat
If F = Cherche Then
C.NumberFormat = Remplace
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'----------------------------------------------------------