définir une zone impression en fonction de valeur de cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kiki31140

XLDnaute Junior
Bonjour forum, bonjour tous

Voici ma nouvelle problématique
dans mon fichier test joint, j'ai une vingtaine de ligne sur 3 colonnes : commercial , client, montant
J'ai réalisé un tri puis des sous-totaux pour chaque commercial
Mon vrai fichier de travail comprends au moins 10 000 lignes

Je n'ai rien trouvé dans les discussions sur ce que je souhaite faire :
dans un premier temps, faire une impression (2 pages maxi) pour chaque commercial
dans un deuxième temps, faire une impression seulement des totaux et sous totaux
je ne suis pas réfractaire aux boites de dialogue

par avance , merci pour votre aide
KIKI
 

Pièces jointes

Bonjour et Super merci youki
c'est exactement ce que je cherche.
Est-ce qu'il est possible d'intégrer dans la boite de dialogue un ligne total et qu'ensuite dans l'onglet IMP, on aurait les sous-totaux de tous les commerciaux.
j'ai cherché des commandes VBA autour de la fonction sous-total, je n'ai rien trouvé
Je cherchais comment réduire les lignes pour ne voir que les sous-totaux
merci encore
kiki
 
Bonsoir Forum, bonsoir Youki
j'ai essayé d'adapter la macro au fichier d'origine.
Je n'avais pas toutes les données au début de la discussion
Voici la nouvelle petite problématique :
la colonne commercial est en h et je dois pouvoir lancer la macro depuis n'importe quelle feuille (les differentes feuilles s'appellent mois_année)

j'ai retouché la macro de youki.
Elle lance bien la liste dans la listebox, par contre, la macro beug sur le nom de la feuille active.
voici l'extrait :

Private Sub ListBox1_Click()
Feuil4.[A2:J45000].ClearContents
r = 2
For lig = 2 To Worksheets(ActiveSheet.Name).[A65000].End(10).Row
If Worksheets(ActiveSheet.Name).Cells(lig, 2) = ListBox1 Then
Feuil4.Range("H" & r & ":G" & r).Value = Worksheets(ActiveSheet.Name).Range("H" & lig & ":G" & lig).Value
r = r + 1
End If
Next
Feuil4.Select
Unload UserForm1
End Sub

--------------------
je mets le reste du code car ça beug aussi sur les totaux :
Sub commercial()
Set dico = CreateObject("Scripting.Dictionary")
a = Range("H2:H" & [A65000].End(xlUp).Row) ' tableau a(n,1)
For i = LBound(a) To UBound(a)
If Left(a(i, 1), 5) <> "Total" Then dico(a(i, 1)) = ""
Next i
UserForm1.Caption = "CHOIX DU COMMERCIAL"
UserForm1.ListBox1.List = Application.Transpose(dico.keys)
UserForm1.Show
End Sub
Sub total()
Feuil4.[A2:J45000].ClearContents
r = 2
For lig = 2 To Worksheets(ActiveSheet.Name).[A65000].End(10).Row
If Left(Sheets().Cells(lig, 1), 5) = "Total" Then
Worksheets(ActiveSheet.Name).Range("H" & r & ":G" & r).Value = Worksheets(ActiveSheet.Name).Range("H" & lig & ":G" & lig).Value
r = r + 1
End If
Next
Worksheets(ActiveSheet.Name).Select
Unload UserForm1

End Sub

------------------------------------------

merci d'avance pour le coup de main
bonne soirée
christian
 
Bonsoir Christian,
Sans fichier exemple dur dur de voir !
Déjà le End(10) je sais pas ou tu là pioché mais pour moi c'est (3) ou xlUp
For lig = 2 To Worksheets(ActiveSheet.Name).[A65000].End(10).Row
Le Worksheets(ActiveSheet.Name). n'a pas lieu d'être car c'est la feuil active donc
For lig = 2 To [A65000].End(3).Row
Pour le reste sans fichier exemple je peux pas aller plus loin et ne vois rien d'autres.
Bruno
 
Bonjour,
Essai ceci . . .
Bruno
VB:
Private Sub ListBox1_Click()
Feuil4.[A2:J45000].ClearContents
r = 2
For lig = 2 To [H65000].End(3).Row
If Cells(lig, 2) = ListBox1 Then
Feuil4.Range("H" & r & ":G" & r).Value = Range("H" & lig & ":G" & lig).Value
r = r + 1
End If
Next
Feuil4.Select
Unload UserForm1
End Sub
 
Bonjour Bruno
merci pour ton aide précieuse
j'ai lancé la maco "commercial"
ça se fonctionne, , j'ai bien la première ligne de titre de colonne qui s'affiche, par contre rien en dessous.
j'ai lance "total"
ça bloque ici : If Left(Sheets().Cells(lig, 1), 5) = "Total" Then
sur sheets

merci d'avance
christian
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour