Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2011, 02h38   #1
Candidat au titre de Membre du Club
 
Homme
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 10
Points : 10
Par défaut Formula et methode FillDown

Bonjour,

J'aurai souhaité savoir si à partir d'une macro définir une formule dans une cellule et la "tirer" automatiquement jusqu'en bas du tableau, et qq chose de propre ou non?

Code :
1
2
3
4
5
 
    x.Offset(0, 19).FormulaR1C1 = "=RC1&"" vuln ""&RC6"
    Set x = Range(x, x.End(xlDown))
    Set x = x.Offset(0, 19)
    x.FillDown
Si c'est du travail de cochon, que recommandez vous?

Merci d'avance pour toute réponse,
kabol69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 09h12   #2
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

Ceci doit être plus rapide, :

Code :
1
2
3
4
Sub toto()
 
Range("maplage").FormulaLocal = "ma formule"
End Sub
si par contre d'origine ta cellule source contient la formule voulue ce n'est pas la peine de la réécrire et filldown est plus direct

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 10h06   #3
Candidat au titre de Membre du Club
 
Homme
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 10
Points : 10
Bonjour,

Merco Ormonth pour ta réponse.

L'idée dans ma question, étant comme nouveau en prog VBA, je voudrai éviter de prendre des mauvaises habitudes.

L'interet que je vois dans la méthode FillDown et qu'en te placant sur une cellule (ex: G1) tu peux mettre une formule genre (=A1*B1) et du coup toutes les autres cellules de la colonne G auront leur formule adaptée (ex: G2=A2*B2 ...). En gros principe que beaucoup de gens utilisent directement sous Excel en mettant une formule dans une cellule puis en tirant cette cellule jusqu'au bas de leur tableau.

Donc pour eviter cette methode FillDown, j'avais pensé à l'utilisation d'une boucle (car cela represente plus mon fonctionnement de prog aquis il y a qq temps de ça à l'université), mais en terme de complexité algorithmique (donc temps d'execution sur gros fichiers) j'ai l'impression que c'est plus couteux?

Merci d'avance pour toute réponse,
kabol69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 10h21   #4
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Les boucles, parcours de collections etc... sont à éviter comme la peste à chaque fois que l'on peut car elles sont très énergivores.

On les emploie beaucoup car très pratique, mais justement les limiter aux cas où des méthodes bien plus directes sont indisponibles ou non compatibles.

Elles sont évoquées dans touts les sujets ayant traits aux accélération de code justement...

pour le fun, voir ici :

Citation:
La deuxième méthode est donc 46 fois plus rapide avec 1 minute 41 secondes contre 1 heure 17 minutes et 41 secondes !
Il faut garder à l'esprit qu'au niveau langage, le VBA est hébergé par une application hôte (ici Excel) , donc faire appel à des fonctions natives du programme, quand disponibles, est bien plus efficace.

C'est pourquoi la connaissance d'Excel est très riche dans l'emploi du VBA Excel . On évite de réinventer la poudre...

cordialement,

Didier


cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/10/2011, 11h11   #5
Candidat au titre de Membre du Club
 
Homme
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 10
Points : 10
Super, merci beaucoup pour la réponse et ce lien très intéressant.
Bonne journée,
kabol69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h30.


 
 
 
 
Partenaires

Hébergement Web