OVH Cloud OVH Cloud

Enregistreur de macros

10 réponses
Avatar
Igor M.
L'enregistreur de macros enregistre-t-il les touches=20
d'=E9dition faite dans la barre de formules (ou directement=20
dans la cellule en double cliquant dessus)telles que=20
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai=20
essay=E9 et =E7a ne fonctionne pas. Le but est, sans passer=20
par VBA, de modifier des cellules dans des colonnes=20
(ajouter, retirer et/ou modifier des caract=E8res). Ces=20
cellules peuvent =EAtre contigues ou pas, mais les=20
modifications =E0 appliquer dans une colonne donn=E9e sont=20
toujours les m=EAmes, d'o=F9 l'id=E9e de macro.
Merci
Igor M.

10 réponses

Avatar
ru-th
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du VBA, un peu comme M
Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites faire exactement. On
pourra (éventuellement) te proposer des solutions macro, fonctions Excel,
traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit dans le message de
news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.
Avatar
Igor M.
Bonjour,
Lorsque je dis "sans passer par VBA", je veux dire sans
programmer moi-même un module VBA. J'ai parfaitement
compris que lorsque j'enregistre une macro à partir du
clavier, cela génère du code VBA.
Ce que je veux faire:
Je télécharge des données dont j'ignore le format (en
programmation, on dirait le type). Elles se présentent
sous la forme "-25,12 EUR", ou "1512ADCDEF" sans les
guillemets et chacune dans une colonne. Pour les données
du genre 1, je voudrais obtenir 25,12 et pour celles du
genre 2 ABCDEF.
J'ai posé la question hier soir ('Macros Excel" page
précédente) sur le seul cas des données du genre 1 et
j'ai obtenu une réponse (ChrisV):
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ", c) -
1))
Next c
Prendre de la chaîne ce qui suit le 1er caractère jusqu'à
l'espace non compris.
Ca fonctionne à condition que mes données soient au
format texte, j'ai essayé sur un modèle avec du texte ('-
25,12 EUR). Or je ne sais pas dans quel format est ce que
je télécharge. Ce que je vois est -25,12 EUR. Lorsque
j'applique la fonction, j'obtiens un message d'erreur de
type.
Il me faudrait l'équivalent traiter pour les données du
genre 2 et d'autres encore.
Ce que je voudrais faire, c'est rendre général ce genre
de traitement quel que soit le format des données. Il me
semble que comme on peut éditer (modifier) dans une
cellule (double clic) et/ou dans la barre de formule tout
format de donnée , le problème serait résolu si
l'enregistreur de macros enregistrait (créait du code VBA
avec) les touches d'édition: ayant téléchargé des données
dont la présentation est homogène par colonne, je vois
immédiatement les traitements à appliquer (sur une
colonne, supprimer le 1er et les 4 derniers caractères,
sur une autre, supprimer les 4 premiers etc.). Il me
suffirait alors d'enregistrer le traitement sur la
première cellule d'une colonne (5 ou 6 frappes de
touches) et de l'appliquer sur le reste de la colonne
puis passer au traitement d'une autre colonne.
J'ai vaguement l'impression d'avoir été un peu long, mais
peut-être que la question que je pose est d'ordre
philosophique. Hier, tout au bout de mon dialogue avec
ChrisV, je disais que le logiciel que j'utilisais sous
DOS il y a environ 15 ans (Rapid File de Ashton Tate,
programme et exemples sur une disquette de 720 Ko)
faisait tout cela sans avoir à encoder les traitements
dans un quelconque langage, même si un tel langage était
présent en arrière-plan.
Si tu es arrivé jusque là, c'est que tu m'as lu. Alors je
te remercie de ta patience.
Igor M.
-----Message d'origine-----
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du
VBA, un peu comme M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites
faire exactement. On

pourra (éventuellement) te proposer des solutions macro,
fonctions Excel,

traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit
dans le message de

news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.


.



Avatar
ChrisV
si tu précisais avec un exemple


Voir la demande d'Igor un peu plus haut Thierry !
;-)


ChrisV


"ru-th" a écrit dans le message de news:
uyS2V$
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du VBA, un peu comme
M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites faire exactement. On
pourra (éventuellement) te proposer des solutions macro, fonctions Excel,
traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit dans le message de
news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.




