Macro tri avec zone variable

  • Initiateur de la discussion Initiateur de la discussion VANNES56
  • Date de début Date de début

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 !

VANNES56

XLDnaute Nouveau
Bonjour,
Je fais appel à votre aide car je n’ai trouvé que partiellement la réponse à mon problème sur le Forum.Dans un 1er temps je cherchais une macro pour une zone d’impression variable.
En effet j’ai un fichier avec une liste déroulante qui permet de choisir une ville et d’obtenir le nombre de ventes sur le secteur ainsi que d’autres infos commerciales.Selon la ville, le fichier peut aller de 20 lignes à 200 lignes
Grâce à GPLIONEL que je remercie, j’ai trouvé sur une discussion la macro suivante
Sub IMPRLISTE()
'
x = 11
Range("B12").Select
While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
x = x + 1
Wend
ZONE = "B12:Y" & x & ""
Range(ZONE).Select
ActiveSheet.PageSetup.PrintArea = ZONE
End Sub

, il m’a suffit de rajouter la commande ActiveWindow.SelectedSheets.PrintOut Copies:=1, pour obtenir en un clic une impression du fichier avec mise en page automatique.
Par contre, le fichier est classé par défaut par n° de commande et j’ai besoin de laisser à l’utilisateur la possibilité de trier par nom de vendeur.J’ai donc enregistré une macro TRI que j’ai copié à la suite de la macro Zone d’impression.
La macro d’origine contenait Range (B11 :Y200) que j’ai transformé en range (Zone) pour aboutir à la macro suivante. Mais elle ne fonctionne pas, elle bloque à Aply.
Sub TRIALPHA()
'
' TRIALPHA Macro
'x = 11
Range("B12").Select
While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
x = x + 1
Wend
ZONE = "B12:Y" & x & ""
Range(ZONE).Select
ActiveSheet.PageSetup.PrintArea = ZONE
ActiveWorkbook.Worksheets("TRI PAR VENDEUR").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TRI PAR VENDEUR").Sort.SortFields.Add Key:=Range(ZONE), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("TRI PAR VENDEUR").Sort
.SetRange Range(ZONE)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Malgré mes recherches et plusieurs tenatives je n’arrive à rien.
Merci de votre aide
Extrait du fichier joint si besoin.
 

Pièces jointes

Re : Macro tri avec zone variable

Bonjour Vannes56 🙂,
Quand tu poste du 2007 sur le forum, il faut conserver l'extension .xslm. Là, ton fichier génère une erreur à l'ouverture (tu as du remplacer .xlsx par .xls pour que ça monte sur le forum), de plus, il a perdu ses macros...
D'autre part, tu essaies de trier le résultat de recherches, ça ne fonctionne pas, même pas à la main, les recherches redonnent les mêmes résultats pas triés...
Personnellement, je ferais un copier/coller spécial vers une feuille d'impression en gardant la mise en forme mais en remplaçant les formules par leurs valeurs. Là, tu pourras trier tes données par vendeurs, puis imprimer.
Bon courage 😎
 
- 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