Re : code remplace points par virgule
Bonsoir a toutes et tous.
J'ai rame pas mal avec ce prob de . a remplacer par une ,
Ne te fatigue pas avec une macro en automatique il y a des cellules oubliees.
Le bout de macro ci dessous fonctionne impeccablement bien car il fait cellule par cellule et là ca fonctionne. C'est un moniteur lors d'un stage Excel qui l'a faite a cause de tous les problemes precedents.
Je ne peux pas plus t'aide car le VBA et moi on est pas copain.
'Le code ci-dessous empeche de voir le defilement des cellules quand la macro travaille
Application.ScreenUpdating = False
'FOR EACH = pour chaque cellule de la plage, Cells (N°de ligne, N°de colonne)
'Activ cell.column = la colonne ou se trouve le curseur (pour une colonne fixe)
'For Each Cellule In Range(Cells(1, ActiveCell.Column), _
Cells(65536, ActiveCell.Column).End(xlUp))
'prise en compte de toutes les cellules de la feuille (en partant de A1)
For Each Cellule In Range("a1").CurrentRegion
'selection de la cellule en cours
'exemple cellule contient 123.45
Cellule.Select
If IsError(Cellule) Then
Application.StatusBar = "erreur en cellule : " & Cellule.Address
MsgBox "erreur en cellule : " & Cellule.Address
End
Else
Application.StatusBar = Cellule.Address & " : " & Cellule
End If
'Attente de 1 seconde entre chaque cellule(formule dessous)
'Application.Wait Now + TimeValue("00:00:01")
'calcul du point dans la cellule en cours
'ici en position 4
Position_Décimale = InStr(1, Cellule, ".")
If Position_Décimale > 0 Then
'on ne prends en compte que les cellules qui contiennent 1 point
If IsNumeric(Left(Cellule, Position_Décimale - 1)) Or _
Position_Décimale = 1 Then
'prends en compte
'1.que les cellules dont la partie qui precede le point, est numerique
'exemple : 123.45
'2.les cellules qui ont un point en 1ere position exemple .45
'position decimale -1 : ici 3
'Left(Cellule, Position_Décimale - 1): correspond a la partie entiere : ici 123
'Len(Cellule) : correspond au nombre de caractere de la cellule, ici 6
'Len(Cellule) - Position_Décimale)correspond au nombre de caractere
'de la partie decimale, ici 2 (= 6-4)
'Right(Cellule, Len(Cellule) - Position_Décimale)correspond a la partie decimale, ici 45
'CDec = conversion en valeur decimale
Selection = CDec(Left(Cellule, Position_Décimale - 1) & "," & _
Right(Cellule, Len(Cellule) - Position_Décimale))
'le resultat final = partie entiere suivi d'une virgule suivi de la partie decimale
' ici 123,45
End If
End If
Next Cellule
'restauration de la barre d'etat
Application.StatusBar = False
'selection de la premiere cellule en cours
Range("a1").Select
'message de fin de traitement qui donne le nbre de cellules, de colonnes et de lignes traitées
MsgBox Range("a1").CurrentRegion.Cells.Count & " Cellules ont été traitées" & vbCrLf & _
Range("a65536").End(xlUp).Row & " Lignes" & vbCrLf & _
Range("iv1").End(xlToLeft).Column & " Colonnes" & vbCrLf & _
"Pour la feuille " & ActiveSheet.Name
End Sub