Page 1 sur 1

Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : mer. août 20, 2008 21:10
par Fredo_07
Bonjour,

qui peux me donner un coup de main pour créer une macro Excel

mon problème :
- pourvoir définir une zone d'impression multiple dont la dernière ligne varie au fur et à mesure que le nombre de compétiteur augmente.
- la denière ligne utilisée serait remplie par l'utilisateur du fichier XLS.

par exemple le tableau disponible dans la PJ :



- je rempli la case C2 avec la dernière ligne comportant une personne classée, disons que ce serait la valeur "X"

- je voudrais avoir une macro qui sélectionne les cellules A4 à B"X" et D4 à E"X" comme zone d'impression par exemple, si la dernière ligne est la ligne 9, la zone d'impression sera "$A$4:$B$9;$D$4$E$9"



j'ai réussi à concaténer les valeurs (voir formule de la case F1) mais pas à utiliser le résultat dans une macro avec l'instruction " ActiveSheet.PageSetup.PrintArea = "


qui sait comment faire ?

Merci beaucoup
Help_EVO.zip
(2.79 Kio) Téléchargé 213 fois

Re: Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : jeu. août 21, 2008 00:55
par E2C
Je sais pas si ça peut t'aider, mais avec la formule INDIRECT, tu peux définir une plage de cellule variable...
Et donc, avec ça dans ton fichier exemple :

Code : Tout sélectionner

=CONCATENER(INDIRECT("A" & C2);" ";INDIRECT("B" & C2);" ";INDIRECT("D" & C2);" ";INDIRECT("E" & C2))
Tu récupères ça : test nom 5 test prénom 5 35 12
(Concaténation des cellules A9, B9, D9, et E9)

Je n'ai pas vu de macro dans ton doc, mais tu dois pouvoir faire qqchose plus facilement avec cette formule, en tt cas je te le souhaite :)

Bon courage ;)

Re: Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : jeu. août 21, 2008 08:49
par Loulou41
Pourquoi tu ne le fais pas en php avec une base mysql?

Re: Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : jeu. août 21, 2008 09:32
par Mute
Effectivement c'est toujours mieux quand on utilise des outils libres mais de là à créer une base de donnée pour faire un simple tableau il y a à mon avis un pas que je ne franchirais pas.

toujours est il que notre problème de macro excel est resoluble en un seule ligne:

Code : Tout sélectionner

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.PrintArea = Range(Cells(4, 1), Cells(4, 2).End(xlDown)).Address & "," & Range(Cells(4, 4), Cells(4, 5).End(xlDown)).Address
End Sub
Ce bout de code utilise l'evenement before print. Donc sans rien avoir à faire, au moment d'appuyer sur le bouton print, excel va de lui même chercher cette procedure et met à jour la PrintArea. Pour que ça marche bien la procedure est incluse dans l'objet ThisWorkbook.

Il y a plein d'autre evenements disponibles dans Excel et on peut bien s'amuser avec. Imaginez la couleur de toutes les cellules qui changent à chaque fois que l'on clique ! :lol:

En pièce jointe le fichier mis à jour.

Re: Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : jeu. août 21, 2008 09:45
par punglas
Changer la formule dans la case F1 pour séparer les 2 zones de selection par , et non par ; --> =CONCATENER("$A$4:$B$";C2;",$D$4:$E$";C2)

Dans ta macro :

RangeFredo = Cells(1, 6) ' récupération de la valeur contenue dans la case F1
Range(RangeFredo).Select
ActiveSheet.PageSetup.PrintArea = RangeFredo
Application.ActivePrinter = "chemin de ton imprimante"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"chemin de ton imprimante", Collate:=True

Pierre

PS : oups me suis fait doubler par un expert ... :roll:

Re: Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : jeu. août 21, 2008 10:19
par Mute
Allons y pour un tableur libre mais je ne suis pas expert en macro OOo calc.

Re: Un coup de main sur une macro Excel pour le Freestyle SVP

Publié : jeu. août 21, 2008 17:45
par Fredo_07
OK merci à vous tous,

j'avais réussi à trouver une autre solution, mais comme rien n'est finalisé je vais voir vos astuces et peut être en faire une compilation !