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 :

Excel vba formulaire


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Par défaut Excel vba formulaire
    Bonjour,

    je suis en train de configurer un formulaire en VBA Excel pour générer un horaire de mécanos.


    Tableau Excel : (voir fichier attaché SVP pour comprendre la configuration)

    ressources en X
    journée en Y



    Paramètres :
    • Nom de la ressource
    • Journée
    • nombre d'heure
    • description du travail




    J'aimerai simplifier mon code avec une boucle pour ne pas avoir à coder chaque possibilité de ressource pour chaque journée , pour chaque heures de travail (1 à 8)

    Pouvez vous m'aider SVP

    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
    Private Sub UserForm_Initialize() 
     
     
    With ComboBox1 
    .AddItem "CONRAD" 
    .AddItem "MATHIEU" 
    .AddItem "MARTIN" 
    .AddItem "MICHAEL" 
    .AddItem "RICHARD" 
    .AddItem "WILLIAM" 
    .AddItem "WILLIAM" 
     
     
    End With 
     
    With ComboBox2 
    .AddItem "1" 
    .AddItem "2" 
    .AddItem "3" 
    .AddItem "4" 
    .AddItem "5" 
    .AddItem "6" 
    .AddItem "7" 
    .AddItem "8" 
    .AddItem "8" 
    End With 
     
     
    With ComboBox3 
    .AddItem "Lundi" 
    .AddItem "Mardi" 
    .AddItem "Mercredi" 
    .AddItem "Jeudi" 
    .AddItem "Vendredi" 
    .AddItem "Samedi" 
    .AddItem "Dimanche" 
    End With 
     
     
    With ComboBox4 
    .AddItem "Client" 
    .AddItem "Location" 
    .AddItem "Vente" 
    .AddItem "Service" 
    .AddItem "Abscent" 
     
    End With 
     
     
    End Sub 
     
     
    Sub CommandButton1_Click() 
     
     
    'CONRAD : LUNDI 8 heures 
     
    If Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = 8 Then 
    Range("B4:B11").UnMerge 
    Range("B4:B11").Merge 
    Range("B4:B11").Value = ComboBox4.Value 
    'Range("B4:B11").Borders.LineStyle = xlContinuous 
    Range("C4:C11").UnMerge 
    Range("C4:C11").Merge 
    Range("C4:C11").Value = ComboBox2.Value 
    'Range("B4:B11").Borders.LineStyle = xlContinuous 
    Range("D4:D11").UnMerge 
    Range("D4:D11").Merge 
    Range("D4:D11").Value = TextBox1.Value 
    'Range("B4:B11").Borders.LineStyle = xlContinuous 
     
     
    'Color codes by catégorie of activity 
     
    If ComboBox4.Value = "Client" Then 
     
    Range("B4:B11").Interior.Color = RGB(153, 204, 255) 
     
    ElseIf ComboBox4.Value = "Location" Then 
     
    Range("B4:B11").Interior.Color = RGB(255, 255, 0) 
     
    ElseIf ComboBox4.Value = "Vente" Then 
     
    Range("B4:B11").Interior.Color = RGB(153, 204, 0) 
     
    ElseIf ComboBox4.Value = "Service" Then 
     
    Range("B4:B11").Interior.Color = RGB(255, 204, 0) 
     
    ElseIf ComboBox4.Value = "Abscent" Then 
     
    Range("B4:B11").Interior.Color = RGB(192, 192, 192) 
     
    End If
    'CONRAD : LUNDI 7 heures

    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
    ElseIf Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = "7" Then 
    Range("B4:B10").UnMerge 
    Range("B4:B10").Merge 
    Range("B4:B10").Value = ComboBox4.Value 
    Range("B4:B10").Borders.LineStyle = xlContinuous 
    Range("C4:C10").UnMerge 
    Range("C4:C10").Merge 
    Range("C4:C10").Value = ComboBox2.Value 
    Range("C4:C10").Borders.LineStyle = xlContinuous 
    Range("D4:D10").UnMerge 
    Range("D4:D10").Merge 
    Range("D4:D10").Value = TextBox1.Value 
    Range("D4:D10").Borders.LineStyle = xlContinuous 
     
     
    'Color codes by catégorie of activity 
     
    If ComboBox4.Value = "Client" Then 
     
    Range("B4:B10").Interior.Color = RGB(153, 204, 255) 
     
    ElseIf ComboBox4.Value = "Location" Then 
     
    Range("B4:B10").Interior.Color = RGB(255, 255, 0) 
     
    ElseIf ComboBox4.Value = "Vente" Then 
     
    Range("B4:B10").Interior.Color = RGB(153, 204, 0) 
     
    ElseIf ComboBox4.Value = "Service" Then 
     
    Range("B4:B10").Interior.Color = RGB(255, 204, 0) 
     
    ElseIf ComboBox4.Value = "Abscent" Then 
     
    Range("B4:B10").Interior.Color = RGB(192, 192, 192) 
     
    End If 
     
    'CONRAD : LUNDI 6 heures 
     
    ElseIf Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = "6" Then 
    Range("B4:B9").UnMerge 
    Range("B4:B9").Merge 
    Range("B4:B9").Value = ComboBox4.Value 
    Range("B4:B9").Borders.LineStyle = xlContinuous 
    Range("C4:C9").UnMerge 
    Range("C4:C9").Merge 
    Range("C4:C9").Value = ComboBox2.Value 
    Range("C4:C9").Borders.LineStyle = xlContinuous 
    Range("D4:D9").UnMerge 
    Range("D4:D9").Merge 
    Range("D4:D9").Value = TextBox1.Value 
    Range("D4:D9").Borders.LineStyle = xlContinuous 
     
     
    'Color codes by catégorie of activity 
     
    If ComboBox4.Value = "Client" Then 
     
    Range("B4:B9").Interior.Color = RGB(153, 204, 255) 
     
    ElseIf ComboBox4.Value = "Location" Then 
     
    Range("B4:B9").Interior.Color = RGB(255, 255, 0) 
     
    ElseIf ComboBox4.Value = "Vente" Then 
     
    Range("B4:B9").Interior.Color = RGB(153, 204, 0) 
     
    ElseIf ComboBox4.Value = "Service" Then 
     
    Range("B4:B9").Interior.Color = RGB(255, 204, 0) 
     
    ElseIf ComboBox4.Value = "Abscent" Then 
     
    Range("B4:B9").Interior.Color = RGB(192, 192, 192) 
     
    End If 
     
     
    ElseIf Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = "5" Then 
    Range("B4:B8").UnMerge 
    Range("B4:B8").Merge 
    Range("B4:B8").Value = ComboBox4.Value 
     
    ElseIf Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = "4" Then 
    Range("B4:B7").UnMerge 
    Range("B4:B7").Merge 
    Range("B4:B7").Value = ComboBox4.Value 
     
    ElseIf Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = "3" Then 
    Range("B4:B6").UnMerge 
    Range("B4:B6").Merge 
    Range("B4:B6").Value = ComboBox4.Value 
     
    ElseIf Me.ComboBox1.Value = "CONRAD" And Me.ComboBox3.Value = "Lundi" And Me.ComboBox2.Value = "2" Then 
    Range("B4:B5").UnMerge 
    Range("B4:B5").Merge 
    Range("B4:B5").Value = ComboBox4.Value 
     
    End If 
     
    End Sub 
     
    Private Sub CommandButton2_Click() 
    Unload Me 
    End Sub
    Bon désolé je me suis peut-être mal expliqué,

    Mais bon tu peux voir mon code en pièce jointe, sinon ma problématique est que pour chaque ressources (mécanos) que je possède et pour chaque journée de la semaine, il faudrait que je copie le code actuel et que je modifie mes coordonnées de Range définis dans mon code, Ce que je trouve un peu nul, car je suis persuadé qu'il y a une forme de boucle que je pourrai faire pour couvrir le tout.

    Car le principe est simple , je sélectionne le mécano, ensuite la journée, ensuite le nombre d'heures à bosser, la catégorie et le détail du travail.
    Par la suite je viens fusionner et colorier le nombre de cellule en fonction du nombre d'heures (chaque cellule vaut une heure dans tableau) et je viens finalement transposer l'information de la catégorie et du détail du travail.

    J'espère que c'est plus clair.

    Merci d'avance les amis
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2013] Projet excel VBA Formulaire combobox
    Par clemence987 dans le forum Excel
    Réponses: 3
    Dernier message: 25/03/2015, 15h58
  2. Réponses: 12
    Dernier message: 26/01/2011, 12h26
  3. [XL-2007] VBA Formulaire Excel majuscules dans txtBox
    Par Cassivellaunos dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/09/2010, 18h13
  4. [XL-2007] Formulaire sous excel/VBA
    Par columbus033 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/04/2009, 11h14
  5. [VBA-E] besoin d'aide excel et formulaire
    Par lolo_the_fripouille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2006, 07h11

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