Re-demande d'aide sur USF

J

jean

Guest
Boujour à tous et toutes,

Il y a quelques jours, j'ai télécharger une démo de @+Thierry (usf-mukti-combo-maj-bdb-vo) que j'ai adapté pour mon application, mais j'ai quelques petit problème que je n'arrive pas a résoudre, aussi je n'ai d'autre choix que de m'adresser a vous.



1) une erreur se produit après le dernier enregistrement en mode consultation, si l'on modifie ou ajoute un enregistrement et que l'on ne quitte pas l'usf, l'erreur ne se produit pas.

2)Comment faire pour n'afficher que deux chiffres après la ',' dans le combo3
comme dans la cellule de la feuille ?

3)Lors de l'ajoute ou la modification du "prix en euro", erreur dans la cellule de la feuille (fleche verte dans le coin suppérieur gauche de la cellule de la feuille.

Je vous remercie d'avance pour vos réponses.

Ps. Je vous souhaite à tous et à toutes de très bonne vacances avec plein de soleil.
 
J

jean

Guest
Salut Arnaud,

J' ai voulu joindre l'exemple mais je n'y arrive pas car il pèse 104ko et je n'arrive pas a le réduire +, peut être te l'envoyer directement si cela peut se faire

Déjà merci pour la rapidité de ta réponse

Jean
 
J

jean

Guest
Re- salut Arnaud,

a tout hazard, j'envois les codes de modification et ajout pour la question 3
peut être y verra tu plus clair que moi

merci




'============MODIFICATION ======================================================
Private Sub CheckBox1_Click()
Dim CtrlArray As Variant
Dim Test As Byte
' ici un test en boucle pour être sûr que les combo contiennent bien un enregistrement
For Each CtrlArray In Array(ComboBox1, ComboBox2)
If CtrlArray.ListIndex = -1 Then Test = Test + 1
Next
If Me.CheckBox1 = True Then
If Test > 0 Then
MsgBox "Vous devez d'abord sélectionner un enregistrement valide" & vbCrLf & _
"avant d'activer cette option." & vbCrLf & "Il y a " & Test & " ComboBox" & _
" sans enregistrement valide", vbExclamation, T
Me.CheckBox1 = False 'on me remet non checké
Exit Sub
Else
With Me
.Label1 = "Mode Modification"
.CommandButton2.Visible = True
ComboBox1.SetFocus
End With
BeforeModifIndex = TheComboIndex 'Ici on récupère l'index avant modif
ComboBox3.Visible = False
'ici on cache les dropdown arrow car il n'y a pas de synchro en mode modif
For Each CtrlArray In Array(ComboBox1, ComboBox2)
CtrlArray.ShowDropButtonWhen = fmShowDropButtonWhenNever
Next
End If
Else
With Me
.CommandButton2.Visible = False
.Label1 = "Mode Consultation"
End With
'Ici on remet dans les dropdown
ComboBox3.Visible = True
For Each CtrlArray In Array(ComboBox1, ComboBox2, ComboBox3)
CtrlArray.ShowDropButtonWhen = fmShowDropButtonWhenAlways
Next
End If
End Sub

Private Sub CommandButton2_Click()
Dim Msg As Byte
Dim TheOrigine As String, TheModified As String
Dim l As Integer
l = BeforeModifIndex + 7 'Toujours gérer les dacalages
With Feuil13
'test pour comparer AVANT et APRES les Modifs
TheOrigine = .Cells(l, 2) & .Cells(l, 8)
TheModified = Me.ComboBox1 & Me.ComboBox2
If TheOrigine = TheModified Then
MsgBox "Et alors !!! vous croyez wue je vois pas que vous avez rien modifié !! lol", vbInformation, T & " lol lol lol"
Exit Sub 'zêtes sorti !! lol
End If
Msg = MsgBox("Voulez-vous valider ces modifications :" & vbCrLf & vbCrLf & Chr(9) & _
"Enregistrement N° " & Feuil13.Cells(l, 10) & vbCrLf & Chr(9) & _
"Désignation " & .Cells(l, 2) & vbCrLf & Chr(9) & Chr(9) & _
" par : " & Me.ComboBox1.Value & vbCrLf & Chr(9) & _
"Prix en Euro " & .Cells(l, 8) & vbCrLf & Chr(9) & Chr(9) & _
" par : " & Me.ComboBox2.Value, vbExclamation + vbOKCancel, T)
If Msg = vbCancel Then Exit Sub ' Si on annule, on sort
'Sinon on effectue les modifiactions sur la ligne
.Cells(l, 2) = Me.ComboBox1
.Cells(l, 8) = Me.ComboBox2
End With
Ini '<<<<<<<<<<<<< Ré-initialisation par la Macro Ini en bas de Module
End Sub
'============AJOUT D'ENREGISTREMENT ======================================================
Private Sub CommandButton3_Click()
Dim CtrlArray As Variant
Dim l As Integer
Dim Test As Byte
Dim Alert As Byte, Msg As Byte
' ici un test en boucle pour être sûr que les combo contiennent bien un enregistrement
ComboBox3.Visible = False
For Each CtrlArray In Array(ComboBox1, ComboBox2)
If CtrlArray.Value = "" Then Test = Test + 1
Next
If Test = 6 Then Exit Sub 'si aucun enregistrement on arrête le traitement???6au lieu de 7
If Test > 0 Then
Alert = MsgBox("Une ou plusieurs Combobox ne contiennent pas d'enregistrement." & vbCrLf & _
"Voulez vous poursuivre l'ahout dans la base de donnée .", vbQuestion + vbYesNo, T)
If Alert = vbNo Then Exit Sub ' si on répond non on sort
End If
Msg = MsgBox("Voulez-vous valider ces Informations :" & vbCrLf & vbCrLf & Chr(9) & _
"Désignation : " & Me.ComboBox1.Value & vbCrLf & Chr(9) & _
"Prix en Euro : " & Me.ComboBox2.Value, vbInformation + vbOKCancel, T)
If Msg = vbCancel Then Exit Sub ' Si on annule, on sort
'Sinon on effectue l'ajout dans la base de donnée sur la dernière ligne vide
'On Trouve dernière ligne remplie
l = Sheets(f).Range("B65536").End(xlUp).Row + 1 'Plus 1 = la dernière ligne vide !
With Feuil13
.Cells(l, 2) = Me.ComboBox1
.Cells(l, 8) = Me.ComboBox2
End With
'on Vide les ComBobox pour une prochaine Saisie
For Each CtrlArray In Array(ComboBox1, ComboBox2)
CtrlArray.Value = ""
Next
Ini '<<<<<<<<<<<<< Ré-initialisation par la Macro Ini en bas de Module
End Sub
Private Sub Ini()
Dim l As Integer
'Consultation = True 'Par Défaut on part en mode de Consultation
'FromSpin = False 'Par défaut on n'utilise pas le Spin
'trouve dernière ligne remplie
l = Sheets(f).Range("B65536").End(xlUp).Row
'mise à jour des données dans les combo...
With Me
.ComboBox1.RowSource = f & "!B7:B" & l
.ComboBox2.RowSource = f & "!H7:H" & l
.ComboBox3.RowSource = f & "!I7:I" & l
.SpinButton1.Max = l - 6 ' <<<< ATTENTION DECALAGE DE DEUX
End With
Renum '<<<<<<<<<<<<< Ré-numérotation des item par la Macro Ini en bas de Module
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 469
Messages
2 088 696
Membres
103 924
dernier inscrit
Patrick c