Couper une ligne suivant condition pour la coller dans un autre onglet

Bonjour, je suis nouvelle sur ce forum, j'ai lu d'autres post qui abordent ce point mais je n'arrive pas à adapter leurs codes à mes besoins.

Je suis actuellement en stage et je dois optimiser un fichier Excel : dans l'onglet "Signataires" il y a la colonne G "certifié" qui est soit "oui" en vert ou "non" en rouge et je voudrais qu'une fois "non" coché, cette ligne se coupe pour se coller dans l'onglet "Archives signataires" à la suite des autres lignes.

Merci d'avance pour votre aide

Bonjour,

je suis nouvelle sur ce forum

Alors,

Le mieux est de fournir un fichier (même considérablement allégé et surtout exempt de toute donnée confidentielle!) qui représente la structure de ton fichier réel.

Comment les "oui" ou "non" apparaissent-ils en colonne G? On les saisit, ils sont le résultat d'une formule, d'une macro, etc.? La couleur s'affiche via une MFC? Celle-ci doit-elle rester active dans la feuille "Archives"? Quelles sont les colonnes à copier?

J'ai mis le fichier à jour avec la même configuration pour la colonne G

23exemple.xlsx (11.59 Ko)

(et merci pour l'accueil )

Éh bé ... voilà une réaction rapide!

Tu n'as pas répondu à la question de la copie (ou non) de la MFC ... Comme il n'y aura que les "non" dans la feuille "Archives", j'ai considéré que ce n'était pas utile;

Teste ce qui suit ... clic droit sur l'onglet de la feuille "Signataires" > Visualiser le code > Coller ce qui suit dans le module de ladite feuille:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G2:G50]) Is Nothing Then 'plage à adapter
    If Target.Count > 1 Then Exit Sub 'si on modifie plusieurs cellules simultanément
    If UCase(Target) = "NON" Then
        nouvLig = Sheets("Archives signataires").Cells(Rows.Count, 1).End(xlUp).Row + 1'index de la première ligne vide dans "Archives"
        Cells(Target.Row, 1).Resize(1, 13).Copy
        Sheets("Archives signataires").Cells(nouvLig, 1).Resize(1, 13).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        Application.EnableEvents = False 'désactiver les événements
        Cells(Target.Row, 1).EntireRow.Delete
        Application.EnableEvents = True
    End If
End If
End Sub

Réaction rapide aussi de votre côté, je ne sais pas comment vous faites, c'est vraiment du chinois pour moi tout ça...

A peine ça fonctionne d'un côté qu'il y a un nouveau bug ailleurs

Quand je rentre votre code et que je lance son exécution, Excel ouvre une fenêtre pour une macro...

Bonjour toutes et tous,

coucou U. Milité

Si j'ai un peu compris car, j'ai dormi 1 heure en moins lol ci-joint ma petite contribution

crdlt,

Note: à remodeler, améliorer etc.

André

Salut André

j'ai dormi 1 heure en moins

Quoi, toi aussi !? C'est dingue, il m'est arrivé la même chose!

@charlie8407: je ne sais pas ce que tu appelles "lancer le code" ? C'est le changement de valeur en colonne G qui lance son exécution (si la nouvelle valeur est "non").

Re,

@charlie8407: prends celui de U.Milité il fonctionne très bien, l'extension de ton classeur en .xlsm

testé super fonctionnel celui de U.Milité merci à toi

crdlt,

André

51exemple-ok.xlsm (22.82 Ko)

OUAH super merci beaucoup à vous 2, c'est parfait !!!

C'est exactement ce qu'il me fallait, je l'ai appliqué à mon fichier d'origine et ça fonctionne parfaitement, merci infiniment.

Bon dimanche à vous et encore merci d'avoir pris le temps de travailler dessus

Re,

Merci à charlie8407 pour son retour ... ça fait toujours plaisir!


prends celui de U.Milité

Bah, les deux propositions peuvent être complémentaires si, comme dans l'exemple, il y avait déjà une série de "non" dans la colonne G. Au plaisir de te croiser!
Rechercher des sujets similaires à "couper ligne suivant condition coller onglet"