Fichier Excel : Retenir les dates les plus récentes par millésimes

nahtalie

XLDnaute Nouveau
Hello,

Catrice un nouveau défi pour toi (et pour les autres aussi).

J'ai un tableau Excel avec plusieurs dates d'arrêté comptable pour des années différentes et pour chaque année je souhaite retenir la date la plus récente (ne garder que ces lignes là) automatiquement, sans avoir a y revenir dessus à chaque fin de trimestre (pas de manuel).

par exemple :

Dates d'arrêtés
31/03/2006
30/06/2006
30/09/2006
31/12/2006 (on garde que cette ligne pour 2006)
31/03/2007
30/06/2007
30/09/2007
31/12/2007 (on garde que cette ligne pour 2007)
31/03/2008
30/06/2008
30/09/2008
31/12/2008 (on garde que cette ligne pour 2008)
31/03/2009 (on garde que cette ligne pour 2009)

par contre à fin juin j'aurais :

31/03/2009
30/06/2009 (et je ne garderais que celle là)
etc...

Voila j'espère que je suis claire,
sinon j'envoie le fichier.


D'avance un grand merci pour votre aide,
++
nat:)


ps : zetes les meilleurs!
 

mromain

XLDnaute Barbatruc
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

bonjour nathalie,

voici une solution en macro :

Code:
Sub test()
noColonneDate = [COLOR="Red"][B]1[/B][/COLOR]
With ThisWorkbook.Sheets("[COLOR="Red"][B]Feuil1[/B][/COLOR]")
    For i = .Cells(.Rows.Count, noColonneDate).End(xlUp).Row To 2 Step -1
        If Right(.Cells(i, noColonneDate).Text, 2) = Right(.Cells(i - 1, noColonneDate).Text, 2) Then .Rows(i - 1).Delete
    Next i
End With
End Sub

avec le numéro de colonne et le nom de la feuille à adapter

a+
 

Catrice

XLDnaute Barbatruc
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Bonjour,

Je propose cette version :

Sub test()
With ActiveSheet
For i = .Range("A65536").End(xlUp).Row To 2 Step -1
If .Cells(i, 1) = DateSerial(Year(Date), 6, 30) Then .Cells(i, 1).EntireRow.Insert
If Year(.Cells(i, 1)) = Year(.Cells(i + 1, 1)) Then .Cells(i, 1).EntireRow.Delete
Next
.Range("A2:" & .Range("A65536").End(xlUp).Address).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub

Il ne faut garder que le 30 Juin de l'année en cours ?
Ou le dernier jour de Juin saisi ?


Voir le fichier joint
 

Pièces jointes

  • Classeur1.xls
    33.5 KB · Affichages: 83
  • Classeur1.xls
    33.5 KB · Affichages: 83
  • Classeur1.xls
    33.5 KB · Affichages: 76

lion_of_ethiopia

XLDnaute Nouveau
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

C'est en autharcie ici ? ou quoi? Aidez tout le monde svp! J'ai un problème qui traine depuis près de six jours dans ce forum sur excel personne n'ose me repondre même des suggestions déjà ce sera un excellent début!
Il fallait que je le dise mais ce forum fonctionne très bizarrement :rolleyes:
C'est un appel a l'aide
 

Catrice

XLDnaute Barbatruc
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Bonjour lion_of_ethiopia,

A ma connaissance le forum ne fontionne pas en autarcie. Tout le monde est égal devant les réponses. Tu as du remarquer que la colonne "Réponses" du Forum est rarement à zéro.
Dans ton cas je crois que le probleme d'attente dont tu parles est lié au fait que ta question s'est greffée à un Fil dèjà traité et pour lequel il y avait deja eu une réponse.
Du coup, on le suit moins ou plus ... Qui plus est, un WE prolongé est passé là dessus ...
Il aurait simplement suffit de faire une petite relance dans ce meme Post.

Bref, RDV dans le Fil d'origine pour la suite : https://www.excel-downloads.com/threads/supprimer-le-contenu-dun-dossier-avec-une-macro.106179/
 
Dernière édition:

nahtalie

XLDnaute Nouveau
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Bon j'ai regardé vite fait là.

J'ai juste un petit souci : dans mon fichier la date est en colonne et ligne K3 et jusqu'au bout (les 65000 d'Excel).

Comment je modifie la macro ?


++
nat:)

ps : pour la dernière date en 2009 aujourd'hui on garde le 31/03/2009 mais en début juillet 2009, il faudra que je retienne 30/06/2009 (et qu'on vire le 31/03/2009), mais cela doit se faire automatiquement à chaque fois que je lance la macro.
 

Catrice

XLDnaute Barbatruc
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Re,

Ci-joint une macro à tester en changeant la date systeme.
 

Pièces jointes

  • Classeur1.xls
    33 KB · Affichages: 98
  • Classeur1.xls
    33 KB · Affichages: 87
  • Classeur1.xls
    33 KB · Affichages: 80
Dernière édition:

nahtalie

XLDnaute Nouveau
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Help Catrice,

La macro bloque à ce niveau là :

.Range(MaCol & "3:" & .Range(MaCol & "65536").End(xlUp).Address).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Que pasa ?
Je peux pas changer la date système (je suis sur un poste en utilisateur).
 

Catrice

XLDnaute Barbatruc
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Re,

As-tu essayé la derniere version (il y a eu une modif).

ci-joint une 2eme version à tester
 

Pièces jointes

  • Classeur1.xls
    33 KB · Affichages: 76
  • Classeur1.xls
    33 KB · Affichages: 78
  • Classeur1.xls
    33 KB · Affichages: 86
Dernière édition:

nahtalie

XLDnaute Nouveau
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Catrice,
ça, ça marche presque :

MaCol = "K"
With ActiveSheet
For Each X In .Range(MaCol & "3:" & .Range(MaCol & "65536").End(xlUp).Address)
If Year(X) = Year(X.Offset(1, 0)) Then
Select Case DateSerial(Year(Date), 6, 30)
Case Is >= Date: If X.Offset(1, 0) <> DateSerial(Year(Date), 6, 30) Then X.Clear
Case Is < Date: X.Clear
End Select
End If
Next
.Range(MaCol & "3:" & .Range(MaCol & "65536").End(xlUp).Address).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With


Seulement le prob à la fin, dans le fichier je retrouve 2 anomalies :

il a gardé pour 2001 -> 2 dates = 19/12/2001 et 31/12/2001 (seul 31/12/2001 doit etre gardé)

et pour 2008 -> il a gardé 2 dates aussi = 30/06/2008 et 31/12/2008 (il faut garder que 31/12/2008).

Est ce que tu peux corriger steuplé ?
d'avance merci

++
nat
 

pierrejean

XLDnaute Barbatruc
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

bonjour nathalie

Salut CATRICE

Un essai (peut-etre un peu long mais si necessaire on peut travailler la vitesse)
 

Pièces jointes

  • nathalie_Classeur1.zip
    14.4 KB · Affichages: 41

nahtalie

XLDnaute Nouveau
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Salut Jean-Pierre,


Merci pour ton aide mais ça va pas non plus.

Je crois que le plus simple c'est que je vous envoie le fichier, par contre je ne peux pas le faire du boulot, donc je vous envoie ça plus tard dans la soirée.

++
nat:)
 

jeanpierre

Nous a quitté
Repose en paix
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Bonsoir tous

Nahtalie, c'est sûr qu'avec naht au lieu de nath, tu puisses inverser l'ordre des prénoms.... (facile celle-là, ici).

En général les codes de Pierrejean vont bien.

Bonne soirée.

Jean-Pierre
 

nahtalie

XLDnaute Nouveau
Re : Fichier Excel : Retenir les dates les plus récentes par millésimes

Toutes mes excuses Pierre Jean, j'ai tapé le texte très vite.

Donc voici le fichier, je reformule.

Il faut une macro qui garde la date la plus récente par millésime, mais s'il y a 10 lignes au 31/12/N il faut garder les 10 lignes. Dans ta macro Pierre Jean seule une seule ligne restait.

Mais la difficulté est que pour l'année en cours 2009, actuellement l'arrêté est au 31/03/2009, date qu'il faut retenir aujourd'hui, mais au 30/06/2009 (on va me livrer un nouveau fichier auquel s'empilera les données au 30/06/2009, et là ça sera 30/06/2009 qu'il faudra garder et non au 31/03/2009.

D'avance merci à tous
++
nat:)
 

Discussions similaires

Réponses
2
Affichages
562

Statistiques des forums

Discussions
312 756
Messages
2 091 758
Membres
105 062
dernier inscrit
Ret78