Macro pour tester une ligne

V

vhalter

Guest
Bonjour à tous,

Je souhaite faire une macro qui permet de tester les lignes.
Je m'explique:
Si chaque ligne est renseignée par une date et que celle-ci dépasse par exemple 6 mois, il faudrait que cette macro supprime la ou les lignes concernées.

Merci d'avance.
 
H

Hervé

Guest
salut vhalter,


ce code permet de rechercher une échéance (date du jour - 6 mois) dans la colonne A et supprimer les lignes :

Public Sub essai()
Dim cel As Range
Dim plage As Range

Set plage = Sheets("Feuil1").Range("a7:a" & Sheets("Feuil1").Range("A65000").End(xlUp).Row)
For Each cel In plage
If cel.Value < DateAdd("m", -6, Now) Then
cel.Rows.Delete

End If

Next cel
End Sub

par contre tu nous dis pas ou se trouve les dates dans ton fichier.

bon courage

salut
Hervé
 
H

Hervé

Guest
re salut

c'est bizarre, je viens de tester toutes les dates du 01/01/99 au 31/12/05
et il me supprime bien les lignes du 01/01/99 au 06/03/04.

qu'entend-tu par "plusieurs lignes" ?

pourrais tu joindre un exemple de ton fichier (en zip) pour voir ce qui cloche.

salut
Hervé
 
V

vhalter

Guest
Ci-joint un fichier Zip.
Les dates et la colonne validité s'éffacent mais pas entre les 2.
En plus j'ai vu un poste un peu plus loin qui me serait utile: a chaque ligne date créée; est-il possible de copier en auto la formule de la colonne "validité"?
Tiens moi au courant!
Merci pour vos lumières...
 

Pièces jointes

  • AA.zip
    12.3 KB · Affichages: 21
  • AA.zip
    12.3 KB · Affichages: 16
  • AA.zip
    12.3 KB · Affichages: 21
H

Hervé

Guest
re


voici un code pour résoudre le problème de suppresion de ligne :

Sub sup()
Dim cel As Range, Compteur As Long
dim l as integer
Application.ScreenUpdating = False
l = Sheets("Feuil1").Range("A65000").End(xlUp).Row

For Compteur = l To 3 Step -1
If Range("A" & Compteur).Value < DateAdd("m", -6, Now) Then
Range("A" & Compteur).EntireRow.Delete
End If
Next Compteur
Application.ScreenUpdating = True

End Sub

Je regarde pour ton autre question.

Hervé
 
H

Hervé

Guest
re bonjour,


pour la recopie de formule suivant une date en colonne A, essaye ceci :


Private Sub Worksheet_Change(ByVal Target As Range)
Dim verif As Boolean
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
verif = IsDate(Target)
If verif = True Then
Target.Offset(0, 8).Formula = "=O"
End If
End If

End Sub


bonsoir
Hervé
 
V

vhalter

Guest
Toujours pour le même tableau.
J'aimerai que l'utilisateur puisse imprimer une plage de date avec l'entête.
Je doute que ceci soit possible mais vu tes compétences je pense que tu peux trouver la solution.
Ca serai sympa de ta part de continuer à m'aider.
 
H

Hervé

Guest
je m'apercois tardivement que tu doubles tes questions sur 2 postes differents (en changeant de nom) :

en plus tu te permets d'y faire référence :
"En plus j'ai vu un poste un peu plus loin qui me serait utile: a chaque ligne date créée; est-il possible de copier en auto la formule de la colonne "validité"?"

<http://www.excel-downloads.com/html/French/forum/messages/1_113400_113400.htm>

Ceci me parait pas très honnête au regard de la moralité et du savoir vivre qui sied à ce forum.

enfin pour ta question : une zone d'impression devrait faire l'affaire (je te laisse découvrir ceci par l'intermédiaire de l'enregistreur de macro).

PS : mes compétence se limitent à utiliser la touche recherche du forum.

Salut
Hervé
 
V

vhalter

Guest
Je suis désolé mais voyant que personne ne répondait à mon poste, je me suis permis d'en mettre un nouveau.
Toutefois, tes réponses sont les mieux adaptées à mes problémes car tu as suivi l'évolution de mon tableau pas à pas. Sache que ce tableau me servira pour mon travail.
Je vais essayé de trouver ma réponse sur le forum, mais je doute y pouvoir m'en sortir vu mon niveau.
Encore une fois désolé.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510