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 a partir d'une liste complexe


Sujet :

Macros et VBA Excel

Mode arborescent

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 69
    Par défaut
    Bonjour à tous,
    Vous allez voir que je ne reviens pas pour rien.
    J’ai un fichier Excel composé de 40000 lignes.qui provient d’un batch d’un système externe et qui est mis à jour tous les 15 jours.
    On y trouve le code gestionnaire (plusieurs)
    Les codes stages (plusieurs)- Libelles stages
    Une Date début
    Une Date fin.
    Pour un meilleur suivi, il faudrait que je remplisse un planning (en ligne les jours de l’année , en colonne les gestionnaires)
    En fonction ds stages qui ont lieu chaque jour.
    No problemo, je l’ai fait.
    Mais il arrive que pour un jour plusieurs stages soient présents. Re no problemo, j’ai agrandi mes lignes d’autant que nécessaire.
    Mais je me rends compte qu’en fait dans un même cellule il existe plusieurs fois le même stage (il y a autant de stages que de stagiaires en fait, donc si un jour il y a dix stagiaires, je me retrouve avec une ligne composé de dix fois le même stage)
    Donc ce que j’aimerais faire c’est mettre un compteur .
    Dans ma cellule j’aurais : code stage-libellé stage, et compteur (qui indiquerait le nombre de fois que ce stage apparait pour ce jour).
    Mais là je ne vois pas comment faire.
    Puisque finalement tous mes stages ne sont que dans une seule cellule par jour .
    Si je crée des cellules ca me déséquilibre le tableau.
    Enfin bref, je cale.
    La panne, j’imagine qu’il faut que j’utilise des variables tableau, mais je ne sais pas faire.
    Ci-joint mon code actuel. Je suis peut être mal parti.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    Sub Planning()
        Dim Lig As Long
        Dim Col As Long
        Dim Lig2 As Long
        Dim Col2 As Long
        Dim Stag As String
        Dim V As String
        Dim Ref As Date
        Dim Ref2 As Date
        Dim Ref3 As Date
        Dim C As Long
        Dim I As Long
        Dim Cod As String
        Dim Lig3 As Long
     
     
        Lig = 733
        Lig2 = 2
        Col2 = 32
     
       Application.ScreenUpdating = False
     
            Range("G733", "M1050").ClearContents
            Rows("733:1664").EntireRow.AutoFit
     
            Sheets("Base").Activate
            While Cells(Lig2, 1) <> ""
                If Trim(Cells(Lig2, 17)) <> "" Then GoTo Boucle
     
                If Trim(Cells(Lig2, Col2)) = "FAULSO" Then
                    GoTo Boucle
                End If
     
                If Trim(Cells(Lig2, Col2)) = "FURSTDA" Then
                    GoTo Boucle
                End If
     
                If Trim(Cells(Lig2, Col2)) = "HANTZOVI" Then
                    GoTo Boucle
                End If
     
                If Trim(Cells(Lig2, Col2)) = "HONOLDLA" Then
                    GoTo Boucle
                End If
     
                If Trim(Cells(Lig2, Col2)) = "JACQUEMR" Then
                    GoTo Boucle
                End If
     
                If Trim(Cells(Lig2, Col2)) = "MASTIOSO" Then
                    GoTo Boucle
                End If
     
                If Trim(Cells(Lig2, Col2)) = "VENANTIS" Then
                    GoTo Boucle
     
                End If
     
                If Trim(Cells(Lig2, Col2)) = "BURSTMA" Then
                    Col = 7
     
                End If
     
                If Trim(Cells(Lig2, Col2)) = "ENGELMD" Then
                    Col = 8
     
                End If
     
                If Trim(Cells(Lig2, Col2)) = "LIDOLFFA" Then
                    Col = 9
     
                End If
     
     
                If Trim(Cells(Lig2, Col2)) = "TEIXEIPA" Then
                    Col = 10
     
                End If
     
                 If Trim(Cells(Lig2, Col2)) = "VETTERDA" Then
                    Col = 11
     
                End If
     
     
                Stag = Cells(Lig2, 6)
                Cod = Cells(Lig2, 5)
                Ref = Cells(Lig2, 21)
                Ref2 = Cells(Lig2, 22)
                Sheets("Animation").Activate
                Lig3 = 733
                Ref3 = Ref
                While Cells(Lig3, 3) <= Ref2
                    If Cells(Lig3, 3) = Ref Then
                        Do
                            Cells(Lig3, Col) = Cells(Lig3, Col) & Chr(10) & Cod & "-" & Stag
                            Ref3 = Date + 1
                            Lig3 = Lig3 + 1
     
                        Loop Until Cells(Lig3, 3) > Ref2
     
                    End If
     
     
                    Lig3 = Lig3 + 1
     
                Wend
    Boucle:
                Sheets("Base").Activate
                Lig2 = Lig2 + 1
            Wend
     
            Sheets("Animation").Activate
            Application.ScreenUpdating = True
    End Sub
    Le goto boucles correspondent aux gestionnaires que je n'incluent pas dans le planning.
    J'ai deux onglets.
    Un base avec mon fichier de données.
    Un Animation : ou figure mon planning.

    Voilou, j'espère avoir été assez clair. Mais je peux préciser si nécessaire. Et merci à vous.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2003] Créer un planning Gantt à partir d'une liste de taches
    Par babouu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/07/2012, 08h32
  2. remplir des champs a partir d'une liste
    Par piotrowski-s dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/07/2012, 15h14
  3. Réponses: 3
    Dernier message: 14/07/2009, 15h10
  4. Réponses: 3
    Dernier message: 03/05/2009, 09h56
  5. Réponses: 19
    Dernier message: 27/11/2007, 23h54

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