Goto

  • Initiateur de la discussion Rémy
  • Date de début
R

Rémy

Guest
Bonjour a tous

petite question pas dure pour vous meme!!!!

dans une instruction if..... then goto....

on peut mettre un numero de ligne ( dixit l'aide)

mais je ne trouve pas la syntaxe. j'ai essayé goto 65, goto Line 65, etc... ca ne marche pas.

quelqu'un aurat-il une idée?

merci d'avance

Rémy
 

JeanMarie

XLDnaute Barbatruc
Bonsoir Rémy

Goto se déplace à ce que l'on nomme une étiquette

Sub GotoStatementDemo()
Dim Number, MyString
Number = 1 ' Initialise la variable.
' Évalue Number et se branche à l'étiquette
' appropriée.
If Number = 1 Then GoTo Line1 Else GoTo Line2

Line1:
MyString = 'Number est égal à 1'
GoTo LastLine ' Passe à la dernière ligne.
Line2:
' L'instruction suivante ne peut jamais être
' exécutée.
MyString = 'Number est égal à 2'
LastLine:
Debug.Print MyString ' Affiche 'Number est
' égal à 1' dans la fenêtre
' Exécution.
End Sub

@+Jean-Marie
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Rémy, Jean Marie

Tout d'abord merci pour ton commentaire dans un post précédent en fin d'après midi, si tu es le même Rémy.

Ensuite et bien donc comme explique très bien Jean-Marie, pour mettre en pratique en réel, voici une démo récente qui utilise du GoTo en gestion d'erreur et en réaction en chaine :

=> Lien supprimé

Bonne soirée
@+Thierry
 

Jam

XLDnaute Accro
Salut Rémy, Jean-Marie, _Thierry,

Juste un petite paranthèse sur l'utilisation de Goto.
Cette instruction provient de l'ancien Basic qui utilisait une forme structurale de langage et non pas procédurale comme l'est le VB(A). Cette instruction n'est pas (plus) conseillée pour le développement en VB, à la notable exception de la gestion des erreurs (quoique).
Il vaut mieux avoir recours à d'autres techniques que les Goto qui peuvent rendre très rapidement le code illisible et indébogable (j'en ai fais plus d'une fois la désagréable expérience).

Bon ap'
 

Jam

XLDnaute Accro
Re Rémy,

Par technique j'ai du te faire un peu peur, en fait tu as 2 solutions:
Soit tu traites ton code entre le If...Else...End If soit tu fais appel à des function/sub dans lequel tu effectues ton traitement.

@+
 

_Thierry

XLDnaute Barbatruc
Repose en paix
re Bonjour MrXL, Rémy

Je vois que tu n'as pas regardé la démo mise en ligne MrXl, sinon tu y aurais fait référence dans ton post... surtout en ce qui concerne le Basic !!!

Mais GoTo en lui-même n'est pas du tout déconseillé, à condition de l'utiliser à bon escient et de ne pas en abuser, mais sinon c'est un moyen ultra efficace de déclencher et gérer des erreurs et de réagir en conséquence...

L'aide nous confirmera la même chose, avec une simple remarque qui résume ce que je viens d'expliquer 'Note : Too many GoTo statements can make code difficult to read and debug'.

Bon Appétit
@+Thierry
 

Ti_

Nous a quitté
Repose en paix
Salut a tous,

je m'immisce dans ce fil pour dire que je déconseille l'utilisation des goto, excepté, comme le dit MrExcel, pour gérer les erreurs, puisqu'on ne peut pas faire autrement en VB.
L'exemple de Thierry ne me semble pas un exemple à suivre, il est plus simple et plus élégant de faire un test préalable sur l'existence du commentaire, comme ceci :

Code:
  With Range('A1')
    If .Comment Is Nothing Then
      .AddComment
      .Comment.Text Text:='@+Thierry' & Chr(10) & 'Created on : ' & Format(Now, 'DD/MM/YY HH:MM:SS') & _
          ' By Thierry', Start:=Len(.Comment.Text) + 1, OverWrite:=False
    Else
      .Comment.Text Text:=Chr(10) & 'Reviewed on : ' & Format(Now, 'DD/MM/YY HH:MM:SS') & _
          ' by ' & Application.UserName, Start:=Len(.Comment.Text) + 1, OverWrite:=False
    End If
(etc.)

outre que du coup ton code perd cet aspect spaghetti, il devient également plus compact, donc plus lisible, et il n'y a même plus besoin de jouer sur la gestion des erreurs.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ti, re MrXl, Rémy, le Forum

Désolé j'étais en WebEx Meeting tout l'après midi, mais j'aurais dû parier sur ta Visite dans ce fil Ti, car je me souviens très bien ta position par rapport au GoTo, on s'est déjà croisé sur ce coup là.

Sinon mort de rire pour l'appellation 'Aspect Spaguetti' mais tu as tout à fait raison Ti (Arf 'tout à fait Thierry'), c'est même carrément 'Spaguetti Napolitain' car même les Piémontais, ou les Florentins auraient fait plus carré que ce 'Barbatruc' inventé d'ailleurs pour faire enrager mon pôte José !!!

Mais rien à dire sur l'élégance de ta prose, qui est évidemment et comme toujours impeccable.

Sinon pour Rémy, je parlais de ma Démo (Tu sais la belle l'italienne) que j'ai mise en lien, par de Démo de MrXl à rechercher dans ce Fil.

En tout cas j'ai tellement rigolé que mon colègue m'a demandé ce que je trafiquais !!! lol

Bonne Soirée
@+Thierry

PS: Goto the Next Wifi Bar !!!

(et puis j'habite à coté de l'Italia)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Hips !!!!

Duvel.gif
Duvel.gif
Duvel.gif
Duvel.gif
Duvel.gif


Lol merci José !

Tell me the way to the next Wifi bar !!!
Non no no no pas à la 'Doors' (lol)

On va se la faire à la 'Ten Years After'

I'm going Home !!!

Hips
@+Thierry !
 

Discussions similaires

Statistiques des forums

Discussions
312 687
Messages
2 090 950
Membres
104 705
dernier inscrit
Mike72