voila :
Version imprimable
voila :
Le problème c'est que dans la colonne 17 la date est en format texte ! Exemple : 22 10 2018
Voila comment la date est dans la colonne
A TESTER
Code:
1
2
3
4
5
6
7
8
9
10 Sub test() With Sheets("SUIVTRANS EN COURS") For j = 2 To 5 If .Cells(j, 14) = "" And .Cells(j, 17) = "** ** ****" And Abs(Cells(j, 18) < 15000) And (.Cells(j, 9).Value = "002160" Or .Cells(j, 9).Value = "001170" Or .Cells(j, 9).Value = "001121") Then .Cells(j, 13) = "PAS DE DECOMPTE" Else: Cells(j, 13) = "DECOMPTE A EMETTRE" End If Next j End With End Sub
Voila mon fichier tu verras sa marche pas
Pièce jointe 440335
Tu es au courant que la colonne H n'est pas la 9ème ?
Je suis aussi quasiment persuader que le test sur le format date est inutile ou, du moins, ne fera pas ce que tu souhaites.
bonjour OBADJ , Menhir la forum
à tester
Code:
1
2
3
4
5
6
7
8
9
10 Sub test() With Sheets("SUIVTRANS EN COURS") For j = 2 To 5 If .Cells(j, 14) = "" And .Cells(j, 17) <> "" And CDbl(Cells(j, 18)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then .Cells(j, 13) = "PAS DE DECOMPTE" Else: Cells(j, 13) = "DECOMPTE A EMETTRE" End If Next j End With End Sub
Bonjour :)
ça ne fonctionne toujours pas !
En revanche avec ce code il me sors les commentaire sauf qu'il prend pas en comptes la ligne des <15000 :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Sub test3() With Sheets("SUIVTRANS EN COURS") Derligne = .Range("A" & Rows.Count).End(xlUp).Row For j = 2 To Derligne If .Cells(j, 13).Value = "" And _ .Cells(j, 14).Value = "" And _ .Cells(j, 19).Value < 15000 And _ .Cells(j, 8).Value = "002160" Or _ .Cells(j, 8).Value = "001170" Or _ .Cells(j, 8).Value = "001121" Then .Cells(j, 13).Value = "PAS DE DECOMPTE" Else .Cells(j, 13).Value = "DECOMPTE A EMETTRE" End If Next j End With End Sub
Et tu fais toujours aussi peu d'effort pour expliquer tes dysfonctionnements.
Ca devient pénible... :calim2:
On recommence : VERIFIE TES NUMEROS DE COLONNE !!!!Citation:
En revanche avec ce code il me sors les commentaire sauf qu'il prend pas en comptes la ligne des <15000 :
Menhir je suis désolé mais la formule de base est complexe... Concernant les colonnes c'est bon j'ai tous rectifié !
Je me réexplique :
Il y a absolument 3 conditions obligatoire à respecter pour mettre le commentaire "Pas de décompte" :
Si la cellule (j,13) est vide et que si la cellule (j,14) est vide et que cellule (j,17) est vide et que (j,19)<15000 alors "pas de décompte" sinon "décompte à émettre"
Deuxième possibilité : si la cellule (j,13) est vide et que si la cellule (j,14) est vide et que la cellule(j,8)="002160" ou "001170" ou "001121" et que (j,19) <15000 alors "pas de décompte" sinon "décompte à émettre"
J'espère tu as mieux compris la logique et se que je voudrais faire dans ma formule !
Ce que je suis en train de dire c'est exactement cette formule :
Code:=SI(ET(N2 ="";Q2="";OU(H2="001121";H2="001170";H2="002160");ABS(S2)<15000);"PAS DE DECOMPTE";"DECOMPTE A EMETTRE")
comment ça marche pas ??
bien sure !!! vu que tu n'as pas remplacer 5 par la dernière ligne mon ami
Code:
1
2
3
4
5
6
7
8
9
10
11
12 Sub test() With Sheets("SUIVTRANS EN COURS") For j = 2 To 38 ' à remplacer par la dernière ligne If .Cells(j, 14) = "" And .Cells(j, 17) <> "" And CDbl(Cells(j, 18)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then .Cells(j, 13) = "PAS DE DECOMPTE" Else: Cells(j, 13) = "DECOMPTE A EMETTRE" End If Next j End With End Sub
Le résultat n'est pas bon car par exemple de la ligne 20 à 38 il mets pas de décompte alors que en colonne 17 ya une date donc elle n'est pas vide donc ça aurait du être "Décompte à émettre.
Si c'est bon ça marche tu avais mis différents de vide pour la colonne 17 !
En revanche BENNASR,
Tu vois en colonne 17 dans mes vide, il y a des espaces donc sur mon fichier principale la macro ne reconnait pas les cellules vide en colonne 17....
donnez svp un exemple de l'erreur dans la feuille jointe
Non c'est bon ça fonction mais j'ai du changer cette ligne :
Code:
1
2 If .Cells(j, 14) = "" And .Cells(j, 13) = "" And .Cells(j, 17) = "" And CDbl(Cells(j, 18)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then .Cells(j, 13) = "PAS DE DECOMPTE"
C'est (j,17)="" et non (j,17) <>""
Mais sinon j'ai un soucis sur mon fichier d'origine dans ma colonne 17 j'ai des cellules vide mais a l’intérieur il y a des espaces donc la macro ne la reconnait aps comme une cellule vide du coup ca fausse tous le resultat :/