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

Par défaut Date j+1, j+2 dans textbox en fonction d'optionbutton

dedam

XLDnaute Nouveau
Bonjour,

Je cherche un code pouvant, selon la sélection d'un optionbutton afficher une date j+1 ou j+2 ou ouverture d'un calendrier pour sélection d'un jour personnalisé.

En sélectionnant priorité basse : J+2 (en élminant les jours fériés, samedi et dimanche)
Moyenne et haute : J+1 (en élminant les jours fériés, samedi et dimanche)

Lien supprimé

Voici mon code fonctionnel :

Le cmdCancel_Click annule et relance le formulaire
Le cmdConfirm_Click envoie les données récoltées du userform vers ma plage de données
Le CommandButton26_Click intialise mon numéro de dossier



Code:
Private Sub cmdCancel_Click()
Dim Ctrl As Control
    'efface textbox
    For Each Ctrl In Me.Controls("Frame1").Controls
        If TypeName(Ctrl) = "TextBox" Then
            Select Case Ctrl.Name
            Case Else
                Ctrl.Value = ""
            End Select
        End If
    Next
    'efface optionbutton
    For Each Ctrl In Me.Controls("Frame1").Controls
        If TypeName(Ctrl) = "OptionButton" Then Ctrl.Value = False
    Next Ctrl
 
    For Each Ctrl In Me.Controls("Frame1").Controls
        If TypeName(Ctrl) = "ComboBox" Then
            Select Case Ctrl.Name
            Case Else
                Ctrl.Value = ""
            End Select
        End If
    Next
 
End Sub
Sub cmdConfirm_Click()
Dim Ctrl As Control
Dim Ctrl1 As Control


 Sheets("DATA").Activate
 
 
  'Positionnement dans la table
  [A65000].End(xlUp).Offset(1, 0).Select
  'Transfert des données formulaire dans BD
  'frame priorité
  ActiveCell.Value = Application.Proper(Me.NumCall)
  
  For Each Ctrl In Frame2.Controls
        If Ctrl.Object.Value = True Then
             ActiveCell.Offset(0, 1).Value = Ctrl.Object.Caption
            Exit For
        End If
    Next Ctrl
  ActiveCell.Offset(0, 2).Value = Me.txtDate
  ActiveCell.Offset(0, 3).Value = Me.ActionAgent
  ActiveCell.Offset(0, 4).Value = Me.ComboTypeCall
  ActiveCell.Offset(0, 5).Value = Me.ResaCmde
  ActiveCell.Offset(0, 6).Value = Me.Outbound
  ActiveCell.Offset(0, 7).Value = Me.Article
  ActiveCell.Offset(0, 8).Value = Me.Lot
  ActiveCell.Offset(0, 9).Value = Me.Objet
  
  'rafraichi frame
  
    'efface textbox
    For Each Ctrl1 In Me.Controls("Frame1").Controls
        If TypeName(Ctrl1) = "TextBox" Then
            Select Case Ctrl1.Name
            Case Else
                Ctrl1.Value = ""
            End Select
        End If
    Next
    'efface optionbutton
    For Each Ctrl1 In Me.Controls("Frame1").Controls
        If TypeName(Ctrl1) = "OptionButton" Then Ctrl1.Value = False
    Next Ctrl1
    
    For Each Ctrl1 In Me.Controls("Frame1").Controls
        If TypeName(Ctrl1) = "ComboBox" Then
            Select Case Ctrl1.Name
            Case Else
                Ctrl1.Value = ""
            End Select
        End If
    Next
    
    'recharge la date du jour
    txtDate.Value = Date
    
    'message fin
    MsgBox "Call créé", vbInformation, "Création du call"
    
    'cacher bouton valider ticket
    cmdConfirm.Visible = False
    
    'relance
End Sub


Private Sub CommandButton26_Click()
NumCall.Value = Format(Now, "ddmmyyyyhhnnss")
cmdConfirm.Visible = True

End Sub

Private Sub UserForm_Initialize()
   

    'statut combo
    ComboBox1.AddItem "CREE"
    ComboBox1.AddItem "CLOTURE"
        
    'charge la date du jour (non visible)
    txtDate.Value = Date
    
    'cacher bouton valider ticket
    cmdConfirm.Visible = False
    
    'Type de demande
    ComboTypeCall.AddItem "demande urgente"
    ComboTypeCall.AddItem "demande anticipée"
    ComboTypeCall.AddItem "information(s)"
    ComboTypeCall.AddItem "recyclage"
    ComboTypeCall.AddItem "annulation de commande"
    ComboTypeCall.AddItem "modification Master data"
    ComboTypeCall.AddItem "matériel magasin"
    ComboTypeCall.AddItem "urgence SAE"
    

   Dim WB As Workbook
    Dim S As Worksheet
    Dim R As Range
    Dim var As Variant
    Dim LigneFin&
    Dim ColonneFin&
 
'### Où se trouvent les données ? ###
Set WB = ActiveWorkbook   'dans le classeur actif (à adapter)
Set S = WB.Sheets("DATA") 'dans la feuille "Data" (à adapter)
'--- on suppose que les données commencent en A1
'--- et que toutes les cellules de la colonne A
'--- ainsi que toutes les cellules de la ligne 1
'--- sont renseignées
LigneFin& = S.[A1].End(xlDown).Row          'dernère ligne
ColonneFin& = S.[A1].End(xlToRight).Column  'dernière colonne
'--- on affecte la plage de données à une variable Range
Set R = S.Range(S.Cells(1, 1), S.Cells(LigneFin&, ColonneFin&))
'--- on monte tout le Range dans un Variant qui va se comporter comme un tableau bidimensionné
var = R   'toutes les données sont dans le Variant
 
'### REMARQUE ###
'Si vous avez des calculs, faites les à partir et dans le Variant
 
'### ListBox ###
'--- nombre de colonnes de la ListBox = nombre de colonnes du Variant
ListBox1.ColumnCount = UBound(var, 2) ',2 est la dimension des colonnes
'--- on monte d'un seul coup le variant dans la ListBox
ListBox1.ColumnWidths = "70 pt;45 pt;45 pt;45 pt;45 pt;45 pt"
ListBox1.List = var
ListBox1.ColumnHeads = True
ListBox1.RowSource = "A2:H2"

'test
End Sub

J'essaye aussi d'intégrer un filtre pour la listbox via un "boutonactual"_click mais j'ai du mal car je dois respecter les dimensions des colonnes mais je ne comprend pas comment les définir ..
Le tout pour qu'en fait, les donnée encodée s'affche dans une list box mais seulement les "ticket" qui sont CREE et pas CLOTURE ..

Quelques indications me seraitn grandement utiles,

Merci
 

Discussions similaires

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