eh bien oui, les macro ne sont pas mon fort

M

margo

Guest
bonsoir,

Voilà, j'ai créé un classeur qui contient douze feuilles mensuellles.
Chaque mois, je dois imprimer le résultat par l'intermédiaire d'une 13e feuille que j'ai créé au format du formulaire du cerfa nécessaire en 3 ex.

J'aimerai pouvoir, mois après mois éditer ce formulaire.

Or, la simplette que je suis, se me dit que je pourrai créer une copie attachée au mois concerné, ce qui reviendrait à avoir minimum 24 feuilles ...

Par contre, ma nature 'pratique' me dit que je pourrai demander dans une procédure de choisir la feuille à éditer ... mais çà c'est trop compliqué pour moi et j'ai besoin d'aide, ne serait-ce pour me dire si c'est réalisable.

Je vous remercie par avance
Margo
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO Jouer avec les Plages Nommées en VBA

Re Bonsoir Charly, Margo

Et bien comme ça on peut vérifier si les deux méthodes retourne bien les mêmes résultats !

Et comme ça aussi Margo aura l'empbarras du choix !

Moi en tout cas j'ai trouvé marrant cette Funtion :

Set CellMonth = Worksheets(CStr(Me.ListBox1)).Range(RangeAddress(Cell.Name.Name))

Mais c'est vrai qu'Indirect fait très bien ça aussi sans se casser la tête lol

Bonne Soirée
[ol]@+Thierry[/ol]
 

Charly2

Nous a quittés en 2006
Repose en paix
Re:=> DEMO Jouer avec les Plages Nommées en VBA

re bonsoir Thierry et Margo,

Je viens de regarder ta démo : super !

Du coup, j'ai un peu plus poussé les tests pour la formule INDIRECT et je me suis aperçu que cela bloquait pour la feuille SEPTEMBRE 05 qui devient une date en étant saisie dans la feuille imprim LASER.

Ta solution est donc bien plus complète que celle consistant à passer uniquement par formules ;)

A+
 
M

MARGO

Guest
Re:=> DEMO Jouer avec les Plages Nommées en VBA

Bonsoir à tous

Merci pour les 2 propositions.

Thierry : peux tu me dire s'il y a un moyen de ne pas imprimer la zone du mois voulu, apparemment elle apparaît inévitablement.

J'ai compris (ou presque :whistle: ) ce que j'ai lu dans VBA, je tire mon chapeau, mais franchement, ce sont des éléments que je n'aurai pas pu trouver seule... MERCI

Si je transferts sur un autre classeur, comment dois je m'y prendre ?? un copier-coller ne suffit pas - y a t il une astuce ???


Charly : Comment fonctionne cette fonction ?? J'ai regardé : rien VBA, cela paraît tellement simple ?? En enlevant '05' à septembre 05, elle fonctionne aussi bien. J'ai regardé l'aide de la fonction indirect, mais je me pose une question : peut-on faire référence à plusieurs cellules et peut on faire une somme de ces cellules par exemple.

J'utilise un certain nombre de classeurs qui pourraient en beneficier. Cela me parait tellement tellement simple !

Encore une chose Charly, comment se fait -il que le contenu de la cellule c4 n'apparaisse pas à l'aperçu ou à l'impression, pourtant elle fait partie de la zone d'impression... et il ne s'agit pas d'une formule ??
En tous cas MERCI aussi à toi

Merci encore - un ENORME :kiss:
Tiens, nous sommes le 26, c'est mon anniv,
chouette ! à la place de me donner 1000 F (au monopoly) J'ai reçu un plus beau cadeau... et ulie ! C'est beau l'entraide d'Internet...

oh, je suis toute chose :eek:

MERCI à tous
 

Charly2

Nous a quittés en 2006
Repose en paix
Re:=> DEMO Jouer avec les Plages Nommées en VBA

Bonsoir Margo, bonsoir Thierry,
bonsoir à toutes et à tous,
bonsoir à la tata Josette d'Hervé :)

Je suppose que Thierry va revenir te donner des détails, mais pour la ListBox, dans la barre d'outils Visual Basic (Affichage / Barre d'Outils), tu cliques sur l'icône correspondant au mode création (règle + équerre + crayon), tu cliques avec le bouton droit sur la ListBox et tu choisis Propriétés. Là, tu cherches PrintObject que tu places à False.

Sinon, pour la fonction INDIRECT, elle est effectivement très pratique et ta feuille en est un exemple parfait.

Pour faire référence à plusieurs cellules pour faire un somme comme tu le demandes, tu peux indiquer :

=SOMME(INDIRECT(A1&'!B1:B10'))

avec le nom de la feuille en A1 (e.g. Feuil1), cela reviendrait à écrire :

=SOMME(Feuil1!B1:B10)

Cette fonction va utiliser le contenu de la cellule comme une référence (nom de classeur, de feuille ou même encore une ou des références de cellules).

Pour la cellule C4, j'ai utilisé un format nombre personnalisé : ';;;' elle sera invisible (sauf dans la barre de formule) quelle que soit le type de données.

Et puis tiens, pour ton anniversaire, je te fais un :kiss:

A+ ;)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:=> DEMO Jouer avec les Plages Nommées en VBA

Bojour Margo, Charly, le Forum

Bon alors tout d'abord Bon Anniversaire Margo !

Pour le Print de l'Objet, donc Charly a déjà parfaitement bien répondu, mais on peut même faire plus global (valable pour tous les objets ActiveX ou non)

1) Click Droit (Pour les ActiveX une fois en mode Design => la petite équerre + la règle + le crayon parfaitement décrite par Charly)

2) Menu Contextuel du Click Droit 'Format du Contrôle'

3) Onglet 'Propriétés'

4) Décocher 'Imprimer Objet'


Le pire c'est que j'y avais pensé, mais bien évidemment j'ai oublié lol

Bonne Journée
[ol]@+Thierry[/ol]


PS Pour Transmettre dans un Autre Classeur, il syffit surtout de récupérer les codes dans le Private Module de La Feuille Imprim LAZER et aussi dans 'ThisWorkBook'. Ensuite tu dessines une ListBox de la Barre D'Outils Contrôles (Numéro 2 ci-dessous) qui doit donc se nommer 'ListBox1'



Le Premier Bouton est bien le 'Mode Design', le 8ème est un Contrôle 'ListBox'

Message édité par: _Thierry, à: 26/04/2006 07:57
 
M

MARGO

Guest
Merci Charly, Thierry et à tous

Merci Charly, THierry, Antiphot, et tous ceux qui m'ont assistée.

Merci de votre aide, de votre patience,
Merci pour vos précieux conseils, et explications
et Merci pour vos sourires qui crèvent l'écran.
:kiss:
Margo
 

Discussions similaires

Réponses
3
Affichages
854

Statistiques des forums

Discussions
312 697
Messages
2 091 065
Membres
104 750
dernier inscrit
Chukky