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 et gestion de production


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut Excel et gestion de production
    Bonjour à tous,

    Je suis en stage dans une entreprise et je dois développer un petit système de macro sur excel pour
    aider la mise à jour du stock par la personne concerné. Ayant très peu fais de vba pendant mon cursus,
    j'ai quelques notions mais cela reste succinct! Je compte un peu sur vous pour me donner des pistes et surtout mieux comprendre le vba à la fin de la réalisation de ce projet.
    Pour réaliser ce travail, j'ai créé un petit userform pour modifier, supprimer ou ajouter une ligne. J'ai commencé par la fonction ajouter et je m’empêtre un peu parmi toutes ces lignes de code...
    J'ai trouvé comment sélectionner la première cellule active vide (la dernière ligne du tableau), j'arrive à transporter mes valeurs dans les lignes adéquates
    mais je n'arrive pas à incorporer un optionbutton pour pouvoir écrire dans un onglet différent. Si OptionButton2 est coché, les valeurs sont inscrites dans la dernière ligne de la feuille 2....
    Je vous met une partie de mon code çi-dessous et mon fichier en pièce jointe!
    Merci d'avance pour toutes participations.
    A+ Alex


    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
     
    Private Sub CommandButton1_Click()
    Range("A" & Rows.Count).End(xlUp).Offset(1).Select
     
    With ActiveCell
      .Value = ComboBox1.Value
      .Offset(0, 1).Value = ComboBox2.Value
      .Offset(0, 2).Value = ComboBox3.Value
      .Offset(0, 3).Value = ComboBox4.Value
      .Offset(0, 4).Value = ComboBox5.Value
      .Offset(0, 6).Value = ComboBox6.Value
    End With
     
    End Sub
    Private Sub OptionButton1_Click()
     
    If OptionButton1.Value = True Then
    Sheets("ALU").Visible = True
    End If
     
     
    End Sub
    Private Sub OptionButton2_Click()
     
    If OptionButton2.Value = True Then
    Sheets("ACIER").Visible = True
    End If
     
    End Sub
    Private Sub OptionButton3_Click()
     
    OptionButton3.Value = True
    Sheets("INOX").Visible = True
     
    End Sub
     
    Private Sub OptionButton4_Click()
     
    OptionButton4.Value = True
    Sheets("DIVERS").Visible = True
     
    End Sub
    A+ Alex
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,test ça
    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
    Private Sub CommandButton1_Click()
    'UserForm2 bouton Valider
    Dim Feuille As String
    If OptionButton1.Value + OptionButton2.Value + OptionButton3.Value + OptionButton4.Value = False Then MsgBox "Vous devez sélectionné la matière", vbExclamation: Exit Sub
    If OptionButton1.Value = True Then Feuille = "ALU"
    If OptionButton2.Value = True Then Feuille = "ACIER"
    If OptionButton3.Value = True Then Feuille = "INOX"
    If OptionButton4.Value = True Then Feuille = "DIVERS"
    With Sheets(Feuille).Range("A" & Rows.Count).End(xlUp).Offset(1)
      .Value = ComboBox1.Value
      .Offset(0, 1).Value = ComboBox2.Value
      .Offset(0, 2).Value = ComboBox3.Value
      .Offset(0, 3).Value = ComboBox4.Value
      .Offset(0, 4).Value = ComboBox5.Value
      .Offset(0, 6).Value = ComboBox6.Value
    End With
    End Sub

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu souhaites que la fonction de ton commandbutton1 s'applique à la feuille qui est renseignée par le combobox1?

    Dans ce cas, il faudrait que tu fasses quelque chose du type :


    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
     
    Private Sub CommandButton1_Click()
    'If OptionButton1.Value = True Then
    'Sheets("ALU").Visible = True 'Affiche la feuille souhaite
    'Sheets("ACIER").Visible = True
    'ElseIf OptionButton3.Value = True Then
    'Sheets("INOX").Visible = True
    'Else: OptionButton4.Value = True
    'Sheets("Divers").Visible = True
    'End If
    Dim Wks As Worksheet
    Dim Cur_cel As Range
    Set Wks = ActiveWorkbook.Sheets(Me.ComboBox1.Value)
     
     Set Cur_cel = Wks.Range("A" & Rows.Count).End(xlUp).Offset(1)
     
    With Cur_cel
      .Value = ComboBox1.Value
      .Offset(0, 1).Value = ComboBox2.Value
      .Offset(0, 2).Value = ComboBox3.Value
      .Offset(0, 3).Value = ComboBox4.Value
      .Offset(0, 4).Value = ComboBox5.Value
      .Offset(0, 6).Value = ComboBox6.Value
    End With
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut re
    Merci rdurupt c'est fonctionnel et ça marche bien.
    Merci à toi aussi Mr poulpe!
    Quelqu'un peut m'expliquer précisemment ce qui change entre les deux car je ne discerne pas la nuance.
    Je vois que rdurupt se base sur les optionbutton et ça ressort clairement mais un peu perdu!

    J'ai un peu continué et je suis passé à la suiteet à l'option qui permet de sélectionner une plage et la supprimer?
    Existe t-il une autre manière de laisser l'utilisateur sélectionner une plage que refedit?
    Dois-je obligatoirement sélectionner toute la ligne (les 3-4 colonnes) ou le simple fait que
    la cellule active soit positionné sur la bonne ligne permet de supprimer la ligne entière?

    Mon bout de code est fonctionnel mais j'ai un problème de gestion des fenêtre. en effet quand je fais appel à l'userform3,
    je voudrais que l'userform1 disparaisse mais malgré les unload et .hide, un problème de feuille modale apparait et me bug le reste.
    Des idées?
    A+ Alex
    Fichiers attachés Fichiers attachés

  5. #5
    Invité
    Invité(e)
    Par défaut
    Pour la suite de ton code je dois avoir un exemple je le cherche!
    la différence moi et Mr Poulpe ce que je me base sur les option et lui sur ComboBox1 pour définir la feuille de calcul cible!

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut
    Merci de ta réponse si rapide,
    Alors sois tu peux récupérer le fichier en pièce jointe et regarder dedans sinon regarde le code ci-dessous:

    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
     
    Private Sub CmdbACCUEIL_Click()
    Unload UserForm3
    Load UserForm1
    UserForm1.Show
     
    End Sub
     
    Private Sub RefEdit1_BeforeDragOver(Cancel As Boolean, ByVal Data As MSForms.DataObject, ByVal x As stdole.OLE_XPOS_CONTAINER, ByVal y As stdole.OLE_YPOS_CONTAINER, ByVal DragState As MSForms.fmDragState, Effect As MSForms.fmDropEffect, ByVal Shift As Integer)
     
    End Sub
     
     
    Private Sub Cmdelete_Click()
     
     
     
     Dim plage As String
     
    Unload UserForm1  'problème de feuille modale
     
            plage = UserForm3.RefEdit1.Value
            If plage = "" Then
               MsgBox "vous n'avez rien sélectionné, recommencez !"
                Exit Sub
            End If
    'suppression de la plage sélectionnée
    Range(plage).ClearContents
     
        End Sub
    D'accord je comprends mieux!

  7. #7
    Invité
    Invité(e)
    Par défaut
    regarde le fichier en pièce jointe
    Fichiers attachés Fichiers attachés

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut
    C'est parfait ça!
    Au moins l'utilisateur voit ce qu'il fait.
    Merci beaucoup ça correspond à mes attentes.

    Je vais essayer d'adapter ça à ma dernière macro ( modifier une entrée) ce qui permettrai de modifier directement la valeur
    a partir d'une textbox. Je vois que la ça marche à partir d'un label où le label affiche les valeurs. Est -il possible de faire la même chose
    mais à partir de textbox qui permettrai d'afficher la valeur et de la modifier dans le même temps.?
    Je vais essayer de bidouiller un truc de mon côté.
    Ci-joint le programme ayant un peu avancé, quelques modifications sur le fond et la forme pour ceux qui pourrait en avoir besoin.
    Fichiers attachés Fichiers attachés

  9. #9
    Invité
    Invité(e)
    Par défaut Bonjour,
    Citation Envoyé par texou44 Voir le message
    C'est parfait ça!
    Au moins l'utilisateur voit ce qu'il fait.
    Merci beaucoup ça correspond à mes attentes.

    Je vais essayer d'adapter ça à ma dernière macro ( modifier une entrée) ce qui permettrai de modifier directement la valeur
    a partir d'une textbox. Je vois que la ça marche à partir d'un label où le label affiche les valeurs. Est -il possible de faire la même chose
    mais à partir de textbox qui permettrai d'afficher la valeur et de la modifier dans le même temps.?
    Je vais essayer de bidouiller un truc de mon côté.
    Ci-joint le programme ayant un peu avancé, quelques modifications sur le fond et la forme pour ceux qui pourrait en avoir besoin.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 14
    Par défaut re
    Merci beaucoup rdurupt!
    Désolé du temps que cela a prit avant ma réponse !
    j'ai été affecté à une autre tache ces derniers jours.
    Merci encore.
    Je reste dans le coin pour récupérer deux trois
    connaissances.
    A bientot,
    Alex

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

Discussions similaires

  1. Faire de la gestion de production avec EXCEL
    Par jdamien dans le forum Excel
    Réponses: 3
    Dernier message: 23/06/2013, 15h42
  2. Colonie de fourmis pour la gestion de production
    Par Iori Yagami dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 16/08/2010, 01h39
  3. excel et gestion des congés payés
    Par kinna dans le forum Excel
    Réponses: 10
    Dernier message: 30/10/2008, 20h57
  4. Excel POI :gestion parametre d'impression
    Par noOneIsInnocent dans le forum Documents
    Réponses: 3
    Dernier message: 05/01/2006, 14h10

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