Ligne incorrect, mais ou?

Résolu/Fermé
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 - 26 mai 2011 à 09:11
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 - 26 mai 2011 à 14:50
Bonjour,

VOila, je viens a vous pour vous demander votre aide. Je ne comprend pas ou ai-je fait une erreur dans le code suivant :

Sub present()

Dim i As Integer
Dim j As Integer

For i = 16 To 152 Step 8
j = i + 7
If Sheets("relevé").Cells(i, 2).Text = "" Then
Rows(i & ":" & j).Select
Selection.EntireRow.Hidden = True
End If
Next
End Sub


Il ne veux pas me masquer les colonnes. j'ai fiat plusieur test, et apparement, il ne comprend pas cette ligne la:

If Sheets("relevé").Cells(i, 2).Text = "" Then

Quelqu'un saurait pourquoi? :s

Merci d'avance,

Ctesias

A voir également:

20 réponses

sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 09:23
tout simplement que pour effectuer un test il faut un double égal (==)
Le simple égal est une attribution de variable, donc normal qu'il comprenne pas en fait :)
Pour lui tu fais aucune opération dans ton If, juste une attribution

If Sheets("relevé").Cells(i, 2).Text == "" Then
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 09:25
j'ai bien tester, c'est comme en C, le probème, c'ets qu'il me met: "erreur de compilation: expression attendue" et me surligne le deuxieme "=".
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 09:38
Je suis pas sur mais c'est peut être ton .Text qui gène.

Maintenant à ta place je mettrais une vérification d'existence plutot que =""
J'ai plus le nom en tête mais pour faire une comparaison avec le C, ça donnerait dans le genre

If !(Sheets("relevé").Cells(i, 2).Text) Then
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 09:42
EDIT: je viens de faire quelques recherches, regarde du coté de la fonction IsNull
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 09:48
J'ai bien essayé avec la fonction isnull:

If IsNull(Sheets("relevé").Cells(i, 2).Value) Then

mais rien ne se produit...
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 09:43
ba j'ai utilisé un .value aussi, mais ca ne marche pas.

If !(Sheets("relevé").Cells(i, 2).Text) Then ne marche pas, il me dis avec des crochets :
If ![Sheets("relevé").Cells(i, 2).Text] Then
Mais une erreur apparait:

"Erreur de compilation: reference incorrct ou non qualifié"

Que pasa? ^^'

je ne comprend pas la...
0

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

Posez votre question
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 09:59
C'est étonnant qu'avec IsNull ça marche pas... la je dois te dire que si cette fonction marche pas je sèche un peu
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 10:01
Bienvenu au club ;)

C'est quand meme bizarre, parce que la, je commence a avoir l'impression qu'il detecte pas les cellules vides...
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 10:07
J'ai trouvé! j'ai mis le temps mais j'ai trouvé.

dans ton premier post, tu mets:
If Sheets("relevé").Cells(i, 2).Text = "" Then

Or je viens de tester avec un cas en dur, il faut mettre Value à la place de Text et ça fonctionne. Précisément, en test j'ai écrit dans un classeur vide:

If Sheets("Feuil1").Cells(2, 2).Value = "" Then
MsgBox "dommage"
End If

Et ça a fonctionné. Par contre question existentielle et dont je ne suis pas sur que ça ait de l'influence, ta macro du l'écrit ou? je veux dire dans quelle feuille?
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 10:13
Euh, dans un module. Ca peut influer?

Et pour moi If Sheets("Feuil1").Cells(2, 2).Value = "" Then
ne marche pas, j'avais deja essayé. Alors est-ce que ca viens de mes cellules ou il y a des formules mathématique dedans?
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
Modifié par sirefalas le 26/05/2011 à 10:20
ça peut venir de la, réessaye de ton coté en ouvrant un nouveau classeur et en copiant le If que j'ai fait.
Après ce que je voulais dire pour savoir ou tu écrivais ta macro, c'était plutot si tu l'écrivait dans une feuille du document ou dans Thisworkbook.
J'ai testé en écrivant dans ThisWorkBook, je vais tester dans une feuille la
EDIT: ça change rien la page ou est écrite la macro
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
Modifié par Ctesias le 26/05/2011 à 10:22
ta macro dans un autre classeur fonctionne.. Cela doit venir des formules alors.

Le truc, c'est que mes formules sont sencés afficher une valeur d'une autre feuille...
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 10:22
tu as essayé d'avancer en pas à pas dans ta macro? tu vas peut être voir où ça coince et pourquoi ça ne rentre pas dans ton If
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 10:31
je suis pas un super fan du pas a pas, je ne comprend pas comment il fonctionne
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 10:44
Après plusieurs essai: il ne rentre pas dans le IF...
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 10:53
question con, tu es sur du nom de la feuille où tu fais tes tests? Essaye un nom sans accents aussi, des fois ça peut faire bugger
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 10:56
oui je suis sur du nom ;), et non, je prefere pas changer le nom, parce que sinon, je dois rechanger loes formules d'une quinzaine de feuille :s
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 10:59
j'ai changé le code, ca marche mieux, masi pas completement:

Sub present()

Dim i As Integer
Dim j As Integer
Dim k As Integer

k = 16
For i = 4 To 22
If Sheets("personnels").Cells(i, 2).Value = "NON" Then
j = k + 7
Sheets("relevé").Rows(k & ":" & j).Select
Selection.EntireRow.Hidden = True
End If
k = k + 8
Next

End Sub

le problème, c'est qu'il me reste à la fin, un oui, non, non...
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 11:01
Bon au moins on sait ou est le souci, c'est ton If qui déconne, continuons à isoler petit à petit pour essayer de trouver l'erreur.
Il faut donc tester séparément le nom de la feuille (en mettre une autre qui existe) et tenter avec une valeur précise pour i.
Finalement, tester ces deux choses en même temps si il y a toujours souci
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 11:09
Humm... il me semble qu'une valeur precise de i marche.
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 11:49
alors tu as trouvé quelle était l'erreur?
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 13:45
oui, mais j'ai honte de dire l'erreur que j'ai faite... une erreur toute bete...

le code est celui la :

Sub present()

Dim i As Integer
Dim j As Integer
Dim k As Integer

k = 16
For i = 5 To 22
If Sheets("personnels").Cells(i, 2).Value = "NON" Then
j = k + 7
Sheets("relevé").Rows(k & ":" & j).Select
Selection.EntireRow.Hidden = True
End If
k = k + 8
Next

End Sub

Mais l'erreur etait For i = 4 To 22 au lieu de For i = 5 To 22 ...

LA HONTE xD

Merci quand meme =)
0
sirefalas Messages postés 219 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 12 février 2014 8
26 mai 2011 à 13:46
LOL, je pouvais vouloir t'aider autant que je veux j'étais pas rendu XD
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
26 mai 2011 à 14:50
oui, desole xD
0