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

VB.NET Discussion :

[Excel]Résultat non compris, soucis de code


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut [Excel]Résultat non compris, soucis de code
    Bonjour, je fais dans mon programme un traitement de donnée via vb.net, dans ce cadre, j'ai une boucle qui permet, à l’intérieur d'un traitement plus complexe, de faire plusieurs feuilles avec dans chaque feuille un nombre variable de traitement.
    voilà la partie du code concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For k = 0 To (nbessais / nbparessai) - 1
                   For l = 0 To nbparessai - 1
                   If k > 0 Then
                         wb.Worksheets(j + 1).Copy(After:=wb.Worksheets(wb.Worksheets.Count))
                   End If
    'traitement à effectuer (ne pose pas problème)
          Next
    Next
    Le soucis est là :
    Pour nbessais = 2 et nbparessai = 2, j'obtient une feuille avec deux essais traité, mais pour nbessai=2 et nbparessai=1 (comprendre "j'ai deux essais mais je veux les traiter sans relations et sur des feuilles différentes") il y a un bug, le traitement n'est plus tout a fait juste et surtout j'ai quand même le traitement de deux essais sur une même feuille.

    Je suis un peu perdu :/
    Si quelqu'un pouvais m'éclairer, je pressent que c'est une erreur toute bête, une variable malplacé ou un truc de ce genre, mais je n'arrive pas à cibler l'erreur.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonjour,

    pour nbessai=2 et nbparessai=1
    Votre code donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For k = 0 To (nbessais / nbparessai) - 1 '=(2/1)-1=1
                   For l = 0 To nbparessai - 1 '=1-1=0
                   If k > 0 Then 'k ne peut donc prendre que 2 valeurs soit 0 soit 1
    'Comme vous lui demandez d'être strictement > 0, il n'y aura qu'une nouvelle feuille.
                         wb.Worksheets(j + 1).Copy(After:=wb.Worksheets(wb.Worksheets.Count))
                   End If
    'traitement à effectuer (ne pose pas problème)
          Next
    Next

  3. #3
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    bonjour, le soucis ne vient pas de la copie de la feuille qui s'effectue normalement, en effet quand il n'y a qu'un traitement sur une seule feuille (nbessai/nbparessai = 1), je n'ai aucun besoin de rajouter une feuille au traitement, celle déjà existent suffit, le soucis est que quand nbessai=2 et nbparessai=1, le la boucle "for l = 0 to nbparessai" semble au final s’exécuter deux fois alors que comme tu l'as remarqué, la valeur max de l est donc 0 (un seul tour de boucle normalement)

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonjour,

    (comprendre "j'ai deux essais mais je veux les traiter sans relations et sur des feuilles différentes") il y a un bug, le traitement n'est plus tout a fait juste et surtout j'ai quand même le traitement de deux essais sur une même feuille.
    Pour moi, cela veut dire que pour chaque essai tu veux créer une feuille.

  5. #5
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    mmh ... dans ce cas oui il faut créer une deuxième feuille pour le traitement du second essai, mais c'est le cas vu que dans le deuxième tour de boucle, k=1 et donc k>0, le premier tour ne nécessite pas la création d'une feuille, il y en a déjà une par défaut, il est possible que cette condition soit la cause qui fait que ça traite trop d'essai pas feuille ?

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Pour vous répondre, il faudrait voir le code du traitement des essais.

Discussions similaires

  1. [XL-2003] Code sur excel 2003 non compatible sur excel 2007!
    Par Patscaph dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/07/2014, 15h17
  2. un bout de code non compris sous ISTOOL
    Par ririrourou dans le forum Outils
    Réponses: 5
    Dernier message: 07/04/2009, 13h31
  3. bou de code non compris
    Par soft_angel dans le forum VB.NET
    Réponses: 9
    Dernier message: 14/08/2008, 13h39
  4. code non compris
    Par astrotouf dans le forum Langage
    Réponses: 9
    Dernier message: 07/01/2008, 21h14

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