Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Gestin d'une liste de priorités

  • Initiateur de la discussion Initiateur de la discussion cococh8
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cococh8

XLDnaute Junior
Bonjour à tous,

Ca fait bien longtemps que je n'ai pas fait appel à l'aide ExcelDownloads, et ce grâce à vos conseils précédents. Je vous en suis très reconnaissant!!!

Mon problème d'aujourd'hui concerne une liste de gestion des priorités pour une fonction support de ma société et je me retrouve bloqué par un souci de programmation VBA ( pas faute d'avoir essayé!!!)

En fait, il s'agit d'un fichier accesible sur le réseau ou mes collègues peuvent entrer des demandes de chiffrages via un Userform. J'ai déja créé la BD et le Userform, mais je n'arrive pas à faire en sorte que les données saisies dans le Userform viennent créer une nouvelle ligne dans ma BD.

Avez-vous une idée de comment programmer ça?

Je vous joint un fichier exemple!

Merci beaucoup d'avance!!

Benjamin
 

Pièces jointes

Re : Gestin d'une liste de priorités

Bonjour,

Complète ce code attaché à l'image de ton userform1

Private Sub Image1_Click()

' Close the userform and integrate the new Cost estimation request:
derligne = Sheets("Feuil1").Range("D65536").End(xlUp).Row + 1
Range("D" & derligne) = TextBox2
Range("E" & derligne) = TextBox3
Range("F" & derligne) = ComboBox1
Range("G" & derligne) = TextBox5
Range("H" & derligne) = 1
Range("I" & derligne) = TextBox1
Range("J" & derligne) = 1
Range("K" & derligne) = 1

Unload Me

End Sub

a+
 
Re : Gestin d'une liste de priorités

Bonjour Cocoh, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :

Code:
Private Sub UserForm_Initialize()
Dim i As Byte 'déclare la variable i (Incrément)
'alimente la ComboBox1
For i = 1 To 3
    Me.ComboBox1.AddItem "K" & i
Next i
plv = Sheets("Feuil1").Cells(Application.Rows.Count, 4).End(xlUp).Row + 1 'définit la première ligne vide de la colonne 4 (=D)
End Sub
Code:
Private Sub Image1_Click()
Dim ctrl As Control 'déclare la variable crtl (ConTRôLe)

For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    'si le tag du contrôle n'est pas vide, place la valeur du contrôle dans la cellule ligne plv, colonne tag du contrôle
    If ctrl.Tag <> "" Then Sheets("Feuil1").Cells(plv, CInt(ctrl.Tag)).Value = ctrl.Value
Next ctrl 'prochain contrôle de la boucle
Unload Me 'vide et ferme l'UserForm
End Sub
La variable plv est déclarée publique dans le module Module1. Voir la propriété Tag des textboxes, et combobox...
Je n'ai absolument pas compris le code initial où deux procédures sont imbriquées l'une dans l'autre !
Qui gère le #Request ?
Le fichier :
 

Pièces jointes

Dernière édition:
Re : Gestin d'une liste de priorités

Robert,

Merci pour ce fichier, il fonctionne exactement comme j'espérais!!! Je suis en train de décortiquer le code pour pouvoir le refaire moi même. Alors le #Request, je comptais le faire de manière automatique, par incrément de numéro le plus élevé de la colonne.

Autre point, la valeur saisie deans le champs "deadline" de la Userform arrive dans la colonne "Asked On the" au lieu de deadLine, je devrais trouver facilement comment corriger ce pb dans le code. Par contre, Je voulais que la colonne "Asked on the" se remplisse automatisuement avec la date du jour au moment de la saisie. je vais voir comment faire.

Merci encore!!!
 
Re : Gestin d'une liste de priorités

Bonjour le fil, bonjour le forum,

Tu as indiqué l'inverse dans ton fichier exemple...

Modifie la propriété Tag de la TextBox4. Remplace 10 par 11.
le code modifié :

Code:
Private Sub Image1_Click()
Dim ctrl As Control 'déclare la variable crtl (ConTRôLe)

For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    'si le tag du contrôle n'est pas vide, place la valeur du contrôle dans la cellule ligne plv, colonne tag du contrôle
    If ctrl.Tag <> "" Then Sheets("Feuil1").Cells(plv, CInt(ctrl.Tag)).Value = ctrl.Value
Next ctrl 'prochain contrôle de la boucle

With Sheets("Feuil1")
    .Cells(plv, 10).Value = Date 'place la date en colonne J
    .Cells(plv, 3).Value = Application.WorksheetFunction.Max(.Range("A8:A" & plv)) + 1
End With
Unload Me 'vide et ferme l'UserForm
End Sub
 
Dernière édition:
Re : Gestin d'une liste de priorités

Arf je ne trouve pas Feuil1 colonne J dans le code. Sais-tu comment changer la collone J par K pour la prise en compte de la valeur "deadline" ? Quand au #de request, je vais supprimer ce paramètre qui ne sert finalement à rien (quand je supprime la collone, les valeurs arrivent toutes décalée d'une collone. Il doit y avoir un paramètre à décrémenter ou incrémenter. Sais-tu lequel c'est?)

merci d'avance!!!!

EDIT: Désolé Robert, je n'avais pas vu ta réponse précédente!
 
Dernière édition:
Re : Gestin d'une liste de priorités

Bonjour le fil, bonjour le forum,

Le code modifié car il y avait une erreur :
Code:
Private Sub Image1_Click()
Dim ctrl As Control 'déclare la variable crtl (ConTRôLe)

For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    'si le tag du contrôle n'est pas vide, place la valeur du contrôle dans la cellule ligne plv, colonne tag du contrôle
    If ctrl.Tag <> "" Then Sheets("Feuil1").Cells(plv, CInt(ctrl.Tag)).Value = ctrl.Value
Next ctrl 'prochain contrôle de la boucle

With Sheets("Feuil1")
    .Cells(plv, 11).Value = Date 'place la date en colonne K
    .Cells(plv, 3).Value = Application.WorksheetFunction.Max(.Range("B8:B" & plv)) + 1
End With
Unload Me 'vide et ferme l'UserForm
End Sub
Le fichier qui va avec :
 

Pièces jointes

Re : Gestin d'une liste de priorités

Merci beaucoup Robert!!! c'est exactement ce que j'éssayais d'obtenir en vain...

Dernière petite question:

j'essaye de coder la chose suivante (en français...)

J'ai une valeur dans une textbox nomée "TextBox4". Il s'agit d'un mot de passe. Il doit y avoir "Chiffrage"

si la valeur est bien "Chiffrage", alors passer à la suite du programme. Si ce n'est pas le cas, lancer la "Userform4" et fermer la Userform en cours.



Vous savez comment on dit ça en language VBA??

merci d'avance et bon vendredi !

Benjamin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…