IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Traduire une boucle For de C# à VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut Traduire une boucle For de C# à VBA
    Bonjour le forum,

    Je suis actuellement entrain de transférer de vieux code en C# d'un de mes collègues en VB.Net et VBA mais aujourd'hui je me heurte à une petite difficulté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For (i=2, l = x+1; i != l; i++)
    Je ne comprends pas du tout la signification du l = x+1 ici (le x renvoi à la ligne du tableau ou l'on se trouve tandis que le i parcourt les lignes)

    Je pensais le traduire ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 2 to i <> l
    l = x + 1
    [...]
    Next i
    Mais cela me parait complètement étrange donc si vous pouviez m'éclairer (l'aide microsoft n'étant pas d'un grand secours et je ne code jamais en C#)

    Deuxième difficulté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!i->a) Then continue
    Que j'ai voulu traduire par :
    Mais encore une fois j'ai des doutes

    Merci a tous

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    logiquement une question C# est à poser sur un forum C# ‼

    Tu auras plus de chance d'y obtenir rapidement une explication
    au lieu d'attendre ici un éventuel intervenant connaissant le C# …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Je comprends bien Marc-L mais vu qu'il s'agissait d'une conversion en VBA (ou VB.Net je m'en accommoderait) cela me paraissait normal de poser ma question ici

    Du coup je vais poser la même question sur la partie C# du forum

    Bonjour dysorthographie,

    Je n'ai pas bien compris ta réponse...

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Non car Robert - Salut ! - t'as déjà répondu !     J'ai du coup effacé mon précédent message …

    P'tite correction : For i = 2 To 1 Step -1

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     'For(i=2, l = x+1; i != l; i++) 
    for i=2 to l
    next

  6. #6
    Invité
    Invité(e)
    Par défaut
    Traduire une boucle For de C# à VBA
    c'est exactement ce que j'ai fait!

    Code était : Sélectionner tout - Visualiser dans une fenêtre à part
    For(i=2, l = x+1; i != l; i++)
    Code devient : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i=2 to l 
    next
    'ou
    for i=2 to x +1
    next

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    J'y ai cependant apporté une ch'tite correction dans mon précédent message …

  8. #8
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    D'accord du coup le l = x + 1 saute ?
    Mais du coup mon l n'est pas initialisé... Il vaudrait pas mieux mettre dans ce cas la :
    Désolé j'avais pas tout lu c'est exactement ce que tu as mit

    Mais alors ma question est pourquoi 4 arguments dans une boucle for en C# ?

  9. #9
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bon courage Robert !     (deux intervenants c'est trop …)

  10. #10
    Invité
    Invité(e)
    Par défaut
    il faut bien comprendre que vba ne connais la surcharge de opérateur et pour lui l = x+1 retourne true/false! alors que vba attend un bornage!

    donc ne change pas ta façon de raisonner et regarde comment en c# tu modifierais ta boucle du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For(i=2;i!= l; i++){
    }

  11. #11
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Je comprends !

    Merci encore une fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] VBA : Gestion d'erreurs dans une boucle For
    Par Astreziel dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/07/2016, 10h34
  2. [XL-2003] VBA problème avec la une boucle for range.end(xlup).row après suppression de lignes
    Par JohnNC115 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 25/01/2011, 10h21
  3. VBA ACCESS probleme avec une boucle for
    Par maldini dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/04/2010, 09h52
  4. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo