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é
 
V

vhalter

Guest
Ca marche pas...ou pas complétement.
Il ne supprime pas les lignes complètes et il faut répéter plusieurs fois si il y a plusieurs lignes.
 
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...
 

Fichiers joints

  • 12.3 Ko Affichages: 21
  • 12.3 Ko Affichages: 21
  • 12.3 Ko Affichages: 16
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é.
 
H

Hervé

Guest
re

regarde la pièce jointe, on peut largement faire mieux mais l'urgence commande.

Par contre cette appli ne gère pas plusieurs imprimantes ou des réseaux.

de plus ta demande n'était pas très explicite donc j'ai improvisé.


Salut
Hervé
 

Fichiers joints

  • 16.9 Ko Affichages: 11
  • 16.9 Ko Affichages: 10
  • 16.9 Ko Affichages: 16
V

vhalter

Guest
Salut,
merci de tes efforts.
Quand je disais une plage de date c'était;
L'utilisateur clic sur un bouton: comme ce que tu as fait. Ensuite une boite de dialogue s'ouvre demandant Impression dates du --.--.-- au --.--.--.
Ce n'est si urgence que ça!
J'ai pensé à un truc cette nuit. Quand on supprime toutes les lignes dates aprés 6 mois on perd en même temps l'aspect historique. Je pense qu'il serait mieux de faire un couper coller dans un autre fichier, genre AA-OLD.XLS. Comme ça on peut toujours consulter dans cet autre fichier dans les dates.
En plus pour un but de confort visuel, se serait bien si les lignes dates serait en validité "non" soient barrées.
Aprés cela on aura fait le tour de tous les problémes.
Tu penses pouvoir faire quelque chose?
 

Fichiers joints

  • 19.9 Ko Affichages: 10
  • 19.9 Ko Affichages: 16
  • 19.9 Ko Affichages: 15
H

Hervé

Guest
salut

Ce forum est un échange de connaissance en excel pas un prestataire de service. Aussi je n'irai pas plus loin pour l'impression de date à date (manque de temps et de connaissance).

Par contre j'ai rajouté une feuille pour les historiques (un fichier pour gérer ceci est vite une usine à gaz pour moi surtout quand une feuille peut le faire).

j'ai simplement rajouté une mfc pour barré le non de validation et mettre en rouge.

et j'ai rajouté une liste de validation pour les pelles, etc....

en te souhaitant une bonne journée

Hervé
salut
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas