L'enregistreur de macros et ses contraintes

Bonjour à tous,

Le jeune padawan d'excel que je suis vient d'enregistrer une macro avec ce cher "enregistreur" mais je voudrais pouvoir l'appliquer à tous mes différents fichiers.

Il s'agit de selectionner en colonne L youtes les lignes contenant soit le mot "gaine" ou soit le mot "ext" et de les couper/coller vers une nouvelle feuille.

J'ai ça avec comme code et je rame pour le bidouiller pour qu'il puisse s'appliquer sur tous mes fichiers :

Sub Test()

'

'

'

ActiveWindow.SmallScroll ToRight:=6

Selection.AutoFilter Field:=12, Criteria1:="=*EXT*", Operator:=xlOr, _

Criteria2:="=*GAINE*"

Rows("9:85").Select

Range("G9").Activate

Selection.Cut

Sheets("Feuil2").Select

Range("A2").Select

ActiveSheet.Paste

Sheets("Feuil1").Select

Rows("1:1").Select

Range("G1").Activate

Selection.Copy

Sheets("Feuil2").Select

Range("A1").Select

ActiveSheet.Paste

Cells.Select

Application.CutCopyMode = False

Selection.AutoFilter

Sheets("Feuil1").Select

Selection.AutoFilter Field:=12

End Sub

Quels conceils me donneriez-vous?

Merci d'avance.

Clem.

Bonjour,

Suis ce lien --> https://forum.excel-pratique.com/viewtopic.php?t=6394 et télécharge le fichier que j'ai posté le 17/07 à 12:54.

En allant dans VBA, prends la macro "TRANSFERT". Elle devrait t'aider pour réaliser ce que tu demandes.

Au besoin place un fichier exemple avec ce que tu veux obtenir.

Amicalement

Dan

Bonjour Dan,

Voici un petit exemple de ce que je souhaite obtenir.

A partir de la Feuil1, je souhaite qu'un filtre s'applique sur la colonne L et que ça me coupe et colle en Feuil2 toutes les lignes contenant le mot "gaine" ou "ext".

Difficile d'adapter la macro à ce que ça s'applique sur tous les fichiers que je veux traiter.

Merci d'avance.

Clem

Re,

Si la structure est celle des feuille 1 et feuille2, mets ce code dans un module.

Sub Transfert()
'Macro par DAN pour sk8_in_back le 26/08/08 - XL Pratique
Dim i As Integer
Dim lig As Integer
Dim ligne As Integer
With Sheets("feuil2")
    .Activate
    .Range("A2", Range("G65536")).ClearContents
End With
 lig = Sheets("Feuil1").Range("A65536").End(xlUp).Row
 For i = 2 To lig
 If Sheets("Feuil1").Rows(i).Hidden = False Then
 With Sheets("Feuil2")
 ligne = .Range("a65536").End(xlUp).Row + 1
 .Cells(ligne, 1) = Sheets("Feuil1").Cells(i, 1)
 .Cells(ligne, 2) = Sheets("Feuil1").Cells(i, 2)
 .Cells(ligne, 3) = Sheets("Feuil1").Cells(i, 3)
 .Cells(ligne, 4) = Sheets("Feuil1").Cells(i, 4)
 .Cells(ligne, 5) = Sheets("Feuil1").Cells(i, 5)
 .Cells(ligne, 6) = Sheets("Feuil1").Cells(i, 12)
 .Cells(ligne, 7) = Sheets("Feuil1").Cells(i, 14)
 End With
 End If
Next i
End Sub

Fais ton tri en feuille1 et exécute la macro.

La macro te donnera uniquement ce que tu as trié en feuille 1 après avoir effacé les précédente données en feuille2.

A te relire

Dan

Merci beaucoup mais je vais faire mon "exigent", est-il possible d'inclure mon filtre dans ma macro ou pas?

re,

Oui, mais c'est moins pratique car à contrario de ce que je t'ai proposé ton tri sera figé sur ces critères.

Sinon, entre Dim ligne As Integer et With Sheets("feuil2"), rajoute ceci :

With Sheets("feuil1")
    .Activate
    On Error Resume Next
    .ShowAllData
Selection.AutoFilter Field:=12, Criteria1:="=*EXT*", Operator:=xlOr, _
Criteria2:="=*GAINE*"
End With

Dan

Oui en effet tu as raison, merci beaucoup grâce à toi mon apprentissage excel est facilité !!

A bientôt.

Rechercher des sujets similaires à "enregistreur macros contraintes"