Microsoft 365 VBA pour extraire des cellules en fonction de leurs couleurs (MFC)

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 !

Anastasia

XLDnaute Nouveau
Bonjour à tous,
Je viens de passer la journée à fouiller les forums et le net pour trouver une solution mais je n'ai rien trouvé de concluant.
J'ai essayé d'adapter certaine VBA trouvé sur internet mais ça ne fonctionne pas.
C'est pour ça que je me permet de m'adresser à vous.
Je souhaiterais faire une feuille de synthèse reprenant les véhicules ou l'ont doit intervenir. Et je souhaiterais que lorsque tout est ok la ligne disparaisse de la synthèse.
Ces véhicules seront mis en évidence dans la feuille de base "Véhicule" par une couleur, suite à une mise en forme conditionnelle.
Je vous remercie pour l'aide que vous pouvez m'apporter.
Bonne soirée
 

Pièces jointes

Bonsoir Anastasia, et bienvenue sur XLD,
Dit autrement, vous voulez récupérer en Synthèse tous les véhicules qui ont en feuille Véhicule colonne U :
"Réparation à prévoir" ou "En réparation" ou" Accidenté" ou "HS" ?
 
Bonsoir,
Avec ce que j'ai compris, un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Dim L%, Lecr%, Etat
    Range("A3:F" & 1 + [A65500].End(xlUp).Row).ClearContents ' Effacement tableau
    Application.ScreenUpdating = False
    With Sheets("Véhicule")
        For L = 5 To .[A65500].End(xlUp).Row    ' Pour chaque véhicule
            Etat = .Cells(L, "U")               ' Copie l'état
            If Etat = "Réparation à prévoir" Or Etat = "En réparation" Or Etat = "Accidenté" Or Etat = "HS" _
                Or .Cells(L, "R") = "A faire" Or .Cells(L, "R") = "NON" Or .Cells(L, "Q") = "NON" Then ' A transférer
                ' On regarde ce qu'on doit rajouter
                If Application.CountIf([A:A], .Cells(L, "B")) = 0 Then ' Si 0 elle n'est pas présente
                    Lecr = 1 + [A65500].End(xlUp).Row   ' Ligne écriture dans Synthèse
                    CopierLigne Lecr, L ' On copie ou met à jour la ligne considérée
                End If
            End If
        Next L
    End With
End Sub
Sub CopierLigne(Lecr%, L%) ' Copie ligne L de Véhicule dans Lecr de Synthèse
    With Sheets("Véhicule")
        Cells(Lecr, "A") = .Cells(L, "B")   ' Nom ambulance
        Cells(Lecr, "B") = .Cells(L, "U")   ' Etat
        Cells(Lecr, "C") = .Cells(L, "V")   ' Réparations
        Cells(Lecr, "D") = .Cells(L, "Q")   ' Carte grise
        Cells(Lecr, "E") = .Cells(L, "R")   ' CT
        Cells(Lecr, "F") = .Cells(L, "W")   ' Date de mise en oeuvre
    End With
End Sub
La macro s'exécute automatiquement lorsqu'on sélectionne la feuille Synthèse.

( Je suis parti du principe qu'il n'y avait pas de retouche "manuelle" de la feuille synthèse, donc je l'efface avant de la reconstruire. Comme semble le montrer votre macro Test )
 

Pièces jointes

- 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

Discussions similaires

Réponses
8
Affichages
94
Réponses
3
Affichages
248
Retour