Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) affichage Shape sous condition !

9 réponses
Avatar
j-pascal
Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne s'affiche
pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP

9 réponses

Avatar
LSteph
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne
s'affiche pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP


Avatar
j-pascal
Bonsoir Stéphane,

Merci, mais ça ne fonctionne pas !
Peut-être parce-que j'ai déjà un DoEvents au début de cette proc. ??

@+ ?

JP

"LSteph" a écrit dans le message de news:
%23eLdVYj%
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne s'affiche
pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP




Avatar
LSteph
Bonjour J-Pascal,


Merci, mais ça ne fonctionne pas !
Si,si! ... cela fonctionne!

... et parfaitement selon le bout de code que tu as donné!!

Peut-être parce-que j'ai déjà... (mis le doigt dessus)


:o)
...alors à toi de déterminer dans ce cas:
si tu teste, ce qui me semble une piste privilégiée,
avec ou sans le DoEvents au début et le cas échéant insérer un petit
wait histoire de temporiser...
sinon,
donne l'ensemble ou plus circonstantiellement partie complète du code
qui est sensé être impliqué, ...

merci

@+

--
lSteph

;-) Même si certains ici passent pour des druides, il n'y a pas de fakir
(d'ailleurs pour ma part ne me sens ni l'un ni l'autre)

--

soit tu reviens avec
Bonsoir Stéphane,

Merci, mais ça ne fonctionne pas !
Peut-être parce-que j'ai déjà un DoEvents au début de cette proc. ??

@+ ?

JP

"LSteph" a écrit dans le message de news:
%23eLdVYj%
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne
s'affiche pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP







Avatar
j-pascal
Bonsoir Stéphane,

Tu l'auras voulu ? Il est là ! :

'------------------------------------------------
Private Sub Import_Osi_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String
Dim NouvelExport As Variant

ThisWorkbook.Unprotect '"", True, True '09/09

'Menu.Hide
Unload Menu
DoEvents '08/09

Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and SettingstotoBureau" 'pour maintenance
'ChDir "C:Documents and Settingsjean-pascalBureau" 'pour maintenance
'---------------- 18/09
' On Error GoTo rRr
' ChDir "C:Documents and SettingstotoBureau"
' Exit Sub
'rRr:
' ChDir "C:Documents and Settings"
'----------------------

nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " & nomFichier
& Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Osi ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

Sheets("import osi").Visible = True
Sheets("import osi").Select

Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("import osi").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("import osi").Visible = False

Sheets("synth. xx & yy").Select

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True '??

DoEvents 'ici 18/09

NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False '??
'---------------------
'Range("A2").Select
Application.ScreenUpdating = True

ThisWorkbook.Protect "", True, True '09/09

End Sub
'------------------------------------------------

Je sais, il y a encore des Range(" ").select à éliminer ;-) et sûrement
plein de choses qui ne vont pas ...

Bon courage :o) !!

JP

PS : avec un point d'arrêt, ça fonctionne ! Le pb ne doit pas être si grave
... en tout cas, celui-ci ne m'empêchera pas de dormir ;-)
"LSteph" a écrit dans le message de news:
e8gnKWo%
Bonjour J-Pascal,


Merci, mais ça ne fonctionne pas !
Si,si! ... cela fonctionne!

... et parfaitement selon le bout de code que tu as donné!!

Peut-être parce-que j'ai déjà... (mis le doigt dessus)


:o)
...alors à toi de déterminer dans ce cas:
si tu teste, ce qui me semble une piste privilégiée,
avec ou sans le DoEvents au début et le cas échéant insérer un petit wait
histoire de temporiser...
sinon,
donne l'ensemble ou plus circonstantiellement partie complète du code qui
est sensé être impliqué, ...

merci

@+

--
lSteph

;-) Même si certains ici passent pour des druides, il n'y a pas de fakir
(d'ailleurs pour ma part ne me sens ni l'un ni l'autre)

--

soit tu reviens avec
Bonsoir Stéphane,

Merci, mais ça ne fonctionne pas !
Peut-être parce-que j'ai déjà un DoEvents au début de cette proc. ??

@+ ?

JP

"LSteph" a écrit dans le message de news:
%23eLdVYj%
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne
s'affiche pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP









Avatar
j-pascal
Re,

Ok avec point d'arrêt ou bien sûr en "pas à pas" !
Je n'ai pas inséré le code "intermédiaire" situé sur les "Feuil" (code
événementiel) ...

JP

"j-pascal" a écrit dans le message de news:
O$Zkluj%
Bonsoir Stéphane,

Merci, mais ça ne fonctionne pas !
Peut-être parce-que j'ai déjà un DoEvents au début de cette proc. ??

@+ ?

JP

"LSteph" a écrit dans le message de news:
%23eLdVYj%
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne
s'affiche pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP







Avatar
LSteph
Bonsoir,
;-)

il y a bien un doevents au début mais
..aussi..
un truc à false :

'...
Application.ScreenUpdating = True
''DoEvents 'ici 18/09 plus la peine

NouvelExport = [b1].Value
'...

'--
'lSteph

Bonsoir Stéphane,

Tu l'auras voulu ? Il est là ! :

'------------------------------------------------
Private Sub Import_Osi_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String
Dim NouvelExport As Variant

ThisWorkbook.Unprotect '"", True, True '09/09

'Menu.Hide
Unload Menu
DoEvents '08/09

Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and SettingstotoBureau" 'pour maintenance
'ChDir "C:Documents and Settingsjean-pascalBureau" 'pour maintenance
'---------------- 18/09
' On Error GoTo rRr
' ChDir "C:Documents and SettingstotoBureau"
' Exit Sub
'rRr:
' ChDir "C:Documents and Settings"
'----------------------

nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier & Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo +
vbQuestion, "validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste
le fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Osi ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

Sheets("import osi").Visible = True
Sheets("import osi").Select

Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("import osi").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("import osi").Visible = False

Sheets("synth. xx & yy").Select

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True '??

DoEvents 'ici 18/09

NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False '??
'---------------------
'Range("A2").Select
Application.ScreenUpdating = True

ThisWorkbook.Protect "", True, True '09/09

End Sub
'------------------------------------------------

Je sais, il y a encore des Range(" ").select à éliminer ;-) et sûrement
plein de choses qui ne vont pas ...

Bon courage :o) !!

JP

PS : avec un point d'arrêt, ça fonctionne ! Le pb ne doit pas être si
grave ... en tout cas, celui-ci ne m'empêchera pas de dormir ;-)
"LSteph" a écrit dans le message de news:
e8gnKWo%
Bonjour J-Pascal,


Merci, mais ça ne fonctionne pas !
Si,si! ... cela fonctionne!

... et parfaitement selon le bout de code que tu as donné!!

Peut-être parce-que j'ai déjà... (mis le doigt dessus)


:o)
...alors à toi de déterminer dans ce cas:
si tu teste, ce qui me semble une piste privilégiée,
avec ou sans le DoEvents au début et le cas échéant insérer un petit
wait histoire de temporiser...
sinon,
donne l'ensemble ou plus circonstantiellement partie complète du code
qui est sensé être impliqué, ...

merci

@+

--
lSteph

;-) Même si certains ici passent pour des druides, il n'y a pas de fakir
(d'ailleurs pour ma part ne me sens ni l'un ni l'autre)

--

soit tu reviens avec
Bonsoir Stéphane,

Merci, mais ça ne fonctionne pas !
Peut-être parce-que j'ai déjà un DoEvents au début de cette proc. ??

@+ ?

JP

"LSteph" a écrit dans le message de news:
%23eLdVYj%
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne
s'affiche pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP












Avatar
j-pascal
Bonjour Stéphane,

Tu as donc réussi à trouver ce que tu cherchais au milieu de ce champ ... de
bataille ???
Alors là ! Respect !! Bravo ! Cette réponse va illuminer ma journée ;-)
Merci +++++++++++++++

A bientôt :o)

JP

Question subsidiaire (concernant une de tes nombreuses spécialités) :
Peut-on "contracter" les "Select" et "Selection" dans ce qui suit ? J'ai
fait des essais, mais ce n'est pas concluant. Je suis hanté par les Range("
").select !! ;-)

'---------------------------------
Range("D7").Select
Range(Selection, Selection.End(xlDown)).Copy

Range("P7").Select
Selection.PasteSpecial Paste:=xlPasteValues
'---------------------------------

PS 2 : Y-a-t-il une nuance entre Range("A1") et [a1] (forme que tu emploies
souvent) ; par ailleurs, j'ai noté que tu avais une façon très concise de
"coder" les tris ...

Merci ;-)

"LSteph" a écrit dans le message de news:
%23ho6UOx%
Bonsoir,
;-)

il y a bien un doevents au début mais
..aussi..
un truc à false :

'...
Application.ScreenUpdating = True
''DoEvents 'ici 18/09 plus la peine

NouvelExport = [b1].Value
'...

'--
'lSteph

Bonsoir Stéphane,

Tu l'auras voulu ? Il est là ! :

'------------------------------------------------
Private Sub Import_Osi_Click()

Dim typeFichier As String
Dim Titre As String
Dim nomFichier As Variant 'string ?
Dim réponse4 As Variant
Dim NbItems As Integer
Dim LeNom As String
Dim NouvelExport As Variant

ThisWorkbook.Unprotect '"", True, True '09/09

'Menu.Hide
Unload Menu
DoEvents '08/09

Application.ScreenUpdating = False
LeNom = ActiveWorkbook.Name 'prévient les modifs !

typeFichier = "Fichiers, *.csv; *.xls"
Titre = "sélectionnez le fichier à importer"

ChDrive "C"
ChDir "C:Documents and SettingstotoBureau" 'pour maintenance
'ChDir "C:Documents and Settingsjean-pascalBureau" 'pour
maintenance
'---------------- 18/09
' On Error GoTo rRr
' ChDir "C:Documents and SettingstotoBureau"
' Exit Sub
'rRr:
' ChDir "C:Documents and Settings"
'----------------------

nomFichier = Application.GetOpenFilename(typeFichier, , Titre)

If nomFichier = False Then
MsgBox "Aucun fichier n'a été sélectionné."
Exit Sub
Else
nomFichier = Dir(nomFichier)
réponse4 = MsgBox("Vous avez sélectionné le fichier : " &
nomFichier & Chr(10) _
& Chr(10) & "Confirmez-vous ce choix ?", vbYesNo + vbQuestion,
"validation en cours")
If réponse4 = vbNo Then
Exit Sub
End If
End If

If Right(nomFichier, 3) = "xls" Then
Workbooks.Open nomFichier
Else
Workbooks.OpenText nomFichier, Tab:=True, semicolon:=True,
local:=True
End If

NbItems = Application.WorksheetFunction.CountA(Range("A:A")) 'teste le
fichier ouvert

If NbItems > 322 Then 'capacité max d'importation !
MsgBox "Votre fichier est trop grand !" & Chr(10) & Chr(10) & _
"Vérifiez votre import Osi ..."
Exit Sub
End If

Cells.Select
Selection.Copy

Windows(LeNom).Activate

Sheets("import osi").Visible = True
Sheets("import osi").Select

Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Windows(nomFichier).Activate
ActiveWorkbook.Close

Sheets("import osi").Activate 'modif 08/09
ActiveSheet.Protect Password:=""
Sheets("import osi").Visible = False

Sheets("synth. xx & yy").Select

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True '??

DoEvents 'ici 18/09

NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False '??
'---------------------
'Range("A2").Select
Application.ScreenUpdating = True

ThisWorkbook.Protect "", True, True '09/09

End Sub
'------------------------------------------------

Je sais, il y a encore des Range(" ").select à éliminer ;-) et sûrement
plein de choses qui ne vont pas ...

Bon courage :o) !!

JP

PS : avec un point d'arrêt, ça fonctionne ! Le pb ne doit pas être si
grave ... en tout cas, celui-ci ne m'empêchera pas de dormir ;-)
"LSteph" a écrit dans le message de news:
e8gnKWo%
Bonjour J-Pascal,


Merci, mais ça ne fonctionne pas !
Si,si! ... cela fonctionne!

... et parfaitement selon le bout de code que tu as donné!!

Peut-être parce-que j'ai déjà... (mis le doigt dessus)


:o)
...alors à toi de déterminer dans ce cas:
si tu teste, ce qui me semble une piste privilégiée,
avec ou sans le DoEvents au début et le cas échéant insérer un petit
wait histoire de temporiser...
sinon,
donne l'ensemble ou plus circonstantiellement partie complète du code
qui est sensé être impliqué, ...

merci

@+

--
lSteph

;-) Même si certains ici passent pour des druides, il n'y a pas de fakir
(d'ailleurs pour ma part ne me sens ni l'un ni l'autre)

--

soit tu reviens avec
Bonsoir Stéphane,

Merci, mais ça ne fonctionne pas !
Peut-être parce-que j'ai déjà un DoEvents au début de cette proc. ??

@+ ?

JP

"LSteph" a écrit dans le message de news:
%23eLdVYj%
Bonsoir J_Pascal,

Normal on passe directement du code au msgbox
ajoute un doevents pour laisser la main (attention ne pas en abuser)

'...
ActiveSheet.Shapes("AutoShape 239").Visible = True
DoEvents 'ici
NouvelExport = [b1].Value
'...


'lSteph

Bonsoir,

Si je mets un point d'arrêt sur la 3ème ligne de ce code, mon Shape
s'affiche. Si j'exécute la procédure "normalement", le Shape ne
s'affiche pas !

'--------------- 18/09
ActiveSheet.Shapes("AutoShape 239").Visible = True
NouvelExport = [b1].Value
MsgBox ("Nouvel Export " & NouvelExport), vbInformation, "maj
effectuée"
ActiveSheet.Shapes("AutoShape 239").Visible = False
'---------------------

Merci d'avance pour votre aide.

JP














Avatar
LSteph
Bonjour,

A vue de nez:

Range("d7",[d7].end(xldown).address).copy destination:=[P7]

PS 2 quel tri???





Peut-on "contracter" les "Select" et "Selection" dans ce qui suit ? J'ai
fait des essais, mais ce n'est pas concluant. Je suis hanté par les
Range(" ").select !! ;-)

'---------------------------------
Range("D7").Select
Range(Selection, Selection.End(xlDown)).Copy

Range("P7").Select
Selection.PasteSpecial Paste:=xlPasteValues
'---------------------------------

PS 2 : Y-a-t-il une nuance entre Range("A1") et [a1] (forme que tu
emploies souvent) ; par ailleurs, j'ai noté que tu avais une façon très
concise de "coder" les tris ...

Merci ;-)


Avatar
j-pascal
Bonjour Stéphane,


"LSteph" a écrit dans le message de news:
eVl2ji1%
Bonjour,

A vue de nez:

Range("d7",[d7].end(xldown).address).copy destination:=[P7]


J'essaye et je te dis ...

PS 2 quel tri???



Un tri "classique" comme ce qui suit (j'ai noté que tu avais une façon très
particulière de "synthétiser" le code) :

'---------------
Sub Macro1()
Range("A1:C12").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1")
_
, Order2:=xlAscending, Key3:=Range("C1"), Order3:=xlDescending,
Header _
:=xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom _
, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal,
DataOption3:= _
xlSortNormal
End Sub
'---------------

@+

JP




Peut-on "contracter" les "Select" et "Selection" dans ce qui suit ? J'ai
fait des essais, mais ce n'est pas concluant. Je suis hanté par les
Range(" ").select !! ;-)

'---------------------------------
Range("D7").Select
Range(Selection, Selection.End(xlDown)).Copy

Range("P7").Select
Selection.PasteSpecial Paste:=xlPasteValues
'---------------------------------

PS 2 : Y-a-t-il une nuance entre Range("A1") et [a1] (forme que tu
emploies souvent) ; par ailleurs, j'ai noté que tu avais une façon très
concise de "coder" les tris ...

Merci ;-)