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