Gestin d'une liste de priorités

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

  • Test.xlsm
    64.4 KB · Affichages: 65
  • Test.xlsm
    64.4 KB · Affichages: 76
  • Test.xlsm
    64.4 KB · Affichages: 75

CHALET53

XLDnaute Barbatruc
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+
 

Robert

XLDnaute Barbatruc
Repose en paix
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

  • Cococh_v01.xlsm
    30 KB · Affichages: 60
Dernière édition:

cococh8

XLDnaute Junior
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!!!
 

Robert

XLDnaute Barbatruc
Repose en paix
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:

cococh8

XLDnaute Junior
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:

Robert

XLDnaute Barbatruc
Repose en paix
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

  • Cococh_v02.xlsm
    32 KB · Affichages: 63

cococh8

XLDnaute Junior
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
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87