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 :

VBA qui me permet d'avoir la disponibilité des ressources [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Par défaut VBA qui me permet d'avoir la disponibilité des ressources
    Bonjour,
    je suis nouveau sur ce forum et j'ai besoin de l'aide des experts VBA que vous êtes. Voilà je travaille sur un outil de gestion de staffing
    le principe est simple c'est que j'ai:
    une première feuille avec:
    - Nom des personnes (1ère colonne)
    - Nom du projet (2ème colonne)
    - Date début du projet (3è colonne)
    - Date fin du projet (4è colonne)
    une deuxième feuille qui va être la feuille "Restitution" avec :
    - Nom des personnes (1ère colonne)
    - Projet (2è colonne)
    - les 365 jours de l'année (1 jour par colonne)

    Ma demande est : Est-ce que c'est possible sur VBA de faire une macro qui te met sur la feuille "Restitution" devant chaque nom les projets associés (une personne peut avoir jusqu'à 20 projets) et griser sur le calendrier où il sera sur le projet. Idéalement c'est que la macro, si la personne par exemple a 2 projets, crée 2 lignes avec le même nom de la personne à chaque fois et grise pour chaque projet la période correspondante.

    Je vous joint le fichier excel.

    Merci d'avance pour votre aide.
    Majdinho
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant Lean Manufacturing
    Inscrit en
    Juillet 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant Lean Manufacturing

    Informations forums :
    Inscription : Juillet 2013
    Messages : 20
    Par défaut Fichier sensiblement similaire
    Bonjour.

    J'ai un fichier sensiblement similaire à votre demande qui peut vous servir de base de départ. il restera à trouver une âme charitable pour optimiser le code et le personnaliser à votre goût.

    Précautions d'usages :
    1) Renseigner obligatoire la cellule B1
    2) Faire attention à la cellule B4 (en cas de modification) qui contient "=B1"

    Cordialement,

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut Lien
    Bonjour
    Ci-joint code qui permet de:

    Parcourir les données de la feuille Staffing ligne par ligne
    Trouver les colonnes correspondant aux dates de début et de fin
    Transférer les noms des personnes et des projets
    Colorier la plage correspondante
    Trier la feuille pour regrouper les personnes

    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
    Sub Dispatching()
    Dim LastLig As Long, i As Long, j As Long
    Dim N As Integer, DD As Integer, DF As Integer
    Dim Tb
     
    With ThisWorkbook.Worksheets("Staffing request Mgt")
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        Tb = .Range("A5:D" & LastLig)
    End With
     
    With Feuil1
        .UsedRange.Offset(1).Clear
        If LastLig > 4 Then
            j = 4
            For i = 1 To LastLig - 4
                DD = Col(CDate(Tb(i, 3)))
                DF = Col(CDate(Tb(i, 4)), True)
                .Range("A" & j) = Tb(i, 1)
                .Range("B" & j) = Tb(i, 2)
                .Range(.Cells(j, DD), .Cells(j, DF)).Interior.ColorIndex = 48
                j = j + 1
            Next i
            If j > 4 Then
                N = .Cells(3, .Columns.Count).End(xlToLeft).Column
                Tri .Range(.Cells(4, 1), .Cells(j - 1, N))
            End If
        End If
    End With
    End Sub
     
    'Permet de connaître la colonne correspondant à la date
    'PS: Aucun creux ne doit être présent entre les dates de la ligne 3
    Private Function Col(ByVal D As Date, Optional Fin As Boolean) As Integer
    Dim LastCol As Integer, Diff As Integer
    Dim Dm As Date
     
    With Feuil1
        LastCol = .Cells(3, .Columns.Count).End(xlToLeft).Column
        If LastCol > 2 Then
            Dm = CDate(.Range("C3").Value)
            Diff = DateDiff("d", Dm, D)
            Col = 3 + IIf(Diff > 0, Diff, 0)
            If Fin Then Col = Application.Min(LastCol, 3 + IIf(Diff > 0, Diff, 0))
        End If
    End With
    End Function
     
    'Permet le tri de la feuille Rest
    Private Sub Tri(ByVal Rng As Range)
    Dim Ws As Worksheet
     
    Set Ws = Rng.Worksheet
    With Ws
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Rng(1, 1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With .Sort
            .SetRange Rng
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End With
    Set Ws = Nothing
    End Sub
    PS: Par contre, tu peux trouver facilement des fichiers (sans vba) notamment un fichier intéressant de Pierre Fauconnier qui font ce que tu souhaite
    http://blog.developpez.com/fauconnie...excel_bien_sur

  4. #4
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Par défaut
    Merci beaucoup à vous 2

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/08/2014, 20h08
  2. fonction qui me permet d'avoir un tableau d'indices
    Par fraisa1985 dans le forum MATLAB
    Réponses: 2
    Dernier message: 23/12/2009, 13h07
  3. Réponses: 5
    Dernier message: 06/08/2009, 12h10
  4. programme en vba qui permet le transfert des données word vers excel
    Par progaide dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/06/2009, 17h28
  5. Réponses: 7
    Dernier message: 06/12/2005, 19h32

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