premier problème, petite macro
Sub Macro1()
'remise à zéro de la zone d'impression
ActiveSheet.PageSetup.PrintArea = ""
'faire une mise en page élémentaire
With ActiveSheet.PageSetup
.CenterHorizontally = True
.CenterVertically = False
End With
'comme la page est trop grande pour une A4, j'ai placé un saut de page
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Range("A40")
'on calcule combien de cellules sont remplies
NbColonnes = Range("a1").CurrentRegion.Columns.Count
'le nombre a été pris sur le fichier
NbLignes = 85
'on sélectionne la zone d'impression
Range("A1").Resize(NbLignes, NbColonnes).Select
'on définit la zone d'impression
ActiveSheet.PageSetup.PrintArea = Selection.Address
'Mode prévue
ActiveWindow.SelectedSheets.PrintPreview
End Sub
pour le second problème la fonction recherche horizontale peut suffire
=HLOOKUP(B8;'6èmes'!A1:F46;46;FALSE) ce qui signifie qu'il faut rechercher le contenu de la case B8, sur la feuille 6èmes dans les cellules de A1 à F46 (je me suis arrêté à cette case tout à fait par hasard on peut étendre la sélection) il faut ensuite afficher la ligne 46 (ici ce sont les classeurs A4, il faut adapter ce chiffre pour les autres items) False c'est pour répondre à un contenu EXACT de la case B8 , on peut mettre à True si l'on ne veut pas respecter la casse, etc....