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

Exécuter un 2ème module depuis un 1er module puis revenir au 1er

11 réponses
Avatar
LucienMarcel
Bonjour à tous,
A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
créer un deuxième module qui prenne en charge cette tâche répétée et revienne
au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
code utiliser (Excel 2003) ?
Merci d'avance
--
LucienMarcel

10 réponses

1 2
Avatar
LSteph
Bonjour,

Puisque c'est dans le même projet

Sub mamacroprincipale()
'le début
call mamacrorepetitive
'lasuite
call lautremacrorepetitive
'lasuite
'etc
End sub


'lSteph


On 16 juin, 16:35, LucienMarcel
wrote:
Bonjour à tous,
A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
créer un deuxième module qui prenne en charge cette tâche répét ée et revienne
au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
code utiliser (Excel 2003) ?
Merci d'avance
--
LucienMarcel


Avatar
LucienMarcel
Merci à vous deux et pardon d'avoir été imprécis. En fait dans mon module
initial, je filtre une base de données sur divers critères pour constituer
des regroupements que j'exporte vers une feuille récapitulative. Une partie
du code est donc consacré à cet export et donc reproduit dans mon module
aprés chaque nouvelle sélection. D'où un code trés lourd.
C'est cette partie répétitive du code que je voudrais placer dans un second
module qui serait donc chargé de l'export mais qui redonnerait la main au
module principal pour la sélection suivante et ainsi de suite jusqu'à la fin.
Merci de votre aide.
--
LucienMarcel


"LSteph" a écrit :

Bonjour,

Puisque c'est dans le même projet

Sub mamacroprincipale()
'le début
call mamacrorepetitive
'lasuite
call lautremacrorepetitive
'lasuite
'etc
End sub


'lSteph


On 16 juin, 16:35, LucienMarcel
wrote:
> Bonjour à tous,
> A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
> tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
> créer un deuxième module qui prenne en charge cette tâche répétée et revienne
> au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
> code utiliser (Excel 2003) ?
> Merci d'avance
> --
> LucienMarcel




Avatar
LucienMarcel
Merci à vous deux et pardon d'avoir été imprécis. En fait dans mon module
initial, je filtre une base de données sur divers critères pour constituer
des regroupements que j'exporte vers une feuille récapitulative. Une partie
du code est donc consacré à cet export et donc reproduit dans mon module
aprés chaque nouvelle sélection. D'où un code trés lourd.
C'est cette partie répétitive du code que je voudrais placer dans un second
module qui serait donc chargé de l'export mais qui redonnerait la main au
module principal pour la sélection suivante et ainsi de suite jusqu'à la fin.
Merci de votre aide.

--
LucienMarcel


"LSteph" a écrit :

Bonjour,

Puisque c'est dans le même projet

Sub mamacroprincipale()
'le début
call mamacrorepetitive
'lasuite
call lautremacrorepetitive
'lasuite
'etc
End sub


'lSteph


On 16 juin, 16:35, LucienMarcel
wrote:
> Bonjour à tous,
> A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
> tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
> créer un deuxième module qui prenne en charge cette tâche répétée et revienne
> au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
> code utiliser (Excel 2003) ?
> Merci d'avance
> --
> LucienMarcel




Avatar
LucienMarcel
Merci à vous deux et pardon d'avoir été imprécis. En fait dans mon module
initial, je filtre une base de données sur divers critères pour constituer
des regroupements que j'exporte vers une feuille récapitulative. Une partie
du code est donc consacré à cet export et donc reproduit dans mon module
aprés chaque nouvelle sélection. D'où un code trés lourd.
C'est cette partie répétitive du code que je voudrais placer dans un second
module qui serait donc chargé de l'export mais qui redonnerait la main au
module principal pour la sélection suivante et ainsi de suite jusqu'à la fin.
Merci de votre aide.

--
LucienMarcel


"LSteph" a écrit :

Bonjour,

Puisque c'est dans le même projet

Sub mamacroprincipale()
'le début
call mamacrorepetitive
'lasuite
call lautremacrorepetitive
'lasuite
'etc
End sub


'lSteph


On 16 juin, 16:35, LucienMarcel
wrote:
> Bonjour à tous,
> A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
> tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
> créer un deuxième module qui prenne en charge cette tâche répétée et revienne
> au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
> code utiliser (Excel 2003) ?
> Merci d'avance
> --
> LucienMarcel




Avatar
MichDenis
Si tu désires obtenir une vraie réponse se rapprochant de tes préoccupations, tu dois être
beaucoup plus précis dans la description de ce que tu veux faire.

Tu exécutes à répétition des filtres automatiques ou des filtres élaborés ?
Quelle est la plage de cellules sur laquelle tu exécutes tes filtres ?
Combien de lignes et de colonnes contient ta plage ?
Est-ce que la succession des filtres se fait toujours sur la même plage ?

Quelle sorte de critères utilises-tu pour tes filtres ? Sur quel champ (colonne) ?
Où veux-tu copier les résultats du filtre ? Nom de la feuille...

Si ta macro est déjà faite, tu peux la publier après avoir fait la présentation de ton
problème.
Etc.




"LucienMarcel" a écrit dans le message de groupe
de discussion :
Merci à vous deux et pardon d'avoir été imprécis. En fait dans mon module
initial, je filtre une base de données sur divers critères pour constituer
des regroupements que j'exporte vers une feuille récapitulative. Une partie
du code est donc consacré à cet export et donc reproduit dans mon module
aprés chaque nouvelle sélection. D'où un code trés lourd.
C'est cette partie répétitive du code que je voudrais placer dans un second
module qui serait donc chargé de l'export mais qui redonnerait la main au
module principal pour la sélection suivante et ainsi de suite jusqu'à la fin.
Merci de votre aide.
--
LucienMarcel


"LSteph" a écrit :

Bonjour,

Puisque c'est dans le même projet

Sub mamacroprincipale()
'le début
call mamacrorepetitive
'lasuite
call lautremacrorepetitive
'lasuite
'etc
End sub


'lSteph


On 16 juin, 16:35, LucienMarcel
wrote:
> Bonjour à tous,
> A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
> tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
> créer un deuxième module qui prenne en charge cette tâche répétée et revienne
> au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
> code utiliser (Excel 2003) ?
> Merci d'avance
> --
> LucienMarcel




Avatar
LucienMarcel
Voici une partie de mon code:
Sub TriBase()
'
' Tri Données par Région/Branche/Année/NiveauEvaluation
'
'
'région66/AGENT/AUTOE/2005/Matériel

' Sélection des données

Sheets("REG").Select
Range("A2").Select
Selection.AutoFilter Field:=1, Criteria1:="f", Operator:=xlAnd
Range("B2").Select
Selection.AutoFilter Field:=2, Criteria1:="=AGENT", Operator:=xlAnd
Range("C2").Select
Selection.AutoFilter Field:=3, Criteria1:="=AUTOE", Operator:=xlAnd
Range("D2").Select
Selection.AutoFilter Field:=4, Criteria1:="Matériel", Operator:=xlAnd
Range("E2").Select
Selection.AutoFilter Field:=5, Criteria1:=" 05", Operator:=xlAnd


' Rappatriment des données C'EST LA PARTIE QUE JE VEUX TRANSFORMER EN UN
NOUVEAU MODULE

Range("A1").Select
Range("A" & Range("A3",
"A65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("A1").Select
ActiveCell.PasteSpecial
Range("B1").Select
Range("B" & Range("B3",
"B65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("B1").Select
ActiveCell.PasteSpecial
Range("C" & Range("C3",
"C65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("C1").Select
ActiveCell.PasteSpecial
Range("D1").Select
Range("D" & Range("D3",
"D65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("D1").Select
ActiveCell.PasteSpecial
Range("E1").Select
Range("E" & Range("E3",
"E65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("E1").Select
ActiveCell.PasteSpecial

Range("A1").Select
Range("A1:Y1").Select
Selection.Copy

Sheets("Récap").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

ET JE SOUHATERAIS REVENIR ICI APRES SON EXECUTION POUR UNE NOUVELLE SELECTION

'région66/COURTIER/AUTOE/2005

' Sélection des données

Sheets("REG").Select
Range("A2").Select
Selection.AutoFilter Field:=1, Criteria1:="f", Operator:=xlAnd
Range("B2").Select
Selection.AutoFilter Field:=2, Criteria1:="=COURTIER", Operator:=xlAnd
Range("C2").Select
Selection.AutoFilter Field:=3, Criteria1:="=AUTOE", Operator:=xlAnd
Range("D2").Select
Selection.AutoFilter Field:=4, Criteria1:="Matériel", Operator:=xlAnd
Range("E2").Select
Selection.AutoFilter Field:=5, Criteria1:=" 05", Operator:=xlAnd


' Rappatriment des données

Range("A1").Select
Range("A" & Range("A3",
"A65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("A1").Select
ActiveCell.PasteSpecial
Range("B1").Select
Range("B" & Range("B3",
"B65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("B1").Select
ActiveCell.PasteSpecial
Range("C" & Range("C3",
"C65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("C1").Select
ActiveCell.PasteSpecial
Range("D1").Select
Range("D" & Range("D3",
"D65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("D1").Select
ActiveCell.PasteSpecial
Range("E1").Select
Range("E" & Range("E3",
"E65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("E1").Select
ActiveCell.PasteSpecial

Range("A1").Select
Range("A1:Y1").Select
Selection.Copy

Sheets("Récap").Select
' modif à reporter sur autres modules
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Activate

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
--
LucienMarcel


"MichDenis" a écrit :

Si tu désires obtenir une vraie réponse se rapprochant de tes préoccupations, tu dois être
beaucoup plus précis dans la description de ce que tu veux faire.

Tu exécutes à répétition des filtres automatiques ou des filtres élaborés ?
Quelle est la plage de cellules sur laquelle tu exécutes tes filtres ?
Combien de lignes et de colonnes contient ta plage ?
Est-ce que la succession des filtres se fait toujours sur la même plage ?

Quelle sorte de critères utilises-tu pour tes filtres ? Sur quel champ (colonne) ?
Où veux-tu copier les résultats du filtre ? Nom de la feuille...

Si ta macro est déjà faite, tu peux la publier après avoir fait la présentation de ton
problème.
Etc.




"LucienMarcel" a écrit dans le message de groupe
de discussion :
Merci à vous deux et pardon d'avoir été imprécis. En fait dans mon module
initial, je filtre une base de données sur divers critères pour constituer
des regroupements que j'exporte vers une feuille récapitulative. Une partie
du code est donc consacré à cet export et donc reproduit dans mon module
aprés chaque nouvelle sélection. D'où un code trés lourd.
C'est cette partie répétitive du code que je voudrais placer dans un second
module qui serait donc chargé de l'export mais qui redonnerait la main au
module principal pour la sélection suivante et ainsi de suite jusqu'à la fin.
Merci de votre aide.
--
LucienMarcel


"LSteph" a écrit :

> Bonjour,
>
> Puisque c'est dans le même projet
>
> Sub mamacroprincipale()
> 'le début
> call mamacrorepetitive
> 'lasuite
> call lautremacrorepetitive
> 'lasuite
> 'etc
> End sub
>
>
> 'lSteph
>
>
> On 16 juin, 16:35, LucienMarcel
> wrote:
> > Bonjour à tous,
> > A nouveau coincé. J'ai un premier module qui effectue un certain nombre de
> > tâches, mais qui est trés long et comporte une partie répétitive. Je voudrais
> > créer un deuxième module qui prenne en charge cette tâche répétée et revienne
> > au module initiial là où il l'avait laissé pour poursuivre. Quelles lignes de
> > code utiliser (Excel 2003) ?
> > Merci d'avance
> > --
> > LucienMarcel
>
>



Avatar
isabelle
bonjour Lucien,

tu pourrais modifier la première partie de cette façon :

crit = Array(66, "AGENT", "AUTOE", "Matériel", 2005)
For i = 1 To 5
Sheets("REG").Cells(2, i).AutoFilter Field:=1, Criteria1:="=" & crit(i -
1), Operator:=xlAnd
Next

pour la deuxième partie je ne comprend pas, tu fais un copier collage
spécial (?) de la plage sur elle même ?

isabelle

LucienMarcel a écrit :
Voici une partie de mon code:
Sub TriBase()
'
' Tri Données par Région/Branche/Année/NiveauEvaluation
'
'
'région66/AGENT/AUTOE/2005/Matériel

' Sélection des données

Sheets("REG").Select
Range("A2").Select
Selection.AutoFilter Field:=1, Criteria1:="f", Operator:=xlAnd
Range("B2").Select
Selection.AutoFilter Field:=2, Criteria1:="=AGENT", Operator:=xlAnd
Range("C2").Select
Selection.AutoFilter Field:=3, Criteria1:="=AUTOE", Operator:=xlAnd
Range("D2").Select
Selection.AutoFilter Field:=4, Criteria1:="Matériel", Operator:=xlAnd
Range("E2").Select
Selection.AutoFilter Field:=5, Criteria1:=" 05", Operator:=xlAnd


' Rappatriment des données C'EST LA PARTIE QUE JE VEUX TRANSFORMER EN UN
NOUVEAU MODULE

Range("A1").Select
Range("A" & Range("A3",
"A65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("A1").Select
ActiveCell.PasteSpecial
Range("B1").Select
Range("B" & Range("B3",
"B65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("B1").Select
ActiveCell.PasteSpecial
Range("C" & Range("C3",
"C65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("C1").Select
ActiveCell.PasteSpecial
Range("D1").Select
Range("D" & Range("D3",
"D65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("D1").Select
ActiveCell.PasteSpecial
Range("E1").Select
Range("E" & Range("E3",
"E65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("E1").Select
ActiveCell.PasteSpecial

Range("A1").Select
Range("A1:Y1").Select
Selection.Copy

Sheets("Récap").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

ET JE SOUHATERAIS REVENIR ICI APRES SON EXECUTION POUR UNE NOUVELLE SELECTION

'région66/COURTIER/AUTOE/2005

' Sélection des données

Sheets("REG").Select
Range("A2").Select
Selection.AutoFilter Field:=1, Criteria1:="f", Operator:=xlAnd
Range("B2").Select
Selection.AutoFilter Field:=2, Criteria1:="=COURTIER", Operator:=xlAnd
Range("C2").Select
Selection.AutoFilter Field:=3, Criteria1:="=AUTOE", Operator:=xlAnd
Range("D2").Select
Selection.AutoFilter Field:=4, Criteria1:="Matériel", Operator:=xlAnd
Range("E2").Select
Selection.AutoFilter Field:=5, Criteria1:=" 05", Operator:=xlAnd


' Rappatriment des données

Range("A1").Select
Range("A" & Range("A3",
"A65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("A1").Select
ActiveCell.PasteSpecial
Range("B1").Select
Range("B" & Range("B3",
"B65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("B1").Select
ActiveCell.PasteSpecial
Range("C" & Range("C3",
"C65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("C1").Select
ActiveCell.PasteSpecial
Range("D1").Select
Range("D" & Range("D3",
"D65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("D1").Select
ActiveCell.PasteSpecial
Range("E1").Select
Range("E" & Range("E3",
"E65535").SpecialCells(xlCellTypeVisible).Row).Select
ActiveCell.Copy
Range("E1").Select
ActiveCell.PasteSpecial

Range("A1").Select
Range("A1:Y1").Select
Selection.Copy

Sheets("Récap").Select
' modif à reporter sur autres modules
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Activate

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse



Avatar
LucienMarcel
Isabelle, merci de ta réponse.
En fait la première partie me sert effectivement à sélectionner mes données
et c'est vrai que je peux sans doute la simplifier mais la 2ème partie me
sert à exporter chaque sélection dans une feuille récapitulative. Dans la
2ème partie, je ne recopie pas la ligne 1 sur la ligne 1 mais je recopie la
1ère filtrée en ligne 1 avant de l'exporter. C'est la 2ème partie que je
voudrais transformer en un deuxième module car il se répète moulte fois, mais
je voudrais après exécution de ce nouveau module, revenir au bon endroit pour
la sélection suivante et ainsi de suite jusqu'à la derniere sélection.
Voilà mon problème
--
LucienMarcel


"isabelle" a écrit :

bonjour Lucien,

tu pourrais modifier la première partie de cette façon :

crit = Array(66, "AGENT", "AUTOE", "Matériel", 2005)
For i = 1 To 5
Sheets("REG").Cells(2, i).AutoFilter Field:=1, Criteria1:="=" & crit(i -
1), Operator:=xlAnd
Next

pour la deuxième partie je ne comprend pas, tu fais un copier collage
spécial (?) de la plage sur elle même ?

isabelle

LucienMarcel a écrit :
> Voici une partie de mon code:
> Sub TriBase()
> '
> ' Tri Données par Région/Branche/Année/NiveauEvaluation
> '
> '
> 'région66/AGENT/AUTOE/2005/Matériel
>
> ' Sélection des données
>
> Sheets("REG").Select
> Range("A2").Select
> Selection.AutoFilter Field:=1, Criteria1:="f", Operator:=xlAnd
> Range("B2").Select
> Selection.AutoFilter Field:=2, Criteria1:="=AGENT", Operator:=xlAnd
> Range("C2").Select
> Selection.AutoFilter Field:=3, Criteria1:="=AUTOE", Operator:=xlAnd
> Range("D2").Select
> Selection.AutoFilter Field:=4, Criteria1:="Matériel", Operator:=xlAnd
> Range("E2").Select
> Selection.AutoFilter Field:=5, Criteria1:=" 05", Operator:=xlAnd
>
>
> ' Rappatriment des données C'EST LA PARTIE QUE JE VEUX TRANSFORMER EN UN
> NOUVEAU MODULE
>
> Range("A1").Select
> Range("A" & Range("A3",
> "A65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("A1").Select
> ActiveCell.PasteSpecial
> Range("B1").Select
> Range("B" & Range("B3",
> "B65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("B1").Select
> ActiveCell.PasteSpecial
> Range("C" & Range("C3",
> "C65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("C1").Select
> ActiveCell.PasteSpecial
> Range("D1").Select
> Range("D" & Range("D3",
> "D65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("D1").Select
> ActiveCell.PasteSpecial
> Range("E1").Select
> Range("E" & Range("E3",
> "E65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("E1").Select
> ActiveCell.PasteSpecial
>
> Range("A1").Select
> Range("A1:Y1").Select
> Selection.Copy
>
> Sheets("Récap").Select
> Range("A2").Select
> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> SkipBlanks _
> :úlse, Transpose:úlse
>
> ET JE SOUHATERAIS REVENIR ICI APRES SON EXECUTION POUR UNE NOUVELLE SELECTION
>
> 'région66/COURTIER/AUTOE/2005
>
> ' Sélection des données
>
> Sheets("REG").Select
> Range("A2").Select
> Selection.AutoFilter Field:=1, Criteria1:="f", Operator:=xlAnd
> Range("B2").Select
> Selection.AutoFilter Field:=2, Criteria1:="=COURTIER", Operator:=xlAnd
> Range("C2").Select
> Selection.AutoFilter Field:=3, Criteria1:="=AUTOE", Operator:=xlAnd
> Range("D2").Select
> Selection.AutoFilter Field:=4, Criteria1:="Matériel", Operator:=xlAnd
> Range("E2").Select
> Selection.AutoFilter Field:=5, Criteria1:=" 05", Operator:=xlAnd
>
>
> ' Rappatriment des données
>
> Range("A1").Select
> Range("A" & Range("A3",
> "A65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("A1").Select
> ActiveCell.PasteSpecial
> Range("B1").Select
> Range("B" & Range("B3",
> "B65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("B1").Select
> ActiveCell.PasteSpecial
> Range("C" & Range("C3",
> "C65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("C1").Select
> ActiveCell.PasteSpecial
> Range("D1").Select
> Range("D" & Range("D3",
> "D65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("D1").Select
> ActiveCell.PasteSpecial
> Range("E1").Select
> Range("E" & Range("E3",
> "E65535").SpecialCells(xlCellTypeVisible).Row).Select
> ActiveCell.Copy
> Range("E1").Select
> ActiveCell.PasteSpecial
>
> Range("A1").Select
> Range("A1:Y1").Select
> Selection.Copy
>
> Sheets("Récap").Select
> ' modif à reporter sur autres modules
> Range("A1").Select
> Selection.End(xlDown).Select
> ActiveCell.Offset(1, 0).Activate
>
> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
> SkipBlanks _
> :úlse, Transpose:úlse
>



Avatar
isabelle
bonjour Lucien,

pourquoi ne pas copier la plage filter en une seule opération au lieu de
le faire colonne par colonne ?
et aussi tu ne mentionne pas le genre de .PasteSpecial

est ce un .PasteSpecial de valeur ?

isabelle



LucienMarcel a écrit :
Isabelle, merci de ta réponse.
En fait la première partie me sert effectivement à sélectionner mes données
et c'est vrai que je peux sans doute la simplifier mais la 2ème partie me
sert à exporter chaque sélection dans une feuille récapitulative. Dans la
2ème partie, je ne recopie pas la ligne 1 sur la ligne 1 mais je recopie la
1ère filtrée en ligne 1 avant de l'exporter. C'est la 2ème partie que je
voudrais transformer en un deuxième module car il se répète moulte fois, mais
je voudrais après exécution de ce nouveau module, revenir au bon endroit pour
la sélection suivante et ainsi de suite jusqu'à la derniere sélection.
Voilà mon problème



Avatar
MichDenis
TU DOIS DÉFINIR TON PROBLÈME :

Exemple :
Sur la feuille "Reg", j'ai une plage de cellules de 5 colonnes
situées de A1:E25000 sur laquelle j'effectue un filtre
automatique ayant un critère pour chacun des champs de
ma plage de cellules . La ligne 1 de ma plage contient les étiquettes
de colonnes et mes données débutent en ligne 2.

Suite à l'opération filtre, j'aimerais recopier sur la feuille "Récap"
le résultat de mon filtre. Maintenant tu décris où veux-tu placer
ce résultat dans ta feuille "Récap"
Est-ce que tu veux copier la ligne d'étiquette de la feuille Reg et le
résultat du filtre vers la feuille Récap ou seulement le résultat sans
les étiquettes.

À première vue, cela ne prend que quelques lignes de code, si tu veux
utiliser 2 modules différents pour cette opération, pour quoi, juges-tu
utile de le faire ? Qu'est-ce qui justifie l'usage de 2 modules ? Nous ne
sommes pas là pour juger... mais pour t'aider à trouver une solution
de manière le plus efficacement possible. Ce n'est pas un jeu de devinettes !

Dans un second temps, si tu le juges pertinent, tu publies ton code en dessous
de la description de ton problème.
1 2