Macro : copier coller avec conditions

Bonjour,

J'ai pour projets de réaliser un fichier gérant un plan d'actions. Je débute dans le code VBA.

J'ai besoin de votre aide..

J'aurais besoin de créer une macro qui réalise les actions suivantes :

Dans une première feuille, j'ai un tableau avec différentes colonnes. Je voudrais que dès qu'apparait "Fait" dans la colonne "statut", en activant ma macro, la ou les lignes avec "fait" soient effacées de cette première feuille.

Par contre je voudrais pouvoir les retrouvées (comme une sorte d'archivage des données), sous une deuxième feuille.

Quelqu'un aurait la gentillesse de pouvoir m'aider ?

Merci d'avance !

Bonjour,

une fois dans VBA (avec Alt+F11), tu doubles cliques sur ta feuille dans la fenetre de gauche pour ouvrir le module, puis tu colles le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)

Sheets("Archives").Range("A2:F" & Rows.Count).ClearContents
If Not Application.Intersect(Target, Range("F:F")) Is Nothing Then
    For Each cel In Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row)
        If cel = "Fait" Then
            cel.EntireRow.Copy
            Sheets("Archives").Range("A" & Sheets("Archives").Cells(Rows.Count, "A").End(xlUp).Row + 1).PasteSpecial
        End If
    Next cel
End If

End Sub

Comme cela, quand tu changera une valeur dans la colonne F, la macro s'active et colle toutes les lignes "Faits".

A plus !

Sub MaJ()

Private Sub Worksheet_Change(ByVal Target As Range)

Sheets("Archives").Range("A2:F" & Rows.Count).ClearContents

If Not Application.Intersect(Target, Range("F:F")) Is Nothing Then

For Each cel In Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row)

If cel = "Fait" Then

cel.EntireRow.Copy

Sheets("Archives").Range("A" & Sheets("Archives").Cells(Rows.Count, "A").End(xlUp).Row + 1).PasteSpecial

End If

Next cel

End If

End Sub

Cela ne fonctionne pas, et je voudrais qu'en cliquant sur un bouton, les lignes avec "fait" viennent s'archiver dans la deuxième feuille.


voilà le fichier joints

Et merci d'avance

Voilà a plus !

Merci super ! Cela m'a bien aidé !

Mais j'ai oublié de préciser que je souhaitais que la ligne ou il y a écrit "fait" se supprime sur la première page.

quel code utilisé ?

Merci d'avance

Bonjour,

désolé j'étais en vacances

Bon au cas ou tu n'ai pas encore trouvé voilà avec la suppression de la ligne.

A plus

Oh merci beaucoup ! Cela m'a bien aidé.

Je suis en train de chercher comment faire pour revenir sur la page initiale car quand j'appuie sur le bouton j'aimerais resté sur le tableau de départ.

Merci

Logiquement, tu reviens constamment sur la première page, mais tu peux essayer de mettre

Application.ScreenUpdating = false

en dessous du Sub()

A plus !

Bonjour,

J'aimerais encore solliciter ton aide. Je suis en train de continuer le fichier.

Sur la page préparation réunion, j'aimerais créer 2 boutons :

  • Un premier qui ajouter une ligne à la fin du tableau et qui copie/colle l'heure de fin de la ligne du dessus pour la mettre en heure de début.
  • Le deuxième serait identique mais pour le tableau du dessous

Pour le bouton enregistre j'aimerais que toutes les infos présentes sur la page préparation réunion viennent se mettre sur la page résumé réunion. cette feuille servira à la personne animant la réunion de réaliser une synthèse de la journée.

Après avoir réalisé la synthèse, j'aimerais créer un bouton qui permettre d'archiver les données de cette feuille. Est-ce réalisable ? Afin que l'on puisse suivre les infos des différentes réunions que l'on a pu avoir toute l'année

Merci énormément !

Bonjour,

voilà une proposition, les explications sont dans le fichier à plus !

Ah super merci beaucoup pour ton aide !

j'ai regardé de plus près la macro pour enregistrer le contenu de la réunion.

Par contre si j'ai 10 lignes dans le tableau, je suis obligée de cliquer 10 fois sur le bouton ok.

Idem si j'en ai 20, je suis obligée de cliquer 20 fois. JE ne vois pas comment faire pour la modifier

je

Merci beaucoup pour ton fichier !

J'y ai apporté des modifications mais du coup je suis bloquée :

pour la macro enregistrer :

For Each cel In Prépa.Range("A11:A" & midi - 2)

En fait A11 n'est pas fixe, car selon le nombre de lignes que tu ajoutes sur le tableau 1, cela devient une variable.

Je n'arrive pas à changer le code.

Pourrais-tu m'aider ? et mon fichier sera alors au point

Merci

Autre point : vu que tu m'as beaucoup aidé et que je débute vraiment beaucoup dans VBA, pourrais-je avoir ton aide pour monter un fichier de gestion d'équipe (planning, absence etc) ?

merci

Rechercher des sujets similaires à "macro copier coller conditions"