Ligne incorrect, mais ou?
Résolu
Ctesias
Messages postés
724
Date d'inscription
Statut
Membre
Dernière intervention
-
Ctesias Messages postés 724 Date d'inscription Statut Membre Dernière intervention -
Ctesias Messages postés 724 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Ligne incorrect, mais ou?
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
- Formulaire en ligne de meta - Guide
20 réponses
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
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
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 "=".
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
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
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
Bienvenu au club ;)
C'est quand meme bizarre, parce que la, je commence a avoir l'impression qu'il detecte pas les cellules vides...
C'est quand meme bizarre, parce que la, je commence a avoir l'impression qu'il detecte pas les cellules vides...
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?
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?
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?
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?
ç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
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
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...
Le truc, c'est que mes formules sont sencés afficher une valeur d'une autre feuille...
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
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
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...
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...
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
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
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 =)
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 =)