Avatar
michdenis
Bonjour Igor,

En supposant comme tu dis que tu veuilles extraire toujours le même nombre de cacactères, as-tu essayé de sélectionner ta
colonne et d'appeler la commande : barre d'outils / données / convertir / Largeur fixe et à la fenêtre suivante, tu cliques
toi-même où la chaîne de caractères doit se scinder.. la fenêtre suivante te permet de définir le format des cellules ....




Salutations!



"Igor M." a écrit dans le message de news:694f01c3e66c$e17259d0$
Bonjour,
Lorsque je dis "sans passer par VBA", je veux dire sans
programmer moi-même un module VBA. J'ai parfaitement
compris que lorsque j'enregistre une macro à partir du
clavier, cela génère du code VBA.
Ce que je veux faire:
Je télécharge des données dont j'ignore le format (en
programmation, on dirait le type). Elles se présentent
sous la forme "-25,12 EUR", ou "1512ADCDEF" sans les
guillemets et chacune dans une colonne. Pour les données
du genre 1, je voudrais obtenir 25,12 et pour celles du
genre 2 ABCDEF.
J'ai posé la question hier soir ('Macros Excel" page
précédente) sur le seul cas des données du genre 1 et
j'ai obtenu une réponse (ChrisV):
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ", c) -
1))
Next c
Prendre de la chaîne ce qui suit le 1er caractère jusqu'à
l'espace non compris.
Ca fonctionne à condition que mes données soient au
format texte, j'ai essayé sur un modèle avec du texte ('-
25,12 EUR). Or je ne sais pas dans quel format est ce que
je télécharge. Ce que je vois est -25,12 EUR. Lorsque
j'applique la fonction, j'obtiens un message d'erreur de
type.
Il me faudrait l'équivalent traiter pour les données du
genre 2 et d'autres encore.
Ce que je voudrais faire, c'est rendre général ce genre
de traitement quel que soit le format des données. Il me
semble que comme on peut éditer (modifier) dans une
cellule (double clic) et/ou dans la barre de formule tout
format de donnée , le problème serait résolu si
l'enregistreur de macros enregistrait (créait du code VBA
avec) les touches d'édition: ayant téléchargé des données
dont la présentation est homogène par colonne, je vois
immédiatement les traitements à appliquer (sur une
colonne, supprimer le 1er et les 4 derniers caractères,
sur une autre, supprimer les 4 premiers etc.). Il me
suffirait alors d'enregistrer le traitement sur la
première cellule d'une colonne (5 ou 6 frappes de
touches) et de l'appliquer sur le reste de la colonne
puis passer au traitement d'une autre colonne.
J'ai vaguement l'impression d'avoir été un peu long, mais
peut-être que la question que je pose est d'ordre
philosophique. Hier, tout au bout de mon dialogue avec
ChrisV, je disais que le logiciel que j'utilisais sous
DOS il y a environ 15 ans (Rapid File de Ashton Tate,
programme et exemples sur une disquette de 720 Ko)
faisait tout cela sans avoir à encoder les traitements
dans un quelconque langage, même si un tel langage était
présent en arrière-plan.
Si tu es arrivé jusque là, c'est que tu m'as lu. Alors je
te remercie de ta patience.
Igor M.
-----Message d'origine-----
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du
VBA, un peu comme M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites
faire exactement. On

pourra (éventuellement) te proposer des solutions macro,
fonctions Excel,

traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit
dans le message de

news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.


.



Avatar
ru-th
re-

d'après ce que j'ai compris dans tes exemples, tu souhaites soit récuperer
que le numérique ou que le texte
2 petits sub (à améliorer suivant tes besoins)
Sub numérique()
Dim c As Range
For Each c In Selection
For i = 1 To Len(c)
If Mid(c, i, 1) Like "#" Or Mid(c, i, 1) = "," Then rep = rep & Mid(c, i, 1)
Next i
c.Value = rep
rep = ""
Next c
End Sub

Sub Recuptexte()
Dim c As Range
For Each c In Selection
For i = 1 To Len(c)
If Not Mid(c, i, 1) Like "#" Then rep = rep & Mid(c, i, 1)
Next i
c.Value = rep
rep = ""
Next c
End Sub

a+
rural thierry
"Igor M." a écrit dans le message de
news: 694f01c3e66c$e17259d0$
Bonjour,
Lorsque je dis "sans passer par VBA", je veux dire sans
programmer moi-même un module VBA. J'ai parfaitement
compris que lorsque j'enregistre une macro à partir du
clavier, cela génère du code VBA.
Ce que je veux faire:
Je télécharge des données dont j'ignore le format (en
programmation, on dirait le type). Elles se présentent
sous la forme "-25,12 EUR", ou "1512ADCDEF" sans les
guillemets et chacune dans une colonne. Pour les données
du genre 1, je voudrais obtenir 25,12 et pour celles du
genre 2 ABCDEF.
J'ai posé la question hier soir ('Macros Excel" page
précédente) sur le seul cas des données du genre 1 et
j'ai obtenu une réponse (ChrisV):
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ", c) -
1))
Next c
Prendre de la chaîne ce qui suit le 1er caractère jusqu'à
l'espace non compris.
Ca fonctionne à condition que mes données soient au
format texte, j'ai essayé sur un modèle avec du texte ('-
25,12 EUR). Or je ne sais pas dans quel format est ce que
je télécharge. Ce que je vois est -25,12 EUR. Lorsque
j'applique la fonction, j'obtiens un message d'erreur de
type.
Il me faudrait l'équivalent traiter pour les données du
genre 2 et d'autres encore.
Ce que je voudrais faire, c'est rendre général ce genre
de traitement quel que soit le format des données. Il me
semble que comme on peut éditer (modifier) dans une
cellule (double clic) et/ou dans la barre de formule tout
format de donnée , le problème serait résolu si
l'enregistreur de macros enregistrait (créait du code VBA
avec) les touches d'édition: ayant téléchargé des données
dont la présentation est homogène par colonne, je vois
immédiatement les traitements à appliquer (sur une
colonne, supprimer le 1er et les 4 derniers caractères,
sur une autre, supprimer les 4 premiers etc.). Il me
suffirait alors d'enregistrer le traitement sur la
première cellule d'une colonne (5 ou 6 frappes de
touches) et de l'appliquer sur le reste de la colonne
puis passer au traitement d'une autre colonne.
J'ai vaguement l'impression d'avoir été un peu long, mais
peut-être que la question que je pose est d'ordre
philosophique. Hier, tout au bout de mon dialogue avec
ChrisV, je disais que le logiciel que j'utilisais sous
DOS il y a environ 15 ans (Rapid File de Ashton Tate,
programme et exemples sur une disquette de 720 Ko)
faisait tout cela sans avoir à encoder les traitements
dans un quelconque langage, même si un tel langage était
présent en arrière-plan.
Si tu es arrivé jusque là, c'est que tu m'as lu. Alors je
te remercie de ta patience.
Igor M.
-----Message d'origine-----
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du
VBA, un peu comme M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites
faire exactement. On

pourra (éventuellement) te proposer des solutions macro,
fonctions Excel,

traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit
dans le message de

news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.


.



Avatar
ru-th
ne me perturbe pas !, chez moi, les nouveaux messages sont en haut, les
anciens en bas (place aux jeunes)
déjà que je distingue faiblement la gauche de ma droite (sauf sur le
bulletin de vote)
;-))
a+
rural thierry
"ChrisV" a écrit dans le message de news:
#
si tu précisais avec un exemple


Voir la demande d'Igor un peu plus haut Thierry !
;-)


ChrisV


"ru-th" a écrit dans le message de news:
uyS2V$
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du VBA, un peu
comme


M
Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites faire exactement. On
pourra (éventuellement) te proposer des solutions macro, fonctions
Excel,


traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit dans le message
de


news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.








Avatar
Igor M.
Bonjour MichDenis,

Merci pour ta solution. J'avais tendance à penser jusqu'à
maintanant que /données/convertir servait à autre chose
qu'à modifier des données en provenance du MEME tableau.
Ca n'est pas instantané, mais ça fonctionne correctement
à condition de s'y prendre à plusieurs fois car si les
données sont justifiées sur la gauche (de par leur format
d'origine), il est facile de supprimer le ou les 1ers
caractères, par contre comme les données sont de longueur
différentes, pas possible en une seule opération de faire
de même sur la partie droite. Mais ça marche.
Encore merci et salut.
-----Message d'origine-----
Bonjour Igor,

En supposant comme tu dis que tu veuilles extraire
toujours le même nombre de cacactères, as-tu essayé de

sélectionner ta
colonne et d'appeler la commande : barre d'outils /
données / convertir / Largeur fixe et à la fenêtre

suivante, tu cliques
toi-même où la chaîne de caractères doit se scinder.. la
fenêtre suivante te permet de définir le format des

cellules ....




Salutations!



"Igor M." a écrit
dans le message de news:694f01c3e66c$e17259d0

$
Bonjour,
Lorsque je dis "sans passer par VBA", je veux dire sans
programmer moi-même un module VBA. J'ai parfaitement
compris que lorsque j'enregistre une macro à partir du
clavier, cela génère du code VBA.
Ce que je veux faire:
Je télécharge des données dont j'ignore le format (en
programmation, on dirait le type). Elles se présentent
sous la forme "-25,12 EUR", ou "1512ADCDEF" sans les
guillemets et chacune dans une colonne. Pour les données
du genre 1, je voudrais obtenir 25,12 et pour celles du
genre 2 ABCDEF.
J'ai posé la question hier soir ('Macros Excel" page
précédente) sur le seul cas des données du genre 1 et
j'ai obtenu une réponse (ChrisV):
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ",
c) -

1))
Next c
Prendre de la chaîne ce qui suit le 1er caractère jusqu'à
l'espace non compris.
Ca fonctionne à condition que mes données soient au
format texte, j'ai essayé sur un modèle avec du texte ('-
25,12 EUR). Or je ne sais pas dans quel format est ce que
je télécharge. Ce que je vois est -25,12 EUR. Lorsque
j'applique la fonction, j'obtiens un message d'erreur de
type.
Il me faudrait l'équivalent traiter pour les données du
genre 2 et d'autres encore.
Ce que je voudrais faire, c'est rendre général ce genre
de traitement quel que soit le format des données. Il me
semble que comme on peut éditer (modifier) dans une
cellule (double clic) et/ou dans la barre de formule tout
format de donnée , le problème serait résolu si
l'enregistreur de macros enregistrait (créait du code VBA
avec) les touches d'édition: ayant téléchargé des données
dont la présentation est homogène par colonne, je vois
immédiatement les traitements à appliquer (sur une
colonne, supprimer le 1er et les 4 derniers caractères,
sur une autre, supprimer les 4 premiers etc.). Il me
suffirait alors d'enregistrer le traitement sur la
première cellule d'une colonne (5 ou 6 frappes de
touches) et de l'appliquer sur le reste de la colonne
puis passer au traitement d'une autre colonne.
J'ai vaguement l'impression d'avoir été un peu long, mais
peut-être que la question que je pose est d'ordre
philosophique. Hier, tout au bout de mon dialogue avec
ChrisV, je disais que le logiciel que j'utilisais sous
DOS il y a environ 15 ans (Rapid File de Ashton Tate,
programme et exemples sur une disquette de 720 Ko)
faisait tout cela sans avoir à encoder les traitements
dans un quelconque langage, même si un tel langage était
présent en arrière-plan.
Si tu es arrivé jusque là, c'est que tu m'as lu. Alors je
te remercie de ta patience.
Igor M.
-----Message d'origine-----
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du
VBA, un peu comme M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites
faire exactement. On

pourra (éventuellement) te proposer des solutions macro,
fonctions Excel,

traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit
dans le message de

news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou
directement


dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.


.




.




Avatar
ChrisV
;-)


ChrisV


"ru-th" a écrit dans le message de news:

ne me perturbe pas !, chez moi, les nouveaux messages sont en haut, les
anciens en bas (place aux jeunes)
déjà que je distingue faiblement la gauche de ma droite (sauf sur le
bulletin de vote)
;-))
a+
rural thierry
"ChrisV" a écrit dans le message de news:
#
si tu précisais avec un exemple


Voir la demande d'Igor un peu plus haut Thierry !
;-)


ChrisV


"ru-th" a écrit dans le message de news:
uyS2V$
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du VBA, un peu
comme


M
Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites faire exactement.
On



pourra (éventuellement) te proposer des solutions macro, fonctions
Excel,


traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit dans le
message



de
news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.












Avatar
Igor M.
Merci Ru-Th,
Je vais essayer ta solution.
Celle que m'a donnée MichDenis (barre d'outils /
données / convertir / Largeur fixe) fonctionne
correctement en s'y prenant en plusieurs fois
cependant... mais sans mettre les mains dans le VBA.
Salut.
-----Message d'origine-----
re-

d'après ce que j'ai compris dans tes exemples, tu
souhaites soit récuperer

que le numérique ou que le texte
2 petits sub (à améliorer suivant tes besoins)
Sub numérique()
Dim c As Range
For Each c In Selection
For i = 1 To Len(c)
If Mid(c, i, 1) Like "#" Or Mid(c, i, 1) = "," Then rep
= rep & Mid(c, i, 1)

Next i
c.Value = rep
rep = ""
Next c
End Sub

Sub Recuptexte()
Dim c As Range
For Each c In Selection
For i = 1 To Len(c)
If Not Mid(c, i, 1) Like "#" Then rep = rep & Mid(c, i,
1)

Next i
c.Value = rep
rep = ""
Next c
End Sub

a+
rural thierry
"Igor M." a écrit
dans le message de

news: 694f01c3e66c$e17259d0$
Bonjour,
Lorsque je dis "sans passer par VBA", je veux dire sans
programmer moi-même un module VBA. J'ai parfaitement
compris que lorsque j'enregistre une macro à partir du
clavier, cela génère du code VBA.
Ce que je veux faire:
Je télécharge des données dont j'ignore le format (en
programmation, on dirait le type). Elles se présentent
sous la forme "-25,12 EUR", ou "1512ADCDEF" sans les
guillemets et chacune dans une colonne. Pour les données
du genre 1, je voudrais obtenir 25,12 et pour celles du
genre 2 ABCDEF.
J'ai posé la question hier soir ('Macros Excel" page
précédente) sur le seul cas des données du genre 1 et
j'ai obtenu une réponse (ChrisV):
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ",
c) -

1))
Next c
Prendre de la chaîne ce qui suit le 1er caractère jusqu'à
l'espace non compris.
Ca fonctionne à condition que mes données soient au
format texte, j'ai essayé sur un modèle avec du texte ('-
25,12 EUR). Or je ne sais pas dans quel format est ce que
je télécharge. Ce que je vois est -25,12 EUR. Lorsque
j'applique la fonction, j'obtiens un message d'erreur de
type.
Il me faudrait l'équivalent traiter pour les données du
genre 2 et d'autres encore.
Ce que je voudrais faire, c'est rendre général ce genre
de traitement quel que soit le format des données. Il me
semble que comme on peut éditer (modifier) dans une
cellule (double clic) et/ou dans la barre de formule tout
format de donnée , le problème serait résolu si
l'enregistreur de macros enregistrait (créait du code VBA
avec) les touches d'édition: ayant téléchargé des données
dont la présentation est homogène par colonne, je vois
immédiatement les traitements à appliquer (sur une
colonne, supprimer le 1er et les 4 derniers caractères,
sur une autre, supprimer les 4 premiers etc.). Il me
suffirait alors d'enregistrer le traitement sur la
première cellule d'une colonne (5 ou 6 frappes de
touches) et de l'appliquer sur le reste de la colonne
puis passer au traitement d'une autre colonne.
J'ai vaguement l'impression d'avoir été un peu long, mais
peut-être que la question que je pose est d'ordre
philosophique. Hier, tout au bout de mon dialogue avec
ChrisV, je disais que le logiciel que j'utilisais sous
DOS il y a environ 15 ans (Rapid File de Ashton Tate,
programme et exemples sur une disquette de 720 Ko)
faisait tout cela sans avoir à encoder les traitements
dans un quelconque langage, même si un tel langage était
présent en arrière-plan.
Si tu es arrivé jusque là, c'est que tu m'as lu. Alors je
te remercie de ta patience.
Igor M.
-----Message d'origine-----
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du
VBA, un peu comme M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites
faire exactement. On

pourra (éventuellement) te proposer des solutions macro,
fonctions Excel,

traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit
dans le message de

news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou
directement


dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.


.




.




Avatar
Frédéric Sigonneau
Bonjour,

Une autre approche possible. Tu sélectionnes les colonnes à mettre en forme (peu
importe si leurs données sont de genre 1 ou 2) et tu exécutes cette macro (Excel
2000 ou + récent requis à cause de Split, mais il y a des contournements
possibles si tu utilises Excel 97 par ex) :

Sub Nettoyage()
For Each cell In Selection
If Not IsEmpty(cell) Then
Select Case Left(cell.Text, 1)
Case "-": cell.Value = Abs(Split(cell.Text, " ")(0))
Case Else
cell.Value = Mid(cell.Text, Len(CStr(Val(cell.Text))) + 1)
End Select
End If
Next
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,
Lorsque je dis "sans passer par VBA", je veux dire sans
programmer moi-même un module VBA. J'ai parfaitement
compris que lorsque j'enregistre une macro à partir du
clavier, cela génère du code VBA.
Ce que je veux faire:
Je télécharge des données dont j'ignore le format (en
programmation, on dirait le type). Elles se présentent
sous la forme "-25,12 EUR", ou "1512ADCDEF" sans les
guillemets et chacune dans une colonne. Pour les données
du genre 1, je voudrais obtenir 25,12 et pour celles du
genre 2 ABCDEF.
J'ai posé la question hier soir ('Macros Excel" page
précédente) sur le seul cas des données du genre 1 et
j'ai obtenu une réponse (ChrisV):
For Each c In Selection
c.Value = Abs(Mid(c, 1, Application.Find(" ", c) -
1))
Next c
Prendre de la chaîne ce qui suit le 1er caractère jusqu'à
l'espace non compris.
Ca fonctionne à condition que mes données soient au
format texte, j'ai essayé sur un modèle avec du texte ('-
25,12 EUR). Or je ne sais pas dans quel format est ce que
je télécharge. Ce que je vois est -25,12 EUR. Lorsque
j'applique la fonction, j'obtiens un message d'erreur de
type.
Il me faudrait l'équivalent traiter pour les données du
genre 2 et d'autres encore.
Ce que je voudrais faire, c'est rendre général ce genre
de traitement quel que soit le format des données. Il me
semble que comme on peut éditer (modifier) dans une
cellule (double clic) et/ou dans la barre de formule tout
format de donnée , le problème serait résolu si
l'enregistreur de macros enregistrait (créait du code VBA
avec) les touches d'édition: ayant téléchargé des données
dont la présentation est homogène par colonne, je vois
immédiatement les traitements à appliquer (sur une
colonne, supprimer le 1er et les 4 derniers caractères,
sur une autre, supprimer les 4 premiers etc.). Il me
suffirait alors d'enregistrer le traitement sur la
première cellule d'une colonne (5 ou 6 frappes de
touches) et de l'appliquer sur le reste de la colonne
puis passer au traitement d'une autre colonne.
J'ai vaguement l'impression d'avoir été un peu long, mais
peut-être que la question que je pose est d'ordre
philosophique. Hier, tout au bout de mon dialogue avec
ChrisV, je disais que le logiciel que j'utilisais sous
DOS il y a environ 15 ans (Rapid File de Ashton Tate,
programme et exemples sur une disquette de 720 Ko)
faisait tout cela sans avoir à encoder les traitements
dans un quelconque langage, même si un tel langage était
présent en arrière-plan.
Si tu es arrivé jusque là, c'est que tu m'as lu. Alors je
te remercie de ta patience.
Igor M.
-----Message d'origine-----
Salut

euh.. ! utiliser l'enregistreur de macro c'est faire du
VBA, un peu comme M

Jourdain et la prose
si tu précisais avec un exemple ce que tu souhaites
faire exactement. On

pourra (éventuellement) te proposer des solutions macro,
fonctions Excel,

traitement excel, ou autres
a+
rural thierry
"Igor M." a écrit
dans le message de

news: 64b001c3e651$6b5507e0$
L'enregistreur de macros enregistre-t-il les touches
d'édition faite dans la barre de formules (ou directement
dans la cellule en double cliquant dessus)telles que
home, fin, suppr, frappe de lettres ou chiffre etc. J'ai
essayé et ça ne fonctionne pas. Le but est, sans passer
par VBA, de modifier des cellules dans des colonnes
(ajouter, retirer et/ou modifier des caractères). Ces
cellules peuvent être contigues ou pas, mais les
modifications à appliquer dans une colonne donnée sont
toujours les mêmes, d'où l'idée de macro.
Merci
Igor M.


.