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

Messages et délires divers qui ne trouvent pas leurs place dans les autres forums. ATTENTION! TOUT SUJET N'AYANT PAS LE MOINDRE RAPPORT AVEC L'EAU VIVE SERA EFFACE!
Avatar de l’utilisateur
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 :

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

Message 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
Avatar de l’utilisateur
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

Message 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 ;)
Avatar de l’utilisateur
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

Message par Loulou41 »

Pourquoi tu ne le fais pas en php avec une base mysql?
Avatar de l’utilisateur
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

Message 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.
Pièces jointes
Help_EVO.zip
(7.55 Kio) Téléchargé 222 fois
Avatar de l’utilisateur
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

Message 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:
Pièces jointes
Help_EVO.zip
Excel mis à jour
(9.71 Kio) Téléchargé 196 fois
Avatar de l’utilisateur
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

Message par Mute »

Allons y pour un tableur libre mais je ne suis pas expert en macro OOo calc.
Avatar de l’utilisateur
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

Message 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 !
Répondre