Aide pour une macro Excel 2007

Résolu/Fermé
chevalux1 Messages postés 47 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 9 juillet 2010 - 18 juin 2009 à 13:59
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009 - 19 juin 2009 à 14:33
Bonjour,

Pouvez vous m'aider à réaliser une macro SVP ?
La macro ne me parait pas très compliquée mais je n'y connais rien du tout!
Il s'agit d'afficher uniquement (peut être dans une autre feuille du classeur) les lignes qui répondent aux conditions suivantes:
- La ligne doit afficher "P" dans la colonne R
- La ligne doit avoir une date > 1 ans dans la colonne U
- Si ces deux conditions sont réunies il faut vérifier que dans la colonne X, la ligne soit vide ou que la date inscrite si elle n'est pas vide, soit supérieure à 1 an.

Merci d'avance pour votre aide.
A voir également:

28 réponses

coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009
19 juin 2009 à 11:48
essaie le code ci-dessous, je ne pense pas que ce soit un format de date, sais tu la ligne où ça ne marche pas?

i = 2
k = 2
While i < 6000
If Cells(i, 18) = "P" Then
If Cells(i, 21) <> "" Then
If DateDiff("yyyy", Cells(i, 21), Date) > 1 Then
If (Cells(i, 24) = "" Or DateDiff("yyyy", Cells(i, 24), Date) > 1) Then
For j = 1 To 40
Sheets("Ponctuel à relancer").Cells(k, j) = Sheets("SAV").Cells(i, j)
Next j
k = k + 1
End If
End If
End If
End If
i = i + 1
Wend
0
chevalux1 Messages postés 47 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 9 juillet 2010
19 juin 2009 à 12:04
Non je ne sais pas la ligne ou ça ne marche pas, comment savoir?
Avec ce dernier code rien ne se passe.
0
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009
19 juin 2009 à 13:45
envoie moi une partie de ton fichier, je verrai là où ça cloche parce chez moi ça marche.

quoc.bach@alico.com
0
chevalux1 Messages postés 47 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 9 juillet 2010
19 juin 2009 à 13:59
Je crois que j'aicompris l'erreur!
ça provient du >1 concernant la date.
Il me reporterait que les lignes avec les dates en 2007.
Or moi mes dates pour le moment sont encore en 2008 mais la différence avec aujourd'hui est supérieur à 365 jours.
Ce sont ces lignes que je veux recopier. J'ai mis >= 1 et il me remonte bien les lignes ou il ya 2008.
Peut est-ce sur les jours ou les mois qu'il faut poser les conditions ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009
19 juin 2009 à 14:04
non, >= c'est bon, ce sera toutes les dates il y a au moins 1 an, je pense que c'est ça que tu veux?
0
chevalux1 Messages postés 47 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 9 juillet 2010
19 juin 2009 à 14:12
Le problème est qu'il me copie aussi une date comme 03/12/2008 or ça fait moins d'un an.
0
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009
19 juin 2009 à 14:23
effectivement, je viens de tester. alors dans la fonction datediff, remplace "yyyy" par "d", et 1 par 365 au niveau du test.
0
chevalux1 Messages postés 47 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 9 juillet 2010
19 juin 2009 à 14:30
C'est parfait!
Merci mille fois pour ton aide!
C'était tout bête finalement!
Merci encore!
0
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009
19 juin 2009 à 14:33
hihi ... effectivement, l'informatique c'est somme toute assez bête, il suffit de savoir dire au programme exactement ce qu'on veut ...

bonne continuation...
0