Incrémenter l'ActivcCell dans une boucle

titibobo

XLDnaute Nouveau
Bonjour,

Afin de transformer des virgules en point j'utilise la fonction replace associée avec ActiveCell (seule la seule fonction qui fonctionne)

Sub change_le_point()
ActiveCell.NumberFormat = "@"
ActiveCell = Replace(ActiveCell, ",", ".")
End Sub

Cela fonctionne bien sur une cellule par contre sur une série en colonne je bute sur comment incrémenter la position de l'activeCell.

Exemple dans le fichier joint avec une boocle while / wend.

Sub change_la_virgule_boucle()

Range("A1").Select

Dim virgule As Integer
virgule = 1
ActiveCell = Cells(virgule, 1)

While Cells(virgule, 2) <> ""
ActiveCell.NumberFormat = "@"
Cells(virgule, 1) = Replace(ActiveCell, ",", ".")
virgule = virgule + 1
Wend

End Sub

Ici cela décale bien vers le bas mais ça me remplace mes valeurs par la valeur en A1 ... :(

Merci de votre aide.
 

Pièces jointes

  • virgulepoint.xlsm
    16.1 KB · Affichages: 41

Yaloo

XLDnaute Barbatruc
Re : Incrémenter l'ActivcCell dans une boucle

Bonsoir titibobo,

Avec ceci :

VB:
Sub change_la_virgule()
Dim c As Range, Plage As Range
Set Plage = Range("A1:A" & [A1].End(xlDown).Row)
For Each c In Plage
  c.NumberFormat = "@"
  c.Value = Replace(c.Value, ",", ".")
Next
End Sub

A te relire

Martial
 

Yaloo

XLDnaute Barbatruc
Re : Incrémenter l'ActivcCell dans une boucle

Re,

Tel que toi tu voyais la chose, je pense :

VB:
Sub change_la_virgule_boucle()
Range("A1").Select
While ActiveCell <> ""
    ActiveCell.NumberFormat = "@"
    ActiveCell = Replace(ActiveCell, ",", ".")
    ActiveCell.Offset(1).Select
Wend
End Sub

On peut aussi l'écrire comme ça :

VB:
Sub change_la_virgule()
Dim i&
For i = 1 To [A1].End(xlDown).Row
  Cells(i, 1).NumberFormat = "@"
  Cells(i, 1) = Replace(Cells(i, 1), ",", ".")
Next
End Sub

A+
 

Discussions similaires

Réponses
25
Affichages
915

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia