Insertion d'une macro ds une autre...

  • Initiateur de la discussion Initiateur de la discussion Olivier
  • 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 !

O

Olivier

Guest
Bonjour à tous,

Je vais essayer d'être clair pour une fois ( ça devrait faire plaisir à Papy )..

J'ai récupéré une macro trés utile ( surtout à moi ) que Thierry a réalisé pour pouvoir copier ds une feuille différente une sélection faite grace à un filtre auto.
J'aimerais pouvoir insérer au début de cette macro la procédure de filtreauto et de sélection de critère.
J'ai essayé en rajoutant les lignes ( selection filterauto....) au début de la macro de copie, ça ne fonctionne pas, la macro ne copie que qu'une ou deux lignes..

Si qq'1 avait la solution miracle ça m'arrangerait bien, je souhaite pouvoir rendre ma copie de base de données lundi....

Olivier


Ma base ressemble à:
NOM ----Société---Peinture---Maçon

Voici les deux macros dont j'aimerais faire qu'une :

* Macro de filtre et sélection :

Sub Filtre()
Range("A1😀1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:="VRAI"
End Sub

* Macro de "copie de sélection" :

Sub FiltreReport()
Dim cell As Range
Dim MaPlage As Range
Dim i As Integer
Dim iF2 As Integer
Dim ZoneA() As String, ZoneB() As String, ZoneC() As String, ZoneD() As String
Sheets(2).Range("a2:d100").ClearContents
iF2 = 2
Set MaPlage = Sheets("Feuil1").Range("A2", [A65536].End(xlUp))
Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
ReDim ZoneA(0 To MaPlage.Count - 1)
ReDim ZoneB(0 To MaPlage.Count - 1)
ReDim ZoneC(0 To MaPlage.Count - 1)
ReDim ZoneD(0 To MaPlage.Count - 1)

For Each cell In MaPlage
ZoneA(i) = cell.Value
Sheets("Feuil2").Range("A" & iF2) = ZoneA(i)
ZoneB(i) = cell.Offset(0, 1)
Sheets("Feuil2").Range("B" & iF2) = ZoneB(i)
ZoneC(i) = cell.Offset(0, 2)
Sheets("Feuil2").Range("C" & iF2) = ZoneC(i)
ZoneD(i) = cell.Offset(0, 3)
Sheets("Feuil2").Range("D" & iF2) = ZoneD(i)
i = i + 1
iF2 = iF2 + 1
Next cell

Selection.AutoFilter

End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
703
Réponses
4
Affichages
580
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour