if then goto [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007
-
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Hi!

je ne comprends pas pourquoi les quelques lignes qui suivent ne marchent pas.... la ligne FIN existe bien, je n'ai pas de message d'erreur mais même si la Cellule "B7" est vide il y a execution des lignes avant FIN....

Worksheets("Rapport").Activate
Range("B7").Select
If IsEmpty(ActiveCell.Value) Then GoTo FIN

merci
 Cib

11 réponses

Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007

 bon j'y suis arrivé, avec if..then..else..End if...


mais je vérifie que la cellule est vide avec :

If Worksheets("Rapport").Range("B7").Value <> ""

le "IsEmpty" était la source du pb... (pourquoi je ne sais pas?)

merci à tous!

Cib
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
19
Goto envoie vers une étiquette (de code), par vers une ligne, déjà !
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Essaye peut-etre avec IsEmpty(ActiveCell), je pense que c'est la cellule qui doit etre vide et non pas sa valeur.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007

ok désolée pour le vocabulaire, suis débutante, si ça peut m'excuser...

"etiquette", en pratique j'ai

Sub xxxx()

Worksheets("Rapport").Activate
Range("B7").Select
If IsEmpty(ActiveCell.Value) Then GoTo FIN

....plein de lignes de code...

FIN:
....plein de lignes de code...

end sub

J'ai déjà utilisé cette fonction sans pb, je pense que c'est mon if isempty qui pose pb??

a++
Cib
Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007

Casy

J'ai tenté IsEmpty(ActiveCell), mais pareil, je tombe sur une erreur dans les lignes avant FIN (ce qui est normal, B7 est vide!)
 Cib
Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007

mais tu y es c'est bien la cellule qui doit etre vide et non pas sa valeur....

 Cib
Messages postés
14647
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 février 2020
139
Bonjour


Un conseil, évite le GOTO :

Sub xxxx()


Worksheets("Rapport").Activate

Range("B7").Select

If IsEmpty(ActiveCell.Value) Then GoTo FIN


....plein de lignes de code...


FIN:

....plein de lignes de code...


end sub


Devient

Sub xxxx()


Worksheets("Rapport").Activate

Range("B7").Select

If not(IsEmpty(ActiveCell.Value)) Then


....plein de lignes de code...


end if

....plein de lignes de code...


end sub


C'est plus propre et c'est plus facile pour debugger.

Il est plus facile de batiser quelqu'un que de la convertir.(surtout en programmation)
VB (6, A excel, .NET), C++, C#.Net
Mon site
Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007

NHenry,

ok, j'ai essayé, maintenant c'est l'effet contraire, que B7 soit vide ou non sont exécutées les lignes après le end if....

 Cib
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
normal ... de l'algorithmique de base If...Then ... Else .... End If ...

If not(IsEmpty(ActiveCell.Value)) Then

....plein de lignes de code...
ELSE
....plein de lignes de code...
end if

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
22
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
11 juillet 2007

effectivement...

malgré tout ça ne marche pas...

:-(

Cib

 
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
16
Et pourquoi ne pas mettre
If Range("B7") = "" then    ("" ou vbNullString...)

MPi