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
Un coup de main sur une macro Excel pour le Freestyle SVP
- Fredo_07
- Messages : 5796
- Inscription : lun. nov. 05, 2001 17:07
- ville : Beauchastel
- Navigue avec (bateau) : GuguiProd Shinobi, Prijon Cocaïne et Wavesport ZG 48
- département : 07
- club : CK DES TROIS VALLEES
- Rivière(s) sur laquelle je peux donner des infos : Eyrieux et ses affluents de la Drôme, Autres rivières de l'Ardèche et de la Drôme
- Contact :
- E2C
- Messages : 442
- Inscription : mer. avr. 28, 2004 20:00
- ville : LYON
- Navigue avec (bateau) : Orbit Fish, Magnum 72
- département : 69
- club : C.K.T.S. VILLEURBANNE
- Contact :
Re: Un coup de main sur une macro Excel pour le Freestyle SVP
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 :
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
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))(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
- Loulou41
- Messages : 167
- Inscription : mar. août 29, 2006 15:59
- ville : TOURS
- Navigue avec (bateau) : Quarks
- département : 37
- club : VAL DE L'INDRE CANOE KAYAK
- Rivière(s) sur laquelle je peux donner des infos : Loire
Indre - Localisation : Tours
Re: Un coup de main sur une macro Excel pour le Freestyle SVP
Pourquoi tu ne le fais pas en php avec une base mysql?
- Mute
- Messages : 82
- Inscription : lun. juin 02, 2008 11:27
- ville : Nantes
- Navigue avec (bateau) : Jackson Hero
- département : 44
- club : JEUNE KAYAK PARISIEN
Re: Un coup de main sur une macro Excel pour le Freestyle SVP
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:
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 !
En pièce jointe le fichier mis à jour.
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
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 !
En pièce jointe le fichier mis à jour.
- Pièces jointes
-
- Help_EVO.zip
- (7.55 Kio) Téléchargé 222 fois
- punglas
- Site Admin
- Messages : 6276
- Inscription : dim. déc. 23, 2001 11:45
- ville : Pins Justaret
- Navigue avec (bateau) : ZET CROSS pour le pentu.<br>
Scandal pour le facile.
Topolino pour preter aux potos.
TWINTIP pour le playboat.
TopoDuo pour emmener femmes et copines. - département : 31
- club : LA VAGUE PORTESIENNE
- Rivière(s) sur laquelle je peux donner des infos : Garonne - Ariège - Pyrénées et MAssif central
- Contact :
Re: Un coup de main sur une macro Excel pour le Freestyle SVP
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 ...
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 ...
- Pièces jointes
-
- Help_EVO.zip
- Excel mis à jour
- (9.71 Kio) Téléchargé 196 fois
- Mute
- Messages : 82
- Inscription : lun. juin 02, 2008 11:27
- ville : Nantes
- Navigue avec (bateau) : Jackson Hero
- département : 44
- club : JEUNE KAYAK PARISIEN
Re: Un coup de main sur une macro Excel pour le Freestyle SVP
Allons y pour un tableur libre mais je ne suis pas expert en macro OOo calc.
- Fredo_07
- Messages : 5796
- Inscription : lun. nov. 05, 2001 17:07
- ville : Beauchastel
- Navigue avec (bateau) : GuguiProd Shinobi, Prijon Cocaïne et Wavesport ZG 48
- département : 07
- club : CK DES TROIS VALLEES
- Rivière(s) sur laquelle je peux donner des infos : Eyrieux et ses affluents de la Drôme, Autres rivières de l'Ardèche et de la Drôme
- Contact :
Re: Un coup de main sur une macro Excel pour le Freestyle SVP
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 !
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 !