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 :

remplir un planning avec un userform


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 remplir un planning avec un userform
    Bonjour,
    Je voudrais que lorsque j'indique un nombre inférieur à 100 dans la textbox du userform " nombre de restes voulus " alors mon planning se remplisse avec la macro "RemplirPlanning3".
    Quand je clique sur le bouton Valide du userform tout se bloque, et je dois quitter excel brutalement au lieu de remplir mon planning.
    J'ai essayé la macro sans bouton elle marche très bien.
    Merci de m'aider.

  2. #2
    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,

    Le probleme ne vient pas de la maniere de lancer le traitement.

    Par la forme ou directement, il cherche, il cherche et il cherche encore
    des cellules repondants a tes criteres.

    Il aurait ete mieux (enfinje pense) de faire un tableau avec les cellules repondants a tes criteres et ensuite d'en choisir quelques un dans celui-ci avec
    elimination des cellules tirees. Ce qui fait pour 5 valeurs 5 passes et pas 100000 pour trouver un element repondant aux criteres et pas deja pris.

    Bon courage

    ++
    Minick

  3. #3
    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
    Salut, je n'ai pas très bien compris le problème.
    Est-ce qu'il faut refaire le code avec tirage sans remise?

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Si tu veux faitre une sélection aléatoire sur tes critères tu devrais plutôt.
    1°) Faire une listes des lignes qui répondent au critère.
    2°) Faire un triage aléatoire dans cette liste, ce serai beaucoup plus simple et vérifiable.
    A+
    Edit: deuxième sur le coup..

  5. #5
    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
    Pouvez-vous me dire ce que je dois modifier dans le code et où?
    Il n'est quand même pas à refaire en entier?

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Je pense qu'il faudra au moins faire des modif
    un exemple parmi d'autre pour sélectionner tes 12 premier noms.
    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
    37
    38
    39
     
    Dim Tableau()
    Dim PtTabl As Integer
    Dim w(12)
     
    Sub Nom_FIP_3B()
    Dim Idx As Byte, V As Integer, x As Integer
    y = Array(24, 41, 59)
    z = Array(9, 25, 42)
        With Sheets("Mois en cours")
        For Idx = 0 To 2
            V = -1: ReDim Tableau(20) 'si suffisant
            For i = z(Idx) To y(Idx)
                If Cells(i, 3) = 1 And Cells(i, 3).Interior.ColorIndex <> 3 Then
                    V = V + 1
                    Tableau(V) = Cells(i, 2)
                    'Debug.Print Tableau(V)
                End If
            Next i
    Reco:
            If V > 3 Then
                V = V - 1
                For i = Int(V * Rnd) To V
                    Tableau(i) = Tableau(i + 1)
                    'Debug.Print Tableau(i)
                Next i
                GoTo Reco
            End If
            For i = 0 To 3
                w(PtTabl) = Tableau(i)
                'Debug.Print w(PtTabl)
                PtTabl = PtTabl + 1
            Next i
        Next Idx
        End With
        For i = 0 To 11 'les 12 noms tirer au hazard.
            Debug.Print w(i)
        Next i
    End Sub
    A+

  7. #7
    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
    Salut LeForestier,
    Je ne peux pas dire à l'avance les cellules dont j'aurais besion donc pas possible de lister à l'avance des lignes pour faire le tirage dedans.

    Pourquoi cela marche-t-il quand je lance le code du programme et ne marche pas dès que j'utilise le userform?

    Je viens d'essayer ton code mais il ne me marque plus les noms des agents dans le planning mais que des chiffres.
    Tu pourrais m'expliquer ce que tu as fait?
    Merci de m'aider quand même!

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Citation Envoyé par mgrizzly Voir le message
    Salut LeForestier,
    Je ne peux pas dire à l'avance les cellules dont j'aurais besion donc pas possible de lister à l'avance des lignes pour faire le tirage dedans.
    Pourtant dans tes sub il n'y à pas de sélections à partir de plage qui change ?
    Citation Envoyé par mgrizzly Voir le message
    Pourquoi cela marche-t-il quand je lance le code du programme et ne marche pas dès que j'utilise le userform?
    Mon avis, excel ne digère pas la quantité astronomique d'erreurs 427 que tu génère avec les collections que tu emploi d'une drôle de façon

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    dans w() (0 à 11) il y a 12 noms tirer au hazard ??
    Cest bien ce que tu met dans le w() de tes sub ?

    EDIT:
    Et ça plante aussi quand je lance à parti du code..

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

Discussions similaires

  1. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  2. Réponses: 3
    Dernier message: 19/01/2005, 15h50
  3. Réponses: 2
    Dernier message: 26/07/2004, 13h34
  4. remplir une table avec UTL_FILE.GET_LINE
    Par delphim dans le forum SQL
    Réponses: 9
    Dernier message: 12/03/2004, 10h15
  5. [TChart] comment remplir un histogramme avec du rouge strié.
    Par :GREG: dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 09h37

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