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 :

corriger un code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Par défaut corriger un code
    Bonjour forum,
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub Nom_FIP_1(w() As String)
     
    Dim v As Byte, c As New Collection, x As Integer, y() As Variant, z() As Variant, i As Byte
    Dim agentdisponible() As Boolean ''''''''''''''''''''''''''''
    ReDim agentdisponible(nbragent) ''''''''''''''''''''''''''''''
     
    Randomize
    y = Array(16, 17, 18) 'prendre des agents des lignes 9 à 25, 26 à 34 et 35 à 59
    z = Array(9, 25, 42)
    For i = 1 To nbragent '''''''''''''''''''''''''''''
    agentdisponible(i) = False ''''''''''''''''''''''''''
    For i = 0 To 2
        Do While c.Count < 4 ' en prendre 4 dans chaque lignes sélectionnée précédemment
            cpt% = cpt% + 1
            If cpt% > MAX_ITER Then
              cpt% = 0
              Exit Do
            End If
            x = Int(y(i) * Rnd + z(i))
            If Cells(x, 3) = 1 And Cells(x, 3).Interior.ColorIndex <> 3 Then' les prendre si les cellules contiennent des 1 et ne sont pas rouges
                On Error Resume Next
                c.Add Cells(x, 3).Address, CStr(Cells(x, 3).Address)
                If Err = 0 Then
                    On Error GoTo 0
                    w(v) = Cells(x, 2).Value ' prendre les cellules de la colonne B
                    agentdisponible(x) = True ''''''''''''''''''''''''
                    v = v + 1
                End If
                On Error GoTo 0
            End If
        Loop
        Set c = Nothing
    Next i
    Next i ''''''''''''''''''''''''''''''''''
     
    End Sub
    Les passages que j'ai rajouté et qui ne marchent pas sont mis comme ceci:'''''''''''''
    Voilà ce que j'aimerais faire: quand les cellules répondent aux critères( pas rouges et contenant des 1) et sont sélectionnés par le tirage alors les mettre en TRUE.
    et dire au programme de prendre au début de chaque tirage que les cellules étant FALSE.
    Mais ce que j'ai mis dans le code ne marche pas et je n'arrive pas à tout compléter.
    Merci de m'aider.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Après un première lecture rapide, je ne vois nulle part ou tu renseigne nbragent

  3. #3
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Et 2 boucles For imbriquees avec le meme iterateur 'i' ca risque de coincer effectivement...

    ++
    Minick

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Par défaut
    Je pense que nbr agent= mais je ne vois absolument pas comment mettre tous ça en forme.
    Merci de m'aider.

    Minick, il faut alors que je remplace un i?

  5. #5
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Oui, par j par exemple

    et non nbragent n'est pas egal a c.count
    nbragent=0 parce qu'il n'est pas initialise.
    donc lors de l'execution de -> For i=1 to nbragent
    tu sors directement.

    J'ai beaucoup de mal a comprendre comment est organise ton fichier...
    Si tu avais un petit exemple a donner...

    ++
    Minick

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Par défaut
    Merci de ton intérêt Minick,
    Voici le fichier, c'est pour un planning.
    Tu clique sur le bouton nbr de restes voulus et tu mets un chiffre<100
    =>remplissage du planning par des agents.
    Le problème est que vu que les agents ont parfois la même compétence,
    il les met le même jour à faire des plusieurs activités, or un agent ne peut faire qu'une activité par jour, c'est pour celà que je veux mettre des booléens aux agents et dire ne plus prendre ceux qui sont déjà mis dans une activité.

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

Discussions similaires

  1. Veuillez m'aider à corriger ce code SVP.
    Par abouilyas dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/08/2010, 16h07
  2. Veuillez corriger ce code SVP.
    Par abouilyas dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2010, 02h31
  3. Visual Studio 2008 Corriger son code en mode debug
    Par shaun_the_sheep dans le forum Visual Studio
    Réponses: 2
    Dernier message: 26/01/2010, 11h53
  4. Comment corriger ce code?
    Par wisdom dans le forum MATLAB
    Réponses: 7
    Dernier message: 29/04/2008, 12h28
  5. corrige mon code svp
    Par NAIMA2 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/02/2007, 09h51

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