Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier/coller avec une condition

  • Initiateur de la discussion Initiateur de la discussion JoeZ1
  • Date de début Date de début

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 !

JoeZ1

XLDnaute Nouveau
Bonjour,

Je me tourne vers vous pour m'aider pour la creation d'une macro pour mon fichier

Je vais essayer d'etre clair dans mes explications:
Tous les jours, je dois renseigner une base de donnee
En fin de journée, je souhaiterai l'archiver dans l'onglet "archive", mais je souhaiterai conserver que les lignes qui ont des cellules vertes( A savoir dans les colonnes personnel, il y a un code et une mise en forme conditionnelle)
De plus, il ne faut surtout pas ecraser l'archive de la vielle.
Tous les mois, je dois faire un bilan

Un grand merci de votre aide.
 

Pièces jointes

Bonjour

Question:
Est ce que le fait d'avoir une (ou plusieurs) cases vertes dans les colonnes Personnel implique forcément d'avoir une case verte en colonne DTC ?
si oui, il suffirait de filtrer sur la colonne DTC et archiver les lignes filtrées..
 
Hello @pierrejean
exactement la démarche que j'avais commencé. mais comme tu as été plus rapide..

du coup, je me suis permis de modifier ton code pour répondre au besoin de ne pas écraser la feuille Archives
VB:
Sub archive()
tablo = Sheets("Base de donnees").Range("A4:P" & Sheets("Base de donnees").Range("A" & Rows.Count).End(xlUp).Row)
Set dico = CreateObject("Scripting.dictionary")
For n = LBound(tablo, 1) To UBound(tablo, 1)
   For m = 7 To 14
       If tablo(n, m) = "X" Or tablo(n, 14) > 0.1 Then
          x = n + 3
          dico(x) = ""
       End If
   Next
Next
a = dico.keys
With Sheets("Archives")
    fin = .Range("A" & .Rows.Count).End(xlUp).Row
    For n = LBound(a) To UBound(a)
        Sheets("Base de donnees").Rows(a(n)).Copy Destination:=.Rows(fin + 1)
        fin = fin + 1
    Next n
    .Activate
End With
End Sub
 

Merci pour votre efficacite et rapidité. Vous etes etes en train de me rendre un grand service.


C'est bon, il fonctionne tres bien. J'ai une erreur de Manip

Par contre, je souhaiterai que les jours suivant se mettent à la suite dans l'onglet "Archives"
 
- 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
5
Affichages
335
Réponses
32
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…