Imprimer une plage à partir d'un choix combobox [Résolu/Fermé]

Signaler
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020
-
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020
-
bonjour,
Sur un fichier XL2013 avec 12 onglets,
8 onglets ont 7 plages déférentes à imprimer (dans chacune de ces onglets il y a 7 plages)
comment faire par macro pour imposer l'impression à une de ces plages (onglet actif) à partir d'un choix dans un ComboBox dans un UserForm
Merci d'avance
cordialement

3 réponses

Messages postés
12672
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 septembre 2020
2 016
Bonjour

Comment se présentent ces plages , les unes à côté des autres ? les unes en dessous des autres ?
Un exemple de ton fichier est nécessaire si tu veux obtenir une aide
A poster sur cjoint.com, faire créer le lien et revenir ici indiquer le lien fourni

Cdlmnt
Via
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020
3
Merci bien Via
Voila mon fichier exemple: http://www.cjoint.com/c/EFxpdmmwYro
Messages postés
12672
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 septembre 2020
2 016 >
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020

Re

J'ai une erreur macro à l'ouverture du classeur
Ensuite tes feuilles étant protégées par mot de passe je ne peux y accéder

Néanmoins il faut définir chaque zone d'impression en fonction du choix
Macro à affecter au bouton Imprimer de l'userform
Select case ComboBox1.value
Case "Résultats des contrôles du 1er trimestre"
ActiveSheet.PageSetup.PrintArea = "$A$2:$T$63"
Case etc (autant que de choix possibles) avec indication de la plage adéquate
.....
End select

Cdlmnt
Via
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020
3
J'ai oublié de vous éclaircir une chose, c'est Les noms des plages d'impression :
Résultats du 1er trimestre= Playa1 : =!$A$2:$U$60
Résultats du 2e trimestre= Playa2 : =!$A$64:$U$122
Résultats du 3e trimestre= Playa3 := !$A$126:$U$184
Resultat des 3 trimestres=Ma plage : =!$A$188:$U$246
Résultats des contrôles du 1er trimestre= Ma plage 1 : =!$W$2:$AJ$60
Résultats des contrôles du 2e trimestre=Ma plage2 : =!$W$64:$AJ$122
Résultats des contrôles du 3e trimestre=Ma plage3 : =!$W$126:$AJ$184
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020
3
Bonjour,
Merci Via
Voici mon fichier exemple déprotégé: https://www.cjoint.com/c/EFxrNsS1VDL
et les noms des plages à imprimer:
Résultats du 1er trimestre= Playa1 : =!$A$2:$U$60
Résultats du 2e trimestre= Playa2 : =!$A$64:$U$122
Résultats du 3e trimestre= Playa3 := !$A$126:$U$184
Résultat des 3 trimestres=Ma plage : =!$A$188:$U$246
Résultats des contrôles du 1er trimestre= Ma plage 1 : =!$W$2:$AJ$60
Résultats des contrôles du 2e trimestre=Ma plage2 : =!$W$64:$AJ$122
Résultats des contrôles du 3e trimestre=Ma plage3 : =!$W$126:$AJ$184
Merci
Cordialement
Messages postés
12672
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 septembre 2020
2 016
Re

Tu ne peux pas passer par des plages nommées car elles ne seront valables que pour une feuille
Les plages doivent être indiquées dans la macro
macro à associer au bouton Imprimer de l'userform
Private Sub CommandButton1_Click()
Select Case ComboBox1.Value
Case "Résultats des contrôles du 1er trimestre"
ActiveSheet.PageSetup.PrintArea = "$A$2:$U$60"
Case "Résultats des contrôles du 2e trimestre"
ActiveSheet.PageSetup.PrintArea = "$A$64:$U$122"
Case "Résultats des contrôles du 3e trimestre"
ActiveSheet.PageSetup.PrintArea = "A$126:$U$184"
Case "Résultats du 1er trimestre"
ActiveSheet.PageSetup.PrintArea = "$W$2:$AJ$60"
Case "Résultats du 2e trimestre"
ActiveSheet.PageSetup.PrintArea = "$W$64:$AJ$122"
Case "Résultats du 3e trimestre"
ActiveSheet.PageSetup.PrintArea = "$W$126:$AJ$184"
Case "Résultats des 3 trimestres"
ActiveSheet.PageSetup.PrintArea = "$A$188:$U$246"
End Select
 ActiveWindow.SelectedSheets.PrintOut copies:=1
End Sub


A tester pour toutes les configurations

Cdlmnt
Via
Messages postés
182
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
8 juillet 2020
3
Merci infiniment Via