OVH Cloud OVH Cloud

Excel macros

5 réponses
Avatar
Igor M.
Quelqu'un pourrait-il me dire comment cr=E9er une macro=20
Excel qui, de fa=E7on r=E9p=E9titive modifierait les valeurs=20
contenues dans les cellules d'une colonne. Par exemple,=20
la colonne est constitu=E9e de valeurs en format standard=20
telles que -25,12 EUR que je voudrais transformer en=20
25,12.=20
Je lance l'enregistreur de macros, s=E9lectionne le mode=20
relatif puis me positionne sur la 1=E8re cellule de ma=20
colonne. Avec la souris je me positionne dans la barre de=20
formule pour =E9diter la valeur: touche clavier FIN, puis 4=20
fois la touche clavier RETOUR ARRIERE. J'ai effac=E9 EUR et=20
l'espace qui le pr=E9c=E8de. Maintenant touche clavier HOME=20
puis touche clavier SUPPR. Je valide avec ENTREE puis me=20
positionne sur la cellule suivante avec FLECHE BAS.=20
Lorsque je lance ma macro sur la cellule suivante, tout=20
ce que j'obtiens est la recopie de la cellule que je=20
viens d'=E9diter, comme si les commandes d'=E9dition ne=20
pouvaient =EAtre incluse dans une macro. Que se passe-t'il??
Merci =E0 qui m'aidera.

5 réponses

Avatar
ChrisV
Bonjour Igor M.

Sur la plage de cellules sélectionnées...

Sub converT()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ", c) - 1))
Next c
End Sub


ChrisV


"Igor M." a écrit dans le message de
news: 631901c3e5c5$c6a9ca40$
Quelqu'un pourrait-il me dire comment créer une macro
Excel qui, de façon répétitive modifierait les valeurs
contenues dans les cellules d'une colonne. Par exemple,
la colonne est constituée de valeurs en format standard
telles que -25,12 EUR que je voudrais transformer en
25,12.
Je lance l'enregistreur de macros, sélectionne le mode
relatif puis me positionne sur la 1ère cellule de ma
colonne. Avec la souris je me positionne dans la barre de
formule pour éditer la valeur: touche clavier FIN, puis 4
fois la touche clavier RETOUR ARRIERE. J'ai effacé EUR et
l'espace qui le précède. Maintenant touche clavier HOME
puis touche clavier SUPPR. Je valide avec ENTREE puis me
positionne sur la cellule suivante avec FLECHE BAS.
Lorsque je lance ma macro sur la cellule suivante, tout
ce que j'obtiens est la recopie de la cellule que je
viens d'éditer, comme si les commandes d'édition ne
pouvaient être incluse dans une macro. Que se passe-t'il??
Merci à qui m'aidera.
Avatar
Igor M.
-----Message d'origine-----
Bonjour Igor M.

Sur la plage de cellules sélectionnées...

Sub converT()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ",
c) - 1))

Next c
End Sub

Merci ChrisV,

Je comprends à peu près ce que vous voulez faire:
appliquer une transformation de chaînes dans une boucle
For Next correspondant à une zone sélectionnée.
Je ne suis pas familier (c'est peu dire) avec VB et ne
sais absolument pas mettre en oeuvre votre solution:
comment accéder à VB pour placer ce code (dans VB, le
menu Fichier ne me propose pas NOUVEAU). J'ai essayé de
créer un fichier code VB en créant une pseudo macro avec
le clavier, puis, avec un copier/coller d'effacer le code
ainsi créé et de le remplacer par le vôtre. Ca ne marche
pas, ça serait trop simple.
N'est-il vraiment pas possible d'enregistrer dans une
macro créée au clavier, les touches d'édition?
Merci tout de même.
Cordialement.
Igor M.

ChrisV


"Igor M." a écrit
dans le message de

news: 631901c3e5c5$c6a9ca40$
Quelqu'un pourrait-il me dire comment créer une macro
Excel qui, de façon répétitive modifierait les valeurs
contenues dans les cellules d'une colonne. Par exemple,
la colonne est constituée de valeurs en format standard
telles que -25,12 EUR que je voudrais transformer en
25,12.
Je lance l'enregistreur de macros, sélectionne le mode
relatif puis me positionne sur la 1ère cellule de ma
colonne. Avec la souris je me positionne dans la barre de
formule pour éditer la valeur: touche clavier FIN, puis 4
fois la touche clavier RETOUR ARRIERE. J'ai effacé EUR et
l'espace qui le précède. Maintenant touche clavier HOME
puis touche clavier SUPPR. Je valide avec ENTREE puis me
positionne sur la cellule suivante avec FLECHE BAS.
Lorsque je lance ma macro sur la cellule suivante, tout
ce que j'obtiens est la recopie de la cellule que je
viens d'éditer, comme si les commandes d'édition ne
pouvaient être incluse dans une macro. Que se passe-
t'il??

Merci à qui m'aidera.


.



Avatar
ChrisV
Re,

...comment accéder à VB pour placer ce code...


Copier le code Sub converT()
Clic-droit sur un onglet quelconque du classeur puis, Visualiser le code
Dans la nouvelle fenêtre, par les menus, Insertion/Module
Coller, dans la fenêtre principale (en dessous de Général)
Alt+F11 pour retourner dans le classeur Excel
Sélectionner la zone à traiter
Par les menus, Outils/Macro/Macros...
Sélectionner la macro converT, puis Exécuter


ChrisV


"Igor M." a écrit dans le message de
news: 618101c3e5d3$2b1b5ea0$

-----Message d'origine-----
Bonjour Igor M.

Sur la plage de cellules sélectionnées...

Sub converT()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ",
c) - 1))

Next c
End Sub

Merci ChrisV,

Je comprends à peu près ce que vous voulez faire:
appliquer une transformation de chaînes dans une boucle
For Next correspondant à une zone sélectionnée.
Je ne suis pas familier (c'est peu dire) avec VB et ne
sais absolument pas mettre en oeuvre votre solution:
comment accéder à VB pour placer ce code (dans VB, le
menu Fichier ne me propose pas NOUVEAU). J'ai essayé de
créer un fichier code VB en créant une pseudo macro avec
le clavier, puis, avec un copier/coller d'effacer le code
ainsi créé et de le remplacer par le vôtre. Ca ne marche
pas, ça serait trop simple.
N'est-il vraiment pas possible d'enregistrer dans une
macro créée au clavier, les touches d'édition?
Merci tout de même.
Cordialement.
Igor M.

ChrisV


"Igor M." a écrit
dans le message de

news: 631901c3e5c5$c6a9ca40$
Quelqu'un pourrait-il me dire comment créer une macro
Excel qui, de façon répétitive modifierait les valeurs
contenues dans les cellules d'une colonne. Par exemple,
la colonne est constituée de valeurs en format standard
telles que -25,12 EUR que je voudrais transformer en
25,12.
Je lance l'enregistreur de macros, sélectionne le mode
relatif puis me positionne sur la 1ère cellule de ma
colonne. Avec la souris je me positionne dans la barre de
formule pour éditer la valeur: touche clavier FIN, puis 4
fois la touche clavier RETOUR ARRIERE. J'ai effacé EUR et
l'espace qui le précède. Maintenant touche clavier HOME
puis touche clavier SUPPR. Je valide avec ENTREE puis me
positionne sur la cellule suivante avec FLECHE BAS.
Lorsque je lance ma macro sur la cellule suivante, tout
ce que j'obtiens est la recopie de la cellule que je
viens d'éditer, comme si les commandes d'édition ne
pouvaient être incluse dans une macro. Que se passe-
t'il??

Merci à qui m'aidera.


.



Avatar
Igor M.
Ca fonctionne parfaitement, merci de vos explications
claires.
Mais n'y a-t-il pas moyen de faire la même chose avec une
macro enregistrée à partir du clavier: Il y a une
quinzaine d'années et sous DOS (l'époque des dinosaures
quoi), j'utilisais un petit logiciel nommé Rapid File
(distribué par Ashton Tate je crois) et qui faisait
exactement cela sans aucun mystère.
Encore merci
Igor M.

-----Message d'origine-----
Re,

...comment accéder à VB pour placer ce code...


Copier le code Sub converT()
Clic-droit sur un onglet quelconque du classeur puis,
Visualiser le code

Dans la nouvelle fenêtre, par les menus, Insertion/Module
Coller, dans la fenêtre principale (en dessous de
Général)

Alt+F11 pour retourner dans le classeur Excel
Sélectionner la zone à traiter
Par les menus, Outils/Macro/Macros...
Sélectionner la macro converT, puis Exécuter


ChrisV


"Igor M." a écrit
dans le message de

news: 618101c3e5d3$2b1b5ea0$

-----Message d'origine-----
Bonjour Igor M.

Sur la plage de cellules sélectionnées...

Sub converT()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ",
c) - 1))

Next c
End Sub

Merci ChrisV,

Je comprends à peu près ce que vous voulez faire:
appliquer une transformation de chaînes dans une boucle
For Next correspondant à une zone sélectionnée.
Je ne suis pas familier (c'est peu dire) avec VB et ne
sais absolument pas mettre en oeuvre votre solution:
comment accéder à VB pour placer ce code (dans VB, le
menu Fichier ne me propose pas NOUVEAU). J'ai essayé de
créer un fichier code VB en créant une pseudo macro avec
le clavier, puis, avec un copier/coller d'effacer le code
ainsi créé et de le remplacer par le vôtre. Ca ne marche
pas, ça serait trop simple.
N'est-il vraiment pas possible d'enregistrer dans une
macro créée au clavier, les touches d'édition?
Merci tout de même.
Cordialement.
Igor M.

ChrisV


"Igor M." a écrit
dans le message de

news: 631901c3e5c5$c6a9ca40$
Quelqu'un pourrait-il me dire comment créer une macro
Excel qui, de façon répétitive modifierait les valeurs
contenues dans les cellules d'une colonne. Par exemple,
la colonne est constituée de valeurs en format standard
telles que -25,12 EUR que je voudrais transformer en
25,12.
Je lance l'enregistreur de macros, sélectionne le mode
relatif puis me positionne sur la 1ère cellule de ma
colonne. Avec la souris je me positionne dans la barre
de


formule pour éditer la valeur: touche clavier FIN, puis
4


fois la touche clavier RETOUR ARRIERE. J'ai effacé EUR
et


l'espace qui le précède. Maintenant touche clavier HOME
puis touche clavier SUPPR. Je valide avec ENTREE puis me
positionne sur la cellule suivante avec FLECHE BAS.
Lorsque je lance ma macro sur la cellule suivante, tout
ce que j'obtiens est la recopie de la cellule que je
viens d'éditer, comme si les commandes d'édition ne
pouvaient être incluse dans une macro. Que se passe-
t'il??

Merci à qui m'aidera.


.




.




Avatar
ChrisV
Re,

Pour certaines actions... oui, pour d'autres notamment les boucles (comme
ici le For Each/Next), non !


ChrisV


"Igor M." a écrit dans le message de
news: 628501c3e5e1$facce480$
Ca fonctionne parfaitement, merci de vos explications
claires.
Mais n'y a-t-il pas moyen de faire la même chose avec une
macro enregistrée à partir du clavier: Il y a une
quinzaine d'années et sous DOS (l'époque des dinosaures
quoi), j'utilisais un petit logiciel nommé Rapid File
(distribué par Ashton Tate je crois) et qui faisait
exactement cela sans aucun mystère.
Encore merci
Igor M.