Copie de lignes si conditions sur autre onglet

Bonjour, voici ma problématique.

Je ne souhaite pas utiliser de filtres.

Je souhaite copier automatiquement les valeurs que j'ai dans mon onglet principal dans le deuxième onglet (Elephant chart).

Cependant je ne souhaite avoir que les valeurs avec une date (colonne B) comprise dans les douze derniers mois.

Deuxième condition, je ne souhaite qu'a avoir les lignes ou cellules avec un détrompeur 1,2 et 3 (colonne L).

Merci pour votre retour !

En espérant que quelqu'un puisse me sauver,

Janot

bonjour,

essaye avec ça

Sub copie()

For i = 4 To Range("a65536").End(xlUp).Row
    If Year(Range("b" & i).Value) = Year(Date) Then
        If Range("l" & i) <> 0 And Range("l" & i) <> "" Then
            Range("a" & i).EntireRow.Copy
            Sheets("Elephant chart").Select
            If Range("a1").Value = "" Then
                Range("a1").PasteSpecial xlPasteValues
            Else
                Range("a" & Range("a65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues
            End If
            Sheets("Liste Reclamations clients SAP").Select
        End If
    End If
Next i

End Sub

par contre tu perds toute les mise en forme

j'ai fais comme ça car sinon il a un soucis de reference par contre tu peux essayer toi en enlevant le xlPasteValues vu que tu as les references

voila je sais pas si ça te va

Salut Icemake ! Merci pour ta réponse !

Mais du coup j'ai quelques soucis. Cela copie bien les cellules ! Super !

Cependant a chaque fois que j'active la macro, cela m'additionne sur la deuxième feuille les même cellules en dessous de celles précédemment copiées... En gros il ne met pas à jour.

Par ailleurs du coup cela me selectionne les lignes correspondant avec une date démarrant à partir du 1er janvier 2016.

Je voudrai remonter sur les 12 derniers mois glissants en fait...

Y a t'il une possibilité de faire appel à une case et on lui dit de partir de cette date la + 12 mois ?

Merciiiiiii pour tes réponses !!!!!

bonjour,

je voudrais savoir tu veux garder ce que tu as déjà extrait ou a chaque fois que tu fais une extraction tu remplace tout ?

et pour la date tu parle d'un endroit ou tu mets la date mais tu préfère un endroit ou tu mets la date ou prendre les 12 dernier mois a partir d'aujourd'hui ?

Bonjour Icemake,

Après si on remplace tout, ce n'est pas grave disons que cela nous permettra de faire une sorte de mise à jour des données, cela n'est pas plus mal. Donc en gros tout remplacer...

Alors oui je préfère un endroit ou l'on met la date comme en haut par exemple. Car je peux être amené à faire les douze derniers mois jusqu'à Mai alors que nous sommes peu être en juillet. A partir d'aujourd'hui cela sera trop compliqué a gérer.

Merci beaucoup ta recherche ! Je suis la si tu as d'autres questions.

Janot.

bonjour,

je t'ai fait ça :

Sub copie()

Dim datefin As Date

Sheets("Elephant chart").Select
Cells.Clear
Range("b1").EntireColumn.NumberFormat = "dd/mm/yyyy"
Range("j1").EntireColumn.NumberFormat = "dd/mm/yyyy"
Range("k1").EntireColumn.NumberFormat = "dd/mm/yyyy"
Sheets("Liste Reclamations clients SAP").Select

For i = 4 To Range("a65536").End(xlUp).Row
    datefin = DateSerial(Year(Range("e1").Value) + 1, Month(Range("e1").Value), Day(Range("e1").Value))
    If Range("b" & i).Value > Range("e1").Value And Range("b" & i).Value < datefin Then
        If Range("l" & i) <> 0 And Range("l" & i) <> "" Then
            Range("a" & i & ":m" & i).Copy
            Sheets("Elephant chart").Select
            If Range("a1").Value = "" Then
                Range("a1").PasteSpecial xlPasteValues
            Else
                Range("a" & Range("a65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues
            End If
            Sheets("Liste Reclamations clients SAP").Select
        End If
    End If
Next i

End Sub

j'ai pris comme indication pour la date celle que ta en E1 si tu veut changé tu change tout les e1 par la cellule que tu veux voila

le programme prends les 12 mois suivant la date indiqué

Merci Icemake !!! Tu es GENIAL !!

C'est parfait !! Tout ce dont j'avais besoin.

Je vais pouvoir grandement avancer grâce à toi !

Encore merci, bonne journée !!!!

Je reviens à la charge !!!! hi hi !!!

Comment puis je garder une sorte de mise en forme avec des noms de colonnes, etc sur mon 2eme onglet "elephant chart".

Car par la suite cela va être un tableau avec un suivi avec des cases à coté des données...

Dans la formule effectivement, je vois que tu as mis " Cells.Clear" pour effacer toutes les données le 2eme onglet. "elephant chart".

Ok.

Cependant peut on juste effacer les cellules de A5 à L65536 par exemple.

Et du coup lorsque nous lançons la macro, cela copie dans la même plage de cellule également.

Comme je peux travailler à coté pour nommer des noms de colonnes, rajouter des cases à coté, etc... qui resteront à chaque lancement de macro ????

Merci pour vos réponses !!

pour l'effacement tu remplace cells.clear par

Range("a5:l65536").Clear

et le reste j'ai pas bien compris ce que tu voulais

Rechercher des sujets similaires à "copie lignes conditions onglet"