je suis autodidacte et débutant mais j'ai jamais rencontré un tel cas !!! bizarre !!! un petit exemple svp !!Citation:
des cellules vide mais a l’intérieur il y a des espaces
Version imprimable
je suis autodidacte et débutant mais j'ai jamais rencontré un tel cas !!! bizarre !!! un petit exemple svp !!Citation:
des cellules vide mais a l’intérieur il y a des espaces
Bonjour,
Une cellule vide c'est une cellule qui ne contient rien.
Une cellule avec des espaces à l'intérieur, c'est pas une cellule vide !
J'ajouterais qu'une cellule qui contient un texte vide ("") n'est pas une cellule vide.
Pour éliminer les espaces superflus, utilises la fonction TRIM()
Je ne comprends pas pourquoi la macro s'arrète à 2500 lignes lorsque je mets :
Et lorsque je mets de j=2 to Derligne, ça bloque directe la macro ...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub test1() With Sheets("SUIVTRANS EN COURS") Derligne = .Range("A" & Rows.Count).End(xlUp).Row For j = 537 To Derligne If .Cells(j, 14) = "" And .Cells(j, 17) = "" And CDbl(.Cells(j, 19)) < 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
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub test1() With Sheets("SUIVTRANS EN COURS") Derligne = .Range("A" & Rows.Count).End(xlUp).Row For j = 2 To Derligne If .Cells(j, 14) = "" And .Cells(j, 17) = "" And CDbl(.Cells(j, 19)) < 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
Salut Obadj,
Exécute la procédure pas à pas.
Peut-être un problème avec Derligne
Toujours en pas à pas, continue l'exécution sur un cas à la 1ère condition, un autre à la 2nde.
Ceci afin de vérifier si tes conditions reportées dans le code répondent bien à ton algorithme.
Bonjour;
Je cherche de comparer un indice (DX-8 par exemple) qui est déjà inséré dans un Combobox1 avec d'autre indice;
S'il est sélectionné j’insère un autre indice dans un autre Combobox2 comme suit : ComboBox2.AddItem ("7T-L").
La première condition qui me manque
Merci de votre aide
cousin bilgates :mrgreen:
ouvrir votre propre discussion et explique bien ce que tu cherches à faire avec un exemple représentatif et tu aura de l'aide
BONNE JOURNEE
Oui oui. Les boucles dans les boucles fonctionnent bien (Tant que les lignes de fin de boucles sont bien placées :) )
Bonjour,
J'ai pas regardé en détail, mais il manque un point avant Cells dans la ligne
Code:Else: Cells(j, 13) = "DECOMPTE A EMETTRE"
Bonjour à tous,
La formule marche mais elle ne prends pas en compte la colonne 17 qui doit être = à rien.... Pourtant la formule l'indique bien....
Ensuite, lorsque que je lance la macro, elle veut pas aller jusqu'à la dernière ligne donc du coup j'indique qu'il faut qu'il prenne la ligne de 537 à 4000 par exemple. Sauf que la, la macro ce lance et s’arrête à la ligne 2183 et ça m'affiche direct un message d' "erreur d'éxécution '13 : incomptaibilité de type" Et ca me surligne cette ligne en jaune alors qu'elle est totalement correcte !
Vraiment je ne comprends pas pourquoi il me fait ça et même sur les lignes qu'il me sort, quand je lance la macro jusqu'à qu'elle bloque à la ligne 2183 : les résultats ne prennent pas en compte ma colonne 17 qui doit être vide ... !!! :?:?:calim2::calim2:Code:If .Cells(j, 14) = "" And .Cells(j, 13) = "" And .Cells(j, 17) = "" And CDbl(.Cells(j, 19)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then
Merci de votre AIDE LES AMIS !
Tu es sûr que c'est bien la colonne 17 que tu veux tester ?
Comme dans les messages précédent il a pu être vérifié que tu t'es trompé 3 fois de numéro de colonne, c'est sans doute le première chose à vérifier.
Ensuite, il faudrait vérifier que cette colonne est REELLEMENT vide et que ce vide n'est pas qu'apparent : elle ne contiendrait pas des espaces, des tabulations ou autres caractères invisibles...
Excel semble penser qu'elle n'est pas correcte et Excel est têtu.Citation:
Sauf que la, la macro ce lance et s’arrête à la ligne 2183 et ça m'affiche direct un message d' "erreur d'éxécution '13 : incomptaibilité de type" Et ca me surligne cette ligne en jaune alors qu'elle est totalement correcte !
Si tu ne montres pas le contenu de cette ligne, il sera difficile de t'expliquer ce qui cause le problème dans cette ligne.
Oui je confirme que la colonne 17 fait partir des colonne égale à rien.
J'ai essayé de faire autrement, en copiant la formule =SI dans la macro : Vous en pensez quoi SVP ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Sub macroDecompte() With Sheets("SUIVTRANS EN COURS") Derligne = .Range("A" & Rows.Count).End(xlUp).Row For j = 2 To Derligne Do If .Cells(j, 13) = "" And Cells(j, 17) = "" And Cells(j, 14) = "" Then .Cells(j, "M") = .FormulaR1C1 = _ "=IF(AND(RC[4]="""",OR(RC[-5]=""001121"",RC[-5]=""001170"",RC[-5]=""002160""),ABS(RC[6])<15000),""PAS DE DECOMPTE"",""DECOMPTE A EMETTRE"")" End If j = j + 1 Loop Until Cells(j + 1, "a") = "" 'copier coller valeur de la col M Next j End With End Sub
Oui je suis sur que la colonne 17 en fait partie !
La ligne je te l'avais mis dans mon message précédent. Voici la ligne ou ça bloque, je l'ai mise ne orange foncé ci-dessous :
Code:
1
2
3 If .Cells(j, 14) = "" And .Cells(j, 17) = "" And CDbl(.Cells(j, 19)) < 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"
Bonjour,
Si tu ne t'en sort pas avec les numéros de colonnes, utilises leurs lettres :
J'ai tout de même un doute sur le test de la colonne M :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
26
27
28
29
30
31
32
33
34
35 Sub Test() Dim Cel_N Dim Cel_M Dim Cel_Q Dim Cel_S Dim Cel_H Dim J As Long With Sheets("SUIVTRANS EN COURS") For J = 2 To .Range("A" & Rows.Count).End(xlUp).Row Cel_N = .Cells(J, "N").Value Cel_M = .Cells(J, "M").Value '<--je ne suis pas sûr de ceci puisque c'est la cellule devant recevoir la valeur !!! Cel_Q = .Cells(J, "Q").Value Cel_S = .Cells(J, "S").Value Cel_H = .Cells(J, "H").Value If Cel_N = "" And Cel_M = "" And Cel_Q = "" And CDbl(Cel_S) < 15000 And (Cel_H = "002160" Or Cel_H = "001170" Or Cel_H = "001121") Then .Cells(J, "M").Value = "PAS DE DECOMPTE" Else Cells(J, "M").Value = "DECOMPTE A EMETTRE" End If Next J End With End Sub
If .Cells(j, 14) = "" And .Cells(j, 13) = "" And .Cells(j, 17) = "" And CDbl(.Cells(j, 19)) < 15000 And (.Cells(j, 8).Value = "002160" Or .Cells(j, 8).Value = "001170" Or .Cells(j, 8).Value = "001121") Then
car c'est celle qui est sensée recevoir la valeur ???
Bonjour, après de nombreuses heures à réfléchir dessus, ma colonne 17 comporte de nombreux espaces ainsi que des caractère spéciaux.... et je suis obligé" de corriger cette colonne pour que mon autre marco fonctionne :mrgreen:
J'aimerais savoir comment je pourrais modifier cela : "05 10 2018" par lui dire qu'il supprime tous les espaces avant, après et au milieu des caractère dans la cellule et qu'il me remplace par "05/10/2018" sans espaces.
J'ai déjà coder ça sauf qu'il faut que je rajoute qu'il me rajoute les "/" entre les chriffre à la place des espaces par exemple entre le "05" et le "10" et ainsi de suite
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub espaces() With Sheets("SUIVTRANS EN COURS") Derligne = .Range("A" & Rows.Count).End(xlUp).Row For j = 2 To Derligne Cells(j, 17) = Application.Trim(Application.Substitute(Cells(j, 17), Chr(160), Chr(32))) Next j End With End Sub
Pour enlever les espaces avant et après, voir la fonction Trim().
https://docs.microsoft.com/fr-fr/off...trim-functions
Pour changer les espaces "intérieurs" en /, voir la fonction Replace().
https://docs.microsoft.com/fr-fr/off...place-function
Mais, à mon avis, tu ne devrais pas passer par la fonction Replace() mais par une combinaison des fonctions Mid() et DateSerial() pour être sûr d'avoir une date comme résultat.
https://docs.microsoft.com/fr-fr/off...erial-function
https://docs.microsoft.com/fr-fr/off...p/mid-function
Bonjour Menhir,
Je ne vois pas comment faire... peux-tu m'aider stp
Comment supprimer les espaces entre, avant et après les caractères ainsi que les cellule vide qui comporte des espace :
exemple : "05 10 2018"
Il faut que je rajoute qu'il me rajoute les "/" entre les chiffres à la place des espaces par exemple entre le "05" et le "10" et ainsi de suite
Voici le fichier ou j'ai mis juste la colonne 17 qui nous bloque pour la macro : Pièce jointe 442494
Voici le code que j'ai tenter mais sa bloque à la dernière ligne que j'ai mis en orange foncé du code :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub ConvertDate() Dim i As Long, Temp As String With Sheets("SUIVTRANS EN COURS") Derligne = .Range("A" & Rows.Count).End(xlUp).Row For i = 2 To Derligne If Not IsEmpty(.Cells(i, 17)) And Not IsError(.Cells(i, 17)) Then Temp = Replace(.Cells(i, 17), " ", "") .Cells(i, 17) = DateSerial(CInt(Right(Temp, 4)), CInt(Mid(Temp, 3, 2)), CInt(Left(Temp, 2))) End If Next i End With End Sub