Macro tri automatique sr plusieurs feuilles
Coco33
-
NicoDisso Messages postés 231 Statut Membre -
NicoDisso Messages postés 231 Statut Membre -
Bonjour à tous,
j'aimerais faire une macro qui puisse trier automatiquement et alphabétiquement les données sur plusieurs feuilles qui sont elles-même déjà trier avec une mise en forme conditionnelle sur 3 colonnes...
Les tableaux sont identiques, donc les entêtes de la ligne 1 sont les mêmes sur toutes les feuilles, seules les données à trier changent.
mon code actuel qui marche sur une feuille seulement est :
Private Sub Worksheet_Change(ByVal adrcel As Range)
Range("Alpha").Sort _
Key1:=Range("Nom"), Order1:=xlAscending, _
Key2:=Range("Date"), Order2:=xlAscending, _
Key3:=Range("Ref"), Order3:=xlAscending, _
Header:=xlYes
End Sub
Chaque "zone" est définit telle que :
Alpha : Tout le document
Nom : Colonne C
Date : Colonne B
Ref : Colonne A
De plus, je ne sais pas si c'est utile dans le cas de macro, ma formule de mise en forme conditionnelle est la suivante :
=SI($B8<>"";SOMMEPROD(($B$2:$B$2009=$B8)*($C$2:$C$2009=$C8))>1)
J'aimerais bien donc :
- Soit une macro qui puisse réagir sur toutes les feuilles du classeur
- Soit si ce n'est pas possible une formule de mise en forme conditionnelle qui puisse agir sur les colonnes entières B et C (car ma formule va jusqu'à la ligne 2009).
Le tableau est amené à se remplir extrêmement vite et à être donc très imposant.
Un grand merci d'avance si vous pouviez m'aider !!!
j'aimerais faire une macro qui puisse trier automatiquement et alphabétiquement les données sur plusieurs feuilles qui sont elles-même déjà trier avec une mise en forme conditionnelle sur 3 colonnes...
Les tableaux sont identiques, donc les entêtes de la ligne 1 sont les mêmes sur toutes les feuilles, seules les données à trier changent.
mon code actuel qui marche sur une feuille seulement est :
Private Sub Worksheet_Change(ByVal adrcel As Range)
Range("Alpha").Sort _
Key1:=Range("Nom"), Order1:=xlAscending, _
Key2:=Range("Date"), Order2:=xlAscending, _
Key3:=Range("Ref"), Order3:=xlAscending, _
Header:=xlYes
End Sub
Chaque "zone" est définit telle que :
Alpha : Tout le document
Nom : Colonne C
Date : Colonne B
Ref : Colonne A
De plus, je ne sais pas si c'est utile dans le cas de macro, ma formule de mise en forme conditionnelle est la suivante :
=SI($B8<>"";SOMMEPROD(($B$2:$B$2009=$B8)*($C$2:$C$2009=$C8))>1)
J'aimerais bien donc :
- Soit une macro qui puisse réagir sur toutes les feuilles du classeur
- Soit si ce n'est pas possible une formule de mise en forme conditionnelle qui puisse agir sur les colonnes entières B et C (car ma formule va jusqu'à la ligne 2009).
Le tableau est amené à se remplir extrêmement vite et à être donc très imposant.
Un grand merci d'avance si vous pouviez m'aider !!!
A voir également:
- Macro tri automatique sr plusieurs feuilles
- Comment faire un tri personnalisé sur excel - Guide
- Réponse automatique thunderbird - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
1 réponse
Pour info, tu ne peux pas donner le meme nom à plusieurs plages de données dans un meme classeur
Dans VBA, ajoute un module et copies y cette procedure ( tout ce qui es en gras ).
Public Sub Tri_MultiFeuille()
Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Activate
Cells.Select
Selection.Sort _
Key1:=Range("C2"), _
Order1:=xlAscending, _
Key2:=Range("B2"), _
Order2:=xlAscending, _
Key3:=Range("A2"), _
Order3:=xlAscending, _
Header:=xlYes, _
Range("A1").Select
Next Sh
MsgBox "Tri Multi-Feuille terminé...", vbInformation, "Information"
End Sub
Et Voila...
Dans VBA, ajoute un module et copies y cette procedure ( tout ce qui es en gras ).
Public Sub Tri_MultiFeuille()
Dim Sh As Worksheet
For Each Sh In Worksheets
Sh.Activate
Cells.Select
Selection.Sort _
Key1:=Range("C2"), _
Order1:=xlAscending, _
Key2:=Range("B2"), _
Order2:=xlAscending, _
Key3:=Range("A2"), _
Order3:=xlAscending, _
Header:=xlYes, _
Range("A1").Select
Next Sh
MsgBox "Tri Multi-Feuille terminé...", vbInformation, "Information"
End Sub
Et Voila...