Optimisation et repetition de macro

Bonjour à tous,

Tout d'abord merci pour votre aide.

Débutant en VBA je fais appel à votre aide pour optimiser ce fichier. Je travaille sur Excel Mac 2011

Je voudrais pouvoir également répéter ma macro sur l'ensemble des feuilles (prénom).

voici ma macro

Sub Filtre()

Dim lig As Long

Dim Col As String

Dim NbrLig As Long

Dim NumLig As Long

Sheets("GABY").Activate ' feuille de destination

Col = "O" ' colonne de la donnée non vide à tester

NumLig = 8

With Sheets("AV") ' feuille source

NbrLig = .Cells(65536, Col).End(xlUp).Row

For lig = 2 To NbrLig

If .Cells(lig, Col).Value = "GABY" Then

.Range("C" & lig & ":G" & lig).Copy

NumLig = NumLig + 1

Cells(NumLig, 31).Select

ActiveSheet.Paste

End If

Next

End With

End Sub

vous pouvez consulter le fichier joint pour meilleure compréhension

cordialement,

FB

34planing-5-1.xlsm (67.09 Ko)

Bonjour,,

à tester :

Sub Filtre()
    Dim lig As Long
    Dim Col As String
    Dim NbrLig As Long
    Dim NumLig As Long
    Dim sh As Worksheet

    Application.ScreenUpdating = False
    For Each sh In Worksheets
        If sh.[C8] = "HORAIRE" Then
            sh.Activate    ' feuille de destination
            Col = "O"    ' colonne de la donnée non vide à tester
            NumLig = 8
            With Sheets("AV")    ' feuille source
                NbrLig = .Cells(65536, Col).End(xlUp).Row
                For lig = 2 To NbrLig
                    If .Cells(lig, Col).Value = "GABY" Then
                        .Range("C" & lig & ":G" & lig).Copy
                        NumLig = NumLig + 1
                        Cells(NumLig, 31).Select
                        ActiveSheet.Paste
                    End If
                Next
            End With
        End If
    Next sh
End Sub

Je me base sur un mot en C8 pour déterminer si c'est une feuille prénom. A adapter si besoin.

A quoi ça sert de sauter des lignes vides en haut des feuilles ?

eric

Merci pour votre réponse et votre aide

la macro a l air de fonctionner cependant, elle fonctionne pour une seule feuille

peut on la faire fonctionner sur toutes les feuilles ?

J'ai laissé de la place en haut de chaque feuille pour mettre des titres.

merci beaucoup

FB

Je me base sur un mot en C8 pour déterminer si c'est une feuille prénom. A adapter si besoin.

Si tu regardes le code tu peux voir qu'il regarde en C8 s'il y a "HORAIRE" en majuscule.

Gaby est la seule feuille à l'avoir.

eric

Bonjour ,

Merci eric,

ok j'ai compris pour l'activation de la feuille en fonction de la casse C8 "HORAIRE"

La macro fonctionne bien sur la feuille "GABY' ; mais j'aimerai le faire pour toutes les feuilles de la manière suivante

en fonction de la colonne "O"feuil!" AV j'aimerai que la copie ce fasse dans la "feuil!" correspondante à chaque prénoms.

Bonjour,

j'ai du mal à comprendre la logique du fonctionnement que tu veux et vu que tu n'expliques pas grand chose il va falloir te prendre en main.

Le nom de la feuille en cours est activesheet.name pour avoir le prénom.

Modifie et adapte ton code en conséquence.

eric

J'ai finalement réussi à faire ce que je désirais.

Lorsque le prénom Gaby est dans la colonne "O " il faut que les cellules copiées aillent dans la feuille GABY et ce pareil pour chaque prénom.

Merci pour ton aide

Rechercher des sujets similaires à "optimisation repetition macro"