Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de
chaque Sub avec une variable déclarée "Publique", mais apparemment ça
ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'---------------------
Private Sub Tri_ColA_Click() 'Ordre
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) +
2).Address
Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending
End Sub
Private Sub Tri_ColB_Click() 'Arrivée
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) +
2).Address
Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending
End Sub
Private Sub Tri_ColC_Click() 'Courrier
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) +
2).Address
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
'---------------------
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
J'ai mis les trois macros dans un module feuille; j'ai testé les deux macros :
Private Sub test1() MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address End Sub Private Sub test2() Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub
Pas de problème. Pour déboguer, ajoute : MsgBox MaPlage avant tri. Daniel
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'--------------------- Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
Merci pour vos lumières,
JP
J'ai mis les trois macros dans un module feuille; j'ai testé les deux
macros :
Private Sub test1()
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) +
2).Address
End Sub
Private Sub test2()
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
Pas de problème.
Pour déboguer, ajoute :
MsgBox MaPlage avant tri.
Daniel
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de
chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne
fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'---------------------
Private Sub Tri_ColA_Click() 'Ordre
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending
End Sub
Private Sub Tri_ColB_Click() 'Arrivée
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending
End Sub
Private Sub Tri_ColC_Click() 'Courrier
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
'---------------------
J'ai mis les trois macros dans un module feuille; j'ai testé les deux macros :
Private Sub test1() MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address End Sub Private Sub test2() Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub
Pas de problème. Pour déboguer, ajoute : MsgBox MaPlage avant tri. Daniel
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'--------------------- Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
Merci pour vos lumières,
JP
LSteph
Pour déclarer proprement si tu as besoin d'y faire appel depuis plusieurs sub et private sub
'--------------------- 'Dans un module standard :
Option Explicit Public Maplage as string
'---------------------
'dans ton private module
Option Explicit
Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
j-pascal a écrit :
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'--------------------- Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
Merci pour vos lumières,
JP
Pour déclarer proprement si tu as besoin d'y faire appel depuis
plusieurs sub et private sub
'---------------------
'Dans un module standard :
Option Explicit
Public Maplage as string
'---------------------
'dans ton private module
Option Explicit
Private Sub Tri_ColA_Click() 'Ordre
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending
End Sub
Private Sub Tri_ColB_Click() 'Arrivée
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending
End Sub
Private Sub Tri_ColC_Click() 'Courrier
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
'---------------------
j-pascal a écrit :
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de
chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne
fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'---------------------
Private Sub Tri_ColA_Click() 'Ordre
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending
End Sub
Private Sub Tri_ColB_Click() 'Arrivée
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending
End Sub
Private Sub Tri_ColC_Click() 'Courrier
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
'---------------------
Pour déclarer proprement si tu as besoin d'y faire appel depuis plusieurs sub et private sub
'--------------------- 'Dans un module standard :
Option Explicit Public Maplage as string
'---------------------
'dans ton private module
Option Explicit
Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
j-pascal a écrit :
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'--------------------- Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
Merci pour vos lumières,
JP
j-pascal
Bonjour Stéphane,
En fait, j'avais mis la "Public MaPlage" dans le module de feuille au lieu d'un module standard ... Mais ce que je voulais, c'est éviter la répétition de : "MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address" et donc juste derrière la déclaration de la variable, j'avais mis la formule ci-dessus. Apparemment ça n'avait pas fonctionné !
JP
Pour déclarer proprement si tu as besoin d'y faire appel depuis plusieurs sub et private sub
'--------------------- 'Dans un module standard :
Option Explicit Public Maplage as string
'---------------------
'dans ton private module
Option Explicit
Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
j-pascal a écrit :
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'--------------------- Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
Merci pour vos lumières,
JP
Bonjour Stéphane,
En fait, j'avais mis la "Public MaPlage" dans le module de feuille au
lieu d'un module standard ...
Mais ce que je voulais, c'est éviter la répétition de :
"MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) +
2).Address"
et donc juste derrière la déclaration de la variable, j'avais mis la
formule ci-dessus. Apparemment ça n'avait pas fonctionné !
JP
Pour déclarer proprement si tu as besoin d'y faire appel depuis plusieurs sub
et private sub
'---------------------
'Dans un module standard :
Option Explicit
Public Maplage as string
'---------------------
'dans ton private module
Option Explicit
Private Sub Tri_ColA_Click() 'Ordre
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending
End Sub
Private Sub Tri_ColB_Click() 'Arrivée
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending
End Sub
Private Sub Tri_ColC_Click() 'Courrier
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
'---------------------
j-pascal a écrit :
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de
chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne
fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'---------------------
Private Sub Tri_ColA_Click() 'Ordre
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending
End Sub
Private Sub Tri_ColB_Click() 'Arrivée
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending
End Sub
Private Sub Tri_ColC_Click() 'Courrier
MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address
Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending
End Sub
'---------------------
En fait, j'avais mis la "Public MaPlage" dans le module de feuille au lieu d'un module standard ... Mais ce que je voulais, c'est éviter la répétition de : "MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address" et donc juste derrière la déclaration de la variable, j'avais mis la formule ci-dessus. Apparemment ça n'avait pas fonctionné !
JP
Pour déclarer proprement si tu as besoin d'y faire appel depuis plusieurs sub et private sub
'--------------------- 'Dans un module standard :
Option Explicit Public Maplage as string
'---------------------
'dans ton private module
Option Explicit
Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------
j-pascal a écrit :
Bonjour,
Dans ce qui suit, je pensais mettre le calcul de "MaPlage" en dehors de chaque Sub avec une variable déclarée "Publique", mais apparemment ça ne fonctionne pas. Est-ce du fait qu'il s'agisse de "Private Sub" ?
'--------------------- Private Sub Tri_ColA_Click() 'Ordre MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[a3], Order1:=xlAscending End Sub Private Sub Tri_ColB_Click() 'Arrivée MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[b3], Order1:=xlAscending End Sub Private Sub Tri_ColC_Click() 'Courrier MaPlage = Range("A3:K" & Application.CountA(Range("G:G")) + 2).Address Range(MaPlage).Sort Key1:=[c3], Order1:=xlAscending End Sub '---------------------