Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 1 Forum > Newsgroup microsoft.public.fr.excel
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 04/07/2008, 17h35
Statisticien
 
Messages: n/a
Par défaut Incorporer contenu de macro automatique dans macro ordinaire ?

Est-ce possible, Ã*** partir d'une macro rédigée manuellement, d'incorporer le
contenu copié-collé d'une macro automatique construite Ã*** partir de Outils,
Marcro ?
Je ne pige pas très bien le langage Visual Basic Applictions. C'est
pourquoi, Ã*** partir d'une macro déjÃ*** bâtie et convenant Ã*** une situation ou
événement approprié, j'aimerais pouvoir incorporer le contenu d'une macro
automatique dont normallement je ne pourrais pas (manque de connaissance)
rédiger moi-même le code.
Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 04/07/2008, 18h55
Philippe.R
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Bonsoir Ã*** toi aussi,
On peut, bien sur, Ã*** priori, incorporer du code issu d'un enregistrement de
macro Ã*** un autre code et réciproquement.
Il faut cependant le faire avec discernement et mieux vaut quand même
comprendre ce qu'on demande au logiciel de faire.
Bref, avant de se lancer sur un projet compliqué, il faut s'armer de
patience et se frotter d'abord Ã*** des projets moins ambitieux.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
message de news:21F6BAEB-52EB-4840-AE0D-ED0B17F39577***microsoft.com...
> Est-ce possible, Ã*** partir d'une macro rédigée manuellement, d'incorporer
> le
> contenu copié-collé d'une macro automatique construite Ã*** partir de Outils,
> Marcro ?
> Je ne pige pas très bien le langage Visual Basic Applictions. C'est
> pourquoi, Ã*** partir d'une macro déjÃ*** bâtie et convenant Ã*** une situation ou
> événement approprié, j'aimerais pouvoir incorporer le contenu d'une macro
> automatique dont normallement je ne pourrais pas (manque de connaissance)
> rédiger moi-même le code.


Réponse avec citation
  #3 (permalink)  
Vieux 04/07/2008, 22h58
Statisticien
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Merci beaucoup, Philippe.
Ta réponse me donne de l'espoir. Est-ce que je peux conclure que la macro
automatique utilise exactement le même langage que la macro rédigée
manuellement ?
Si oui, je vais me hâter de faire l'acquisition de littérature qui enseigne
le langage Visual Basis. Auriez-vous un titre particulier Ã*** suggérer Ã*** un
débutant.
Bonne journée
Statisticien

"Philippe.R" wrote:

> Bonsoir Ã*** toi aussi,
> On peut, bien sur, Ã*** priori, incorporer du code issu d'un enregistrement de
> macro Ã*** un autre code et réciproquement.
> Il faut cependant le faire avec discernement et mieux vaut quand même
> comprendre ce qu'on demande au logiciel de faire.
> Bref, avant de se lancer sur un projet compliqué, il faut s'armer de
> patience et se frotter d'abord Ã*** des projets moins ambitieux.
> --
> Avec plaisir
> http://dj.joss.free.fr/trombine.htm
> http://jacxl.free.fr/mpfe/trombino.html
> Philippe.R
> Pour se connecter au forum :
> http://www.excelabo.net/mpfe/connexion.php
> News://news.microsoft.com/microsoft.public.fr.excel
> "Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
> message de news:21F6BAEB-52EB-4840-AE0D-ED0B17F39577***microsoft.com...
> > Est-ce possible, Ã*** partir d'une macro rédigée manuellement, d'incorporer
> > le
> > contenu copié-collé d'une macro automatique construite Ã*** partir de Outils,
> > Marcro ?
> > Je ne pige pas très bien le langage Visual Basic Applictions. C'est
> > pourquoi, Ã*** partir d'une macro déjÃ*** bâtie et convenant Ã*** une situation ou
> > événement approprié, j'aimerais pouvoir incorporer le contenu d'une macro
> > automatique dont normallement je ne pourrais pas (manque de connaissance)
> > rédiger moi-même le code.

>
>

Réponse avec citation
  #4 (permalink)  
Vieux 05/07/2008, 07h51
Papyjac
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Bonjour Statisticien,

