probleme macro toute bete

blond2comet

XLDnaute Nouveau
bonjour,

je n'y connais pas grand chose (voire rien) en VBA et essaie de faire la manip suivante sur un fichier.

Je veux que lorsque j'effectue un changement sur ma worksheet, pour les colonnes données:

1- que le "." soit remplacé par une ","
2- que le chiffre soit mis en format pourcentage.

J'ai donc utilisé l'enregistreur de macro.
quand j'utilise ma macro (en manuel ou en worksheet change), elle tourne sans arrêt et surtout n'applique pas le format %...:confused:

je pense que je peux supprimer tout le début jusqu'à la dernière ligne Active.Window scroll column??
je ne comprends pas non plus pourquoi tous les critères de remplacement sont "False"...
en enregistrant ma macro, j'ai pourtant utilisé un fichier qui contenait des "."

help! :(

Merci par avance

Code:
'
' pourcentage Macro
' Macro enregistrée le 29/11/2006
'

'
    Range("N:N,Q:R").Select
    Range("Q1").Activate
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    Range("N:N,Q:R,U:U,W:W").Select
    Range("W1").Activate
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Style = "Percent"
 

Pierrot93

XLDnaute Barbatruc
Re : probleme macro toute bete

Bonjour Blond2comet

essaye le code ci dessous a mettre dans le module de la feuille concernée :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
    Target.Replace What:=".", Replacement:=","
    Target.Style = "Percent"
Application.EnableEvents = True
End Sub

bonne fin d'après midi
@+
 
Dernière édition:

blond2comet

XLDnaute Nouveau
Re : probleme macro toute bete

merci beaucoup mais malheureusement ca ne fonctionne pas...:(

voila le code que j'ai mis


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Range("N:N,Q:R,U:U,W:W").Select
    Application.EnableEvents = False
    Target.Replace What:=".", Replacement:=","
    Target.Style = "Percent"
    Application.EnableEvents = True
End Sub

le . n'est pas remplacé par la virgule par contre, le format % est appliqué (j'ai vérifié en remplacant manuellement . par ,)
 

Pierrot93

XLDnaute Barbatruc
Re : probleme macro toute bete

Bonjour Blond2comet

avec la ligne ci dessous :

Code:
Range("N:N,Q:R,U:U,W:W").Select

tu sélectionnes les colonnes ??? A priori aucun intérêt...

Sachant que Target est égal à la cellule modifiée, ca n'a pas d'effet sur les autres cellules. Est ce que dans la cellule précise que tu modifies, le point n'est pas remplacé ? Chez moi ca marche correctement mais dans mes paramètres régionaux, c'est le"." qui est déclaré en séparateur.

Bonne journée
@+
 

blond2comet

XLDnaute Nouveau
Re : probleme macro toute bete

bah euh en fait, si, c'est important que mes colonnes soient selectionnées:

le fichier sur lequel je veux faire la macro est en fait une base, avec des renvois dans tous les sens vers d'autres feuilles. Elle me sert à faire des tableaux récap, totaux etc

tous les mois, je copie sur ma feuille une grande quantité de données qui proviennent d'un fichier brut.
ce que je souhaite exactement c'est que quand je colle des données dans la feuille, dans les colonnes N,Q, R,U,W ca change le point en virgule et applique le format pourcentage.


je m'apercois que j'aurais sans doute expliquer ca des le debut, ca aurait evité tout quiproquo.
 

Pierrot93

XLDnaute Barbatruc
Re : probleme macro toute bete

Re Blond2comet

essaye comme ceci alors :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("N:N,Q:R,U:U,W:W")) Is Nothing Then
    Application.EnableEvents = False
        Target.Replace What:=".", Replacement:=","
        Target.Style = "Percent"
    Application.EnableEvents = True
End If
End Sub

par contre effectivement, si tu colles des données brutes issues d'un fichier txt, ca peut poser problème. Il est sans doute préférable de convertir les données au préalable. A voir...

@+
 

Pierrot93

XLDnaute Barbatruc
Re : probleme macro toute bete

Re

bizarre tout ca, je viens de refaire un test à nouveau et chez moi c'est OK, remplacement et format UNIQUEMENT dans les CELLULES des COLONNES INDIQUEES.

Essaie déjà peut être en renseignant manuellement les données.

@+
 

blond2comet

XLDnaute Nouveau
Re : probleme macro toute bete

après test de remplissage manuel (lol)

voici ce qui arrive:
- pour un chiffre saisi du style 0.456, il devient 0,456 (donc pas de %)
- pour un chiffre saisi du style 2, il devient 200%

il y a donc un souci quelquepart dans la suite des actions non?
 

Discussions similaires

  • Question
Microsoft 365 Formules
Réponses
2
Affichages
419

Statistiques des forums

Discussions
312 176
Messages
2 085 959
Membres
103 065
dernier inscrit
HB ARPF 95