Autres Copier des lignes dans différents onglets en fonction de la valeur de différentes cellules

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 !

SPARKLETOF

XLDnaute Junior
Bonjour,

Je viens vers vous car je n’arrive pas à faire ce que je veux malgré mes recherches. .

Mon document Excel (que je joint), se compose comme suit :

un onglet « 2023 » regroupant mes données et de 5 onglets portant le nom d’une cellule donnée dans « 2023 ». Param1 (correspondant à la cellule E1 de « 2023 »), Param2
(correspondant à la cellule F1 de « 2023 »), etc…

J’aimerais que la ligne soit copiée si "OUI" est indiqué de la colonne Param1 dans l’onglet "Param1 », si "OUI" est indiqué dans la colonne Param2 dans l’onglet "Param1" et ainsi de suite pour les onglets définis.

De plus, j’aimerais que cela se produise lorsque l’on clique sur le bouton "Valider" que j’ai inséré dans l’onglet "2023".

Petite info, je suis à mon taff sur Excel 2007...........

Un grand merci par avance

Spark
 

Pièces jointes

Bonjour SPARKLETOF,
Comme vous utilisez déjà Worksheet_SelectionChange, j'ai rajouté Worksheet_SelectionChange.
Quand on change pour mettre un OUI on tranfert automatiquement la ligne dans le bon onglet, avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E4:I1000")) Is Nothing Then
        Dim lig%, DL%, F
        Application.ScreenUpdating = False
        If Target = "OUI" Then
            lig = Target.Row
            F = Cells(1, Target.Column) ' Nom de la feuille
            DL = 1 + Sheets(F).[A65500].End(xlUp).Row
            Sheets(F).Range("A" & DL & ":D" & DL) = Range("A" & lig & ":D" & lig).Value
        End If
    End If
Fin:
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

je peux me contenter d'effacer la ligne
J'ai pris le parti de supprimer la ligne, non de l'effacer. Sinon, dites et je ferais la modif.
Un essai en PJ.
C'est plus complexe car il faut chercher la bonne date mais ensuite par sécurité vérifier que tous les champs sont bien identiques avant de supprimer la ligne.
 

Pièces jointes

@sylvanu ,
dernière petite question... si je veux ajouter un onglet comment je dois pour que la macro fonction ?
J'ai essayé mais cela fonctionne pas !
Je n'arrive pas à voir comment cela est défini dans la macro que tu as créé.
Merci

EDIT : je viens de trouver.....j'ai manqué de discernement 😉
 
Dernière édition:
Re,
En PJ, la feuil Caract est la compilation des deux feuilles Caract1 et Caract2. Avec :
VB:
Sub RemplitPageCaract()
    Dim T1, T2, DL%
    Application.ScreenUpdating = False
    T1 = Sheets("caract1").Range("A3:D" & Sheets("caract1").[A65500].End(xlUp).Row)
    T2 = Sheets("caract2").Range("A3:D" & Sheets("caract2").[A65500].End(xlUp).Row)
    With Sheets("Caract")
        .[A3:D65000].ClearContents
        .Range("A3").Resize(UBound(T1, 1), UBound(T1, 2)) = T1
        DL = 1 + .[A65500].End(xlUp).Row
        .Range("A" & DL).Resize(UBound(T2, 1), UBound(T2, 2)) = T2
    End With
End Sub
 

Pièces jointes

@sylvanu

Merci !!!
Est-il possible d'ajouter dans commentaire de la feuille caract, le commentaire se trouvant dans chaque feuille ? En gros pour caract1, il faudrait dans la feuille caract au niveau du commentaire cela compile "caract1", un espace et le commentaire. Par exemple "caract1 ras"...
🤪🤪🤪🤪
 
Dernière édition:
- 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

Retour