Non, on ne peut pas conclure cela,
Tu dois t'approprié complètement le code généré, enlever le superflu,
veiller au positionnement, documenter le code... bref en général après ce
travail, le code ne ressemble plus Ã*** l'original


--
P a p y j a c
"Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
message de news:FDC9E4D1-E74A-45C9-845F-A1467F42AB0B***microsoft.com...
> Merci beaucoup, Philippe.
> Ta réponse me donne de l'espoir. Est-ce que je peux conclure que la macro
> automatique utilise exactement le même langage que la macro rédigée
> manuellement ?
> Si oui, je vais me hâter de faire l'acquisition de littérature qui
> enseigne
> le langage Visual Basis. Auriez-vous un titre particulier Ã*** suggérer Ã*** un
> débutant.
> Bonne journée
> Statisticien
>
> "Philippe.R" wrote:
>
>> Bonsoir Ã*** toi aussi,
>> On peut, bien sur, Ã*** priori, incorporer du code issu d'un enregistrement
>> de
>> macro Ã*** un autre code et réciproquement.
>> Il faut cependant le faire avec discernement et mieux vaut quand même
>> comprendre ce qu'on demande au logiciel de faire.
>> Bref, avant de se lancer sur un projet compliqué, il faut s'armer de
>> patience et se frotter d'abord Ã*** des projets moins ambitieux.
>> --
>> Avec plaisir
>> http://dj.joss.free.fr/trombine.htm
>> http://jacxl.free.fr/mpfe/trombino.html
>> Philippe.R
>> Pour se connecter au forum :
>> http://www.excelabo.net/mpfe/connexion.php
>> News://news.microsoft.com/microsoft.public.fr.excel
>> "Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
>> message de news:21F6BAEB-52EB-4840-AE0D-ED0B17F39577***microsoft.com...
>> > Est-ce possible, Ã*** partir d'une macro rédigée manuellement,
>> > d'incorporer
>> > le
>> > contenu copié-collé d'une macro automatique construite Ã*** partir de
>> > Outils,
>> > Marcro ?
>> > Je ne pige pas très bien le langage Visual Basic Applictions. C'est
>> > pourquoi, Ã*** partir d'une macro déjÃ*** bâtie et convenant Ã*** une situation
>> > ou
>> > événement approprié, j'aimerais pouvoir incorporer le contenu d'une
>> > macro
>> > automatique dont normallement je ne pourrais pas (manque de
>> > connaissance)
>> > rédiger moi-même le code.

>>
>>

>


Réponse avec citation
  #5 (permalink)  
Vieux 05/07/2008, 08h13
Philippe.R
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Bonjour,
Oui, le langage des macros d'Excel, au moins depuis Office 97, est le VBA en
anglais, qu'elles soient produites par l'enregistreur ou codées directement.
Toutefois, comme le souligne Papyjac, l'enregistreur de macros est (très)
bavard et code toutes les actions ou presque, d'où la nécessité d'un élagage
soigné pour produire un code lisible et maintenable.
Une bibliographie Ã*** cette adresse :
http://dj.joss.free.fr/faq.htm#lecteur
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
message de news:FDC9E4D1-E74A-45C9-845F-A1467F42AB0B***microsoft.com...
> Merci beaucoup, Philippe.
> Ta réponse me donne de l'espoir. Est-ce que je peux conclure que la macro
> automatique utilise exactement le même langage que la macro rédigée
> manuellement ?
> Si oui, je vais me hâter de faire l'acquisition de littérature qui
> enseigne
> le langage Visual Basis. Auriez-vous un titre particulier Ã*** suggérer Ã*** un
> débutant.
> Bonne journée
> Statisticien
>
> "Philippe.R" wrote:
>
>> Bonsoir Ã*** toi aussi,
>> On peut, bien sur, Ã*** priori, incorporer du code issu d'un enregistrement
>> de
>> macro Ã*** un autre code et réciproquement.
>> Il faut cependant le faire avec discernement et mieux vaut quand même
>> comprendre ce qu'on demande au logiciel de faire.
>> Bref, avant de se lancer sur un projet compliqué, il faut s'armer de
>> patience et se frotter d'abord Ã*** des projets moins ambitieux.
>> --
>> Avec plaisir
>> http://dj.joss.free.fr/trombine.htm
>> http://jacxl.free.fr/mpfe/trombino.html
>> Philippe.R
>> Pour se connecter au forum :
>> http://www.excelabo.net/mpfe/connexion.php
>> News://news.microsoft.com/microsoft.public.fr.excel
>> "Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
>> message de news:21F6BAEB-52EB-4840-AE0D-ED0B17F39577***microsoft.com...
>> > Est-ce possible, Ã*** partir d'une macro rédigée manuellement,
>> > d'incorporer
>> > le
>> > contenu copié-collé d'une macro automatique construite Ã*** partir de
>> > Outils,
>> > Marcro ?
>> > Je ne pige pas très bien le langage Visual Basic Applictions. C'est
>> > pourquoi, Ã*** partir d'une macro déjÃ*** bâtie et convenant Ã*** une situation
>> > ou
>> > événement approprié, j'aimerais pouvoir incorporer le contenu d'une
>> > macro
>> > automatique dont normallement je ne pourrais pas (manque de
>> > connaissance)
>> > rédiger moi-même le code.

>>
>>


Réponse avec citation
  #6 (permalink)  
Vieux 05/07/2008, 08h45
Francois L
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire?

Statisticien a écrit :

Bonjour,

Petite tentative de pédagogie )

L'enregistreur de macro utilise VBA comme les macros codées Ã*** la main.
Donc théoriquement pas de problème pour insérer du code créé par
l'enregistreur dans une macro écrite Ã*** la mano. C'est d'ailleurs un truc
que j'utilise souvent pour retrouver des noms d'objets ou de propriétés
que j'ai oubliées, des syntaxes.

Mais...

L'enregistreur de macro est verbeux : il définit systématiquement des
propriétés auxquelles la macro ne touche pas, utilise (ce qui est
logique quand on comprend comment il fonctionne) la méthode select et
l'objet sélection, ce qui alourdit le code et ralentit parfois
l'exécution, utilise systématiquement pour les couleurs la propriété
colorindex ce qui pose problème quand on utilise des palettes de couleur
personnalisées, etc.

Donc, comment souvent conseillé ici, il ne faut pas hésiter Ã*** l'utiliser
mais il faut savoir ensuite nettoyer le code généré, l'améliorer pour le
rendre plus lisible et plus efficace et surtout réorganiser la macro
complète pour la rendre cohérente. Le copier-coller de macros
enregistrées successivement aboutit en général Ã*** des résultats assez
beurk et qui ne fonctionnent pas toujours.

Un petit exemple simplissime
Mettre la cellule A1 d'une feuille avec un fond rouge

Macro enregistrée
'-------------------------------------------
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 05/07/2008 par FFFFF
'

'
Range("A1").Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
'--------------------------------------------

Macro écrite
'--------------------------------------------
Sub rouge()
With ActiveSheet.Range("A1")
.Interior.Color = RGB(255, 0, 0)
End With
End Sub
'--------------------------------------------

La deuxième est évidemment plus courte, a l'avantage de ne pas modifier
la sélection en cours, et cherchera dans la palette du classeur la
couleur la plus proche du rouge alors que la première prendra la couleur
avec index = 3 même si c'est un bleu, un vert ou un jaune.

Pour apprendre... vas déjÃ*** passer du temps sur les excellents sites
souvent cités ici : excelabo, xlwiki, le site de JB, celui de Daniel,
etc... et dans l'aide de VBA qui est plutôt bien faite et pleine
d'exemples récupérables.

--
François L

> Merci beaucoup, Philippe.
> Ta réponse me donne de l'espoir. Est-ce que je peux conclure que la macro
> automatique utilise exactement le même langage que la macro rédigée
> manuellement ?
> Si oui, je vais me hâter de faire l'acquisition de littérature qui enseigne
> le langage Visual Basis. Auriez-vous un titre particulier Ã*** suggérer Ã*** un
> débutant.
> Bonne journée
> Statisticien
>
> "Philippe.R" wrote:
>
>> Bonsoir Ã*** toi aussi,
>> On peut, bien sur, Ã*** priori, incorporer du code issu d'un enregistrement de
>> macro Ã*** un autre code et réciproquement.
>> Il faut cependant le faire avec discernement et mieux vaut quand même
>> comprendre ce qu'on demande au logiciel de faire.
>> Bref, avant de se lancer sur un projet compliqué, il faut s'armer de
>> patience et se frotter d'abord Ã*** des projets moins ambitieux.
>> --
>> Avec plaisir
>> http://dj.joss.free.fr/trombine.htm
>> http://jacxl.free.fr/mpfe/trombino.html
>> Philippe.R
>> Pour se connecter au forum :
>> http://www.excelabo.net/mpfe/connexion.php
>> News://news.microsoft.com/microsoft.public.fr.excel
>> "Statisticien" <Statisticien***discussions.microsoft.com> a écrit dans le
>> message de news:21F6BAEB-52EB-4840-AE0D-ED0B17F39577***microsoft.com...
>>> Est-ce possible, Ã*** partir d'une macro rédigée manuellement, d'incorporer
>>> le
>>> contenu copié-collé d'une macro automatique construite Ã*** partir de Outils,
>>> Marcro ?
>>> Je ne pige pas très bien le langage Visual Basic Applictions. C'est
>>> pourquoi, Ã*** partir d'une macro déjÃ*** bâtie et convenant Ã*** une situation ou
>>> événement approprié, j'aimerais pouvoir incorporer le contenu d'une macro
>>> automatique dont normallement je ne pourrais pas (manque de connaissance)
>>> rédiger moi-même le code.

>>

Réponse avec citation
  #7 (permalink)  
Vieux 05/07/2008, 09h18
Modeste
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Bonsour® Francois L avec ferveur ;o))) vous nous disiez :

> Macro écrite
> '--------------------------------------------
> Sub rouge()
> With ActiveSheet.Range("A1")
> .Interior.Color = RGB(255, 0, 0)
> End With
> End Sub
> '--------------------------------------------


With ActiveSheet.
[A1].Interior.Color = vbRed
End With


--
***+
;o)))

Réponse avec citation
  #8 (permalink)  
Vieux 05/07/2008, 09h23
Francois L
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire?

Modeste a écrit :

Bonjour Modeste,

))

Mais je te laisse expliquer le "[A1]"

--
François L


> Bonsour® Francois L avec ferveur ;o))) vous nous disiez :
>
>> Macro écrite
>> '--------------------------------------------
>> Sub rouge()
>> With ActiveSheet.Range("A1")
>> .Interior.Color = RGB(255, 0, 0)
>> End With
>> End Sub
>> '--------------------------------------------

>
> With ActiveSheet.
> [A1].Interior.Color = vbRed
> End With
>
>

Réponse avec citation
  #9 (permalink)  
Vieux 05/07/2008, 10h32
Modeste
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Bonsour® Francois L avec ferveur ;o))) vous nous disiez :

> Mais je te laisse expliquer le "[A1]"


L'utilisation des crochets droits (par exemple, "[A1:C5]") revient Ã*** appeler la méthode Evaluate avec un argument sous la forme d'une chaîne de caractères. Les exemples suivants sont équivalents dans chaque couple d'expression.

[a1].Value = 25
Evaluate("A1").Value = 25

L'avantage des crochets droits réside dans la plus grande concision du code.
Celui résultant de l'utilisation de la méthode Evaluate est que l'argument est une chaîne de caractères,
ce qui vous permet d'élaborer la chaîne de caractères dans votre code ou d'utiliser une variable Visual Basic.

Worksheets("Sheet1").Activate
Application.[A1].Font.Bold = True

Attention petit inconvénient Majeur ;o)))

Application.[A1].Font.Bold = True
ne s'applique qu'a la feuille active !!!!
d'ou la nécessité de : Worksheets("Sheet1").Activate
ce qui peut paraitre redondant si la Sheet1 est déja sélectionnée
mais déterminant si c'est la Sheet2 qui est sélectionnée précédement
(difference entre mode Manuel et VBA, VBA permet de travailler sur une feuille autre que la feuille affichée)


!!!!


--
***+
;o)))
Réponse avec citation
  #10 (permalink)  
Vieux 05/07/2008, 12h53
Modeste
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Bonsour® michdenis avec ferveur ;o))) vous nous disiez :

> Le plus court n'est pas nécessaire le meilleur !
> Ça requiert donc du discernement !


N'est-ce pas cela que l'on appelle : Analyse et Optimisation
;o)))

--
***+
;o)))

Réponse avec citation
  #11 (permalink)  
Vieux 05/07/2008, 13h05
Statisticien
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire ?

Merci et merci Ã***...
Philippe R, Papyhac, François L et Modeste
Vous êtes de vrais et dévoués missionnaires.
Un jour, après avoir bien digéré mon gruau, je pourrai me joindre Ã*** vous et
partager mon expertise avec les démunis comme moi
Bonne journée
Statisticien

"michdenis" wrote:

> | L'avantage des crochets droits réside dans la plus grande concision du code.
>
> Excel permet d'utiliser des variables ayant 255 caractères afin que nous puissions
> leur donner un "sens" facilitant l'encodage. Le plus court n'est pas nécessaire le meilleur !
>
> Cette façon de coder ne permet pas d'utiliser la liste déroulante des propriétés
> et méthodes...Ã*** mon avis beaucoup plus importante que quelques caractères.
>
> On ne peut pas substituer systématiquement dans tous les cas de figures la syntaxe
> des crochets pour la désignation d'un objet "Range". Ça requiert donc du discernement !
>
> Je crois que l'utilisation de cette syntaxe est source de plus de confusion qu'autre chose
>
> | Application.[A1].Font.Bold = True
> | ne s'applique qu'a la feuille active !!!!
>
> C'est vrai aussi pour la désignation d'un objet range
> Application.Range.Font.Bold = True
>
> D'ailleurs, comment pourrions-nous utiliser dans le code
> d'un module standard un objet "Range" dans désigner
> la feuille Ã*** laquelle il est attaché. En pratique, cela veut
> dire qu'aucune utilisation d'un objet Range (comme c'est si
> souvent le cas dans une procédure) ne pourrait être faite
> sans désignation de la feuille...Et ça, ce serait un sérieux
> désavantage pour bien du monde ...;-)
>
> Exemples : Dans un module feuille, comme les objets sont
> "sensés appartenir" Ã*** la feuille, on peut écrire :
> Shapes("MonTextbox")....
> ou Range("A1")....
>
> Mais dans un module standard, pour utiliser Shapes(), il faut désigner
> le nom de la feuille Ã*** laquelle elle appartient.
> worksheets("Feuil1").Shapes()....
> Nous serions obligés de faire la même chose avec l'objet "Range"
> Worksheets("Feuil1").Range()....
> si l'objet "Range" n'était pas une "propriété" de l'objet Application.
> C'est cela qui nous permet de taire la référence Ã*** l'objet "application"
> ou Ã*** l'objet "worksheet" dans la manière d'encoder dans un module standard.
>
>
>
>
>
> "Modeste" <nomail***nomail.net> a écrit dans le message de news: u8y6rIo3IHA.1420***TK2MSFTNGP06.phx.gbl...
> Bonsour® Francois L avec ferveur ;o))) vous nous disiez :
>
> > Mais je te laisse expliquer le "[A1]"

>
> L'utilisation des crochets droits (par exemple, "[A1:C5]") revient Ã*** appeler la méthode Evaluate avec un argument sous la forme d'une chaîne de caractères. Les exemples suivants sont équivalents dans chaque couple d'expression.
>
> [a1].Value = 25
> Evaluate("A1").Value = 25
>
> L'avantage des crochets droits réside dans la plus grande concision du code.
> Celui résultant de l'utilisation de la méthode Evaluate est que l'argument est une chaîne de caractères,
> ce qui vous permet d'élaborer la chaîne de caractères dans votre code ou d'utiliser une variable Visual Basic.
>
> Worksheets("Sheet1").Activate
> Application.[A1].Font.Bold = True
>
> Attention petit inconvénient Majeur ;o)))
>
> Application.[A1].Font.Bold = True
> ne s'applique qu'a la feuille active !!!!
> d'ou la nécessité de : Worksheets("Sheet1").Activate
> ce qui peut paraitre redondant si la Sheet1 est déja sélectionnée
> mais déterminant si c'est la Sheet2 qui est sélectionnée précédement
> (difference entre mode Manuel et VBA, VBA permet de travailler sur une feuille autre que la feuille affichée)
>
>
> !!!!
>
>
> --
> ***+
> ;o)))

Réponse avec citation
  #12 (permalink)  
Vieux 05/07/2008, 13h27
Frédéric Sigonneau
 
Messages: n/a
Par défaut Re: Incorporer contenu de macro automatique dans macro ordinaire?

Autre exemple (classique) de "supériorité" de la main de l'homme sur celle de la
machine
Il s'agit de créer une macro qui entoure une sélection de cellules d'une bordure
double pour l'affecter Ã*** un bouton perso (aucun bouton 'tout fait' n'est prévu
pour ça).

Code fourni par l'enregistreur :

'=======================
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 05/07/2008 par blablabla
'
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
'=======================

Code produit "Ã*** la main" :

'=======================
Sub Macro2()
Selection.BorderAround LineStyle:=xlDouble
End Sub
'=======================

!

FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Francois L a écrit :
> Statisticien a écrit :
>
> Bonjour,
>
> Petite tentative de pédagogie )
>
> L'enregistreur de macro utilise VBA comme les macros codées Ã*** la main.
> Donc théoriquement pas de problème pour insérer du code créé par
> l'enregistreur dans une macro écrite Ã*** la mano. C'est d'ailleurs un truc
> que j'utilise souvent pour retrouver des noms d'objets ou de propriétés
> que j'ai oubliées, des syntaxes.
>
> Mais...
>
> L'enregistreur de macro est verbeux : il définit systématiquement des
> propriétés auxquelles la macro ne touche pas, utilise (ce qui est
> logique quand on comprend comment il fonctionne) la méthode select et
> l'objet sélection, ce qui alourdit le code et ralentit parfois
> l'exécution, utilise systématiquement pour les couleurs la propriété
> colorindex ce qui pose problème quand on utilise des palettes de couleur
> personnalisées, etc.
>
> Donc, comment souvent conseillé ici, il ne faut pas hésiter Ã*** l'utiliser
> mais il faut savoir ensuite nettoyer le code généré, l'améliorer pour le
> rendre plus lisible et plus efficace et surtout réorganiser la macro
> complète pour la rendre cohérente. Le copier-coller de macros
> enregistrées successivement aboutit en général Ã*** des résultats assez
> beurk et qui ne fonctionnent pas toujours.
>
> Un petit exemple simplissime
> Mettre la cellule A1 d'une feuille avec un fond rouge
>
> Macro enregistrée
> '-------------------------------------------
> Sub Macro2()
> '
> ' Macro2 Macro
> ' Macro enregistrée le 05/07/2008 par FFFFF
> '
>
> '
> Range("A1").Select
> With Selection.Interior
> .ColorIndex = 3
> .Pattern = xlSolid
> .PatternColorIndex = xlAutomatic
> End With
> End Sub
> '--------------------------------------------
>
> Macro écrite
> '--------------------------------------------
> Sub rouge()
> With ActiveSheet.Range("A1")
> .Interior.Color = RGB(255, 0, 0)
> End With
> End Sub
> '--------------------------------------------
>
> La deuxième est évidemment plus courte, a l'avantage de ne pas modifier
> la sélection en cours, et cherchera dans la palette du classeur la
> couleur la plus proche du rouge alors que la première prendra la couleur
> avec index = 3 même si c'est un bleu, un vert ou un jaune.
>
> Pour apprendre... vas déjÃ*** passer du temps sur les excellents sites
> souvent cités ici : excelabo, xlwiki, le site de JB, celui de Daniel,
> etc... et dans l'aide de VBA qui est plutôt bien faite et pleine
> d'exemples récupérables.
>

Réponse avec citation
 
Réponse
Tags: , , , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
Macro tri automatique à l'ouverture Pijay Newsgroup microsoft.public.fr.excel 4 23/06/2008 20h06
Un code ou macro automatique Fan Newsgroup microsoft.public.fr.excel 0 18/06/2008 07h01
Lire le contenu d'une macro Jacques Newsgroup microsoft.public.fr.excel 2 19/03/2008 23h58
Lire contenu d'une macro Jacques Newsgroup microsoft.public.fr.dotnet.vb 0 19/03/2008 06h46
macro automatique AB Newsgroup microsoft.public.fr.excel 2 18/02/2008 16h10


Fuseau horaire GMT. Il est actuellement 07h59.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,57161 seconds with 11 queries