Bonsoir JOZZ,Bonjour Toubabou et le forum,
Les commentaires saisis sont enregistrés au bon endroit, c'est l'affichage de celui-ci qui ne pointe pas ou il faut.
Procède à la modification ci-jointe dans la UserForm Jugement, et tout devrait rentrer dans l'ordre. Donc pas besoin d'ajout...
Amicalement Jozz
Regarde la pièce jointe 1042880
Peux-tu poster ton fichier, et j'y jetterai un coup d'oeil pour éventuellement te dépanner...Chez moi cela ne fonctionne pas . Plus aucuns commentaires ne s'affichent
Option Explicit
Private Sub CmbAnnuler_Click()
Unload Me
End Sub
Private Sub ListVinConsommé_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListVinConsommé.ListCount = 0 Then
MsgBox "Liste vide>>> Aucun vin à commenter !", vbCritical, "Information"
Unload USFJugement
Exit Sub
Else
Me.TxtCommentaires = Sheets("Mouvements").Cells(Me.ListVinConsommé.List(Me.ListVinConsommé.ListIndex, 7), 11)
Me.FrameCommentaire.Visible = True
TxtCommentaires.SetFocus
End If
End Sub
Private Sub UserForm_Initialize()
Dim CompteurDeLigne As Long
Dim NbLigneUtilisée As Long
Dim Derligne As Long
Me.ListVinConsommé.ColumnWidths = "85;80;130;110;100;53"
With Sheets("Mouvements")
Derligne = .Range("A65536").End(xlUp).Row
For CompteurDeLigne = Derligne To 2 Step -1
If .Cells(CompteurDeLigne, 9) > Date - 31 Then
Me.ListVinConsommé.AddItem
'Date conso
Me.ListVinConsommé.List(NbLigneUtilisée, 0) = .Cells(CompteurDeLigne, 9)
' Région
Me.ListVinConsommé.List(NbLigneUtilisée, 1) = .Cells(CompteurDeLigne, 1)
'Appellation
Me.ListVinConsommé.List(NbLigneUtilisée, 2) = .Cells(CompteurDeLigne, 2)
'Désignation
Me.ListVinConsommé.List(NbLigneUtilisée, 3) = .Cells(CompteurDeLigne, 3)
'Année
Me.ListVinConsommé.List(NbLigneUtilisée, 4) = .Cells(CompteurDeLigne, 4)
'Année
Me.ListVinConsommé.List(NbLigneUtilisée, 5) = .Cells(CompteurDeLigne, 5)
Me.ListVinConsommé.List(NbLigneUtilisée, 6) = .Cells(CompteurDeLigne, 13)
Me.ListVinConsommé.List(NbLigneUtilisée, 7) = CompteurDeLigne
NbLigneUtilisée = NbLigneUtilisée + 1
Else
Exit For
End If
Next
End With
End Sub
Private Sub CmbValider_Click()
Dim CompteurDeLigne As Long
Dim Derligne As Long
Dim ItmSélectionné As Integer
If Me.TxtCommentaires <> "" Then
For ItmSélectionné = 0 To (ListVinConsommé.ListCount - 1)
If ListVinConsommé.Selected(ItmSélectionné) = True Then
Exit For
End If
Next
With Sheets("Mouvements")
Derligne = .Range("A65536").End(xlUp).Row
For CompteurDeLigne = Derligne To 2 Step -1
If .Cells(CompteurDeLigne, 1) = Me.ListVinConsommé.List(ItmSélectionné, 1) _
And .Cells(CompteurDeLigne, 2) = Me.ListVinConsommé.List(ItmSélectionné, 2) _
And CStr(.Cells(CompteurDeLigne, 3)) = Me.ListVinConsommé.List(ItmSélectionné, 3) _
And CStr(.Cells(CompteurDeLigne, 5)) = CStr(Me.ListVinConsommé.List(ItmSélectionné, 5)) Then
.Cells(CompteurDeLigne, 11) = Me.TxtCommentaires
End If
Next
End With
With Sheets("Données")
Derligne = .Range("A65536").End(xlUp).Row
For CompteurDeLigne = Derligne To 2 Step -1
If .Cells(CompteurDeLigne, 1) = Me.ListVinConsommé.List(ItmSélectionné, 1) _
And .Cells(CompteurDeLigne, 2) = Me.ListVinConsommé.List(ItmSélectionné, 2) _
And CStr(.Cells(CompteurDeLigne, 3)) = Me.ListVinConsommé.List(ItmSélectionné, 3) _
And CStr(.Cells(CompteurDeLigne, 5)) = CStr(Me.ListVinConsommé.List(ItmSélectionné, 5)) Then
.Cells(CompteurDeLigne, 20) = Me.TxtCommentaires
End If
Next
End With
With Sheets("Localisation")
Derligne = .Range("A65536").End(xlUp).Row
For CompteurDeLigne = Derligne To 2 Step -1
If .Cells(CompteurDeLigne, 1) = Me.ListVinConsommé.List(ItmSélectionné, 1) _
And .Cells(CompteurDeLigne, 2) = Me.ListVinConsommé.List(ItmSélectionné, 2) _
And CStr(.Cells(CompteurDeLigne, 3)) = Me.ListVinConsommé.List(ItmSélectionné, 3) _
And CStr(.Cells(CompteurDeLigne, 5)) = CStr(Me.ListVinConsommé.List(ItmSélectionné, 5)) Then
.Cells(CompteurDeLigne, 17) = Me.TxtCommentaires
End If
Next
End With
MsgBox "Commentaire pris en compte"
Unload Me
Else
MsgBox " pas de commentaire indiqué"
End If
End Sub
Public WithEvents groupebouton As MSForms.TextBox
Private Sub groupebouton_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim Réponse As String
Dim Derligne As Long
Dim Ligne As Byte
Dim Colonne As Byte
Dim Cell As Range
ValeurTextbox = Right(groupebouton.Name, Len(groupebouton.Name) - 7)
Ligne = Left(ValeurTextbox, 2)
Colonne = Right(ValeurTextbox, 2)
ValeurTextbox = Ligne & Colonne
With Sheets("Localisation")
'if UserFormCasier.OptConsulter = True Then
For Each Cell In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
If CStr(Cell.Offset(0, 8)) = UserFormCasier.ComboCasier.Value Then
If CStr(ValeurTextbox) = Cell.Offset(0, 9) & Cell.Offset(0, 10) Then
If Cell.Offset(0, 6) <= Year(Date) Then
UserFormCasier.Controls(groupebouton.Name).ControlTipText = "Vin arrivé à terme"
End If
End If
End If
Next
'ElseIf UserFormCasier.OptPrélever = True Or UserFormCasier.OptDéplacer = True Then
'End If
End With
End Sub
Private Sub groupebouton_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim Réponse As String
Dim Derligne As Long
Dim Cell As Range
Dim ValeurTextbox As String
Dim Ligne As Byte
Dim Colonne As Byte
If MémoireRangementManuel = False Then
If UserFormCasier.OptConsulter = True Then
MémoireTransfertEnCours = False
ValeurTextbox = Right(groupebouton.Name, Len(groupebouton.Name) - 7)
Ligne = Left(ValeurTextbox, 2)
Colonne = Right(ValeurTextbox, 2)
ValeurTextbox = Ligne & Colonne
With Sheets("Localisation")
For Each Cell In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
If CStr(Cell.Offset(0, 8)) = UserFormCasier.ComboCasier.Value Then
If CStr(ValeurTextbox) = Cell.Offset(0, 9) & Cell.Offset(0, 10) Then
MsgBox " Le vin dans cette cellule : " & Chr(10) & Chr(10) & Chr(149) & " Région : " & Cell & Chr(10) & Chr(149) & " Appellation : " & Cell.Offset(0, 1) _
& Chr(10) & Chr(149) & " Nom : " & Cell.Offset(0, 2) & Chr(10) & Chr(149) & " Couleur : " & Cell.Offset(0, 3) & Chr(10) & Chr(149) & " Année : " & Cell.Offset(0, 4) _
& Chr(10) & Chr(149) & " Acheteur : " & Cell.Offset(0, 18) & Chr(10) & Chr(149) & " Cote : " & Cell.Offset(0, 19)
Exit Sub
End If
End If
Next
End With
ElseIf UserFormCasier.OptPrélever = True Then
MémoireTransfertEnCours = False
SortieDestination = False
ValeurTextbox = Right(groupebouton.Name, Len(groupebouton.Name) - 7)
Ligne = Left(ValeurTextbox, 2)
Colonne = Right(ValeurTextbox, 2)
ValeurTextbox = Ligne & Colonne
With Sheets("Localisation")
For Each Cell In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
If CStr(Cell.Offset(0, 8)) = UserFormCasier.ComboCasier.Value Then
If CStr(ValeurTextbox) = Cell.Offset(0, 9) & Cell.Offset(0, 10) Then
MsgBox " Le vin dans cette cellule : " & Chr(10) & Chr(10) & Chr(149) & " Région : " & Cell & Chr(10) & Chr(149) & " Appellation : " & Cell.Offset(0, 1) _
& Chr(10) & Chr(149) & " Nom : " & Cell.Offset(0, 2) & Chr(10) & Chr(149) & " Couleur : " & Cell.Offset(0, 3) & Chr(10) & Chr(149) & " Année : " & Cell.Offset(0, 4) _
& Chr(10) & Chr(149) & " Acheteur : " & Cell.Offset(0, 18)
PrixAchat = Cell.Offset(0, 14)
Réponse = MsgBox("Voulez vous prélever ce vin", vbYesNo + vbQuestion)
If Réponse = vbYes Then
UserFormDestination.Show
If SortieDestination = False Then
MsgBox " la destination de la bouteille n'ayant pas été correctement documentée, sortie non réalisée"
Unload UserFormDestination
Exit Sub
End If
With Sheets("Mouvements")
Derligne = .Range("A65536").End(xlUp).Row + 1
.Cells(Derligne, 1) = Cell
.Cells(Derligne, 2) = Cell.Offset(0, 1)
.Cells(Derligne, 3) = Cell.Offset(0, 2)
.Cells(Derligne, 4) = Cell.Offset(0, 3)
.Cells(Derligne, 5) = Cell.Offset(0, 4)
.Cells(Derligne, 6) = UserFormCasier.ComboCasier.Value
.Cells(Derligne, 7) = Cell.Offset(0, 9)
.Cells(Derligne, 8) = Cell.Offset(0, 10)
.Cells(Derligne, 9) = Date
.Cells(Derligne, 10) = 1
.Cells(Derligne, 11) = Cell.Offset(0, 16)
.Cells(Derligne, 12) = Cell.Offset(0, 15)
.Cells(Derligne, 13) = Cell.Offset(0, 18)
.Cells(Derligne, 14) = Cell.Offset(0, 20)
If UserFormDestination.OptConsoPerso = True Then
.Cells(Derligne, 15) = UserFormDestination.OptConsoPerso.Caption
ElseIf UserFormDestination.OptEchange = True Then
.Cells(Derligne, 15) = UserFormDestination.OptEchange.Caption
ElseIf UserFormDestination.OptVente = True Then
.Cells(Derligne, 15) = UserFormDestination.OptVente.Caption
.Cells(Derligne, 16) = CDbl(UserFormDestination.TxtPrixVente)
.Cells(Derligne, 17) = CDbl(UserFormDestination.TxtPrixAchat)
.Cells(Derligne, 18) = CDbl(UserFormDestination.txtPlusValue)
End If
End With
With Sheets("Données")
For Each Cellule In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
If Cell.Offset(0, 20) = Cellule.Offset(0, 28) Then
Cellule.Offset(0, 18) = Cellule.Offset(0, 18) - 1
Exit For
End If
Next
End With
Cell.EntireRow.Delete
Unload UserFormDestination
UserFormCasier.Controls(groupebouton.Name).BackColor = &H80000005
MsgBox " Prélévement exécuté"
Exit Sub
End If
End If
End If
Next
End With
ElseIf UserFormCasier.OptDéplacer = True Then
ValeurTextbox = Right(groupebouton.Name, Len(groupebouton.Name) - 7)
Ligne = Left(ValeurTextbox, 2)
Colonne = Right(ValeurTextbox, 2)
If MémoireTransfertEnCours = False Then
ValeurTextbox = Ligne & Colonne
With Sheets("Localisation")
For Each Cell In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
If CStr(Cell.Offset(0, 8)) = UserFormCasier.ComboCasier.Value Then
If CStr(ValeurTextbox) = Cell.Offset(0, 9) & Cell.Offset(0, 10) Then
MsgBox " Le vin dans cette cellule : " & Chr(10) & Chr(10) & Chr(149) & " Région : " & Cell & Chr(10) & Chr(149) & " Appellation : " & Cell.Offset(0, 1) _
& Chr(10) & Chr(149) & " Nom : " & Cell.Offset(0, 2) & Chr(10) & Chr(149) & " Couleur : " & Cell.Offset(0, 3) & Chr(10) & Chr(149) & " Année : " & Cell.Offset(0, 4) _
& Chr(10) & Chr(149) & " Acheteur : " & Cell.Offset(0, 18)
Réponse = MsgBox(" Si vous voulez déplacer ce vin cliquez sur oui, puis sélectionner la cellule de destination", vbYesNo + vbQuestion)
If Réponse = vbYes Then
MémoireLigneLocalisation = Cell.Row
MémoireTextBoxOrigine = groupebouton.Name
MémoireCouleurTextBox = UserFormCasier.Controls(groupebouton.Name).BackColor
MémoireTransfertEnCours = True
End If
Exit Sub
End If
End If
Next
End With
End If
If MémoireTransfertEnCours = True Then
If UserFormCasier.Controls(groupebouton.Name).BackColor <> &H80000005 Then
MsgBox " On ne peut pas déplacer une bouteille dans une cellule déja occupée"
Exit Sub
End If
With Sheets("Localisation")
.Cells(MémoireLigneLocalisation, 9) = UserFormCasier.ComboCasier.Value
.Cells(MémoireLigneLocalisation, 10) = Ligne
.Cells(MémoireLigneLocalisation, 11) = Colonne
.Cells(MémoireLigneLocalisation, 16) = Sheets("Déroulants").Range("U" & Colonne + 1) & Ligne
UserFormCasier.Controls(MémoireTextBoxOrigine).BackColor = &H80000005
UserFormCasier.Controls(MémoireTextBoxOrigine).ControlTipText = Empty
UserFormCasier.Controls(groupebouton.Name).BackColor = MémoireCouleurTextBox
MémoireTransfertEnCours = False
MsgBox " Transfert réalisé "
End With
End If
End If
ElseIf MémoireRangementManuel = True Then
ValeurTextbox = Right(groupebouton.Name, Len(groupebouton.Name) - 7)
Ligne = Left(ValeurTextbox, 2)
Colonne = Right(ValeurTextbox, 2)
ValeurTextbox = Ligne & Colonne
If UserFormCasier.Controls(groupebouton.Name).BackColor = &H80000005 Then
Réponse = MsgBox("Voulez vous ranger une bouteille dans cette cellule ? ", vbYesNo + vbQuestion)
If Réponse = vbYes Then
With Sheets("Localisation")
Derligne = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Derligne) = USFRentrerUnVin.ComboRégion
.Range("B" & Derligne) = USFRentrerUnVin.ComboAppellation
.Range("C" & Derligne) = USFRentrerUnVin.ComboDésignation
.Range("D" & Derligne) = USFRentrerUnVin.ComboCouleur
.Range("E" & Derligne) = CInt(USFRentrerUnVin.ComboAnnée)
.Range("F" & Derligne) = Date
If USFRentrerUnVin.TxtDateMaxi <> "" Then
.Range("G" & Derligne) = CInt(USFRentrerUnVin.TxtDateMaxi)
End If
If USFRentrerUnVin.TxtDateMini <> "" Then
.Range("H" & Derligne) = CInt(USFRentrerUnVin.TxtDateMini)
End If
.Range("I" & Derligne) = UserFormCasier.ComboCasier.Value
.Range("J" & Derligne) = CByte(Ligne)
.Range("K" & Derligne) = CByte(Colonne)
.Range("L" & Derligne) = USFRentrerUnVin.ComboCépage
.Range("M" & Derligne) = USFRentrerUnVin.ComboPotentiel
If USFRentrerUnVin.ComboHarmonie1 <> "" Then
.Range("N" & Derligne) = USFRentrerUnVin.ComboHarmonie1
End If
If USFRentrerUnVin.ComboHarmonie2 <> "" Then
.Range("N" & Derligne) = .Range("N" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie2
End If
If USFRentrerUnVin.ComboHarmonie3 <> "" Then
.Range("N" & Derligne) = .Range("N" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie3
End If
If USFRentrerUnVin.ComboHarmonie4 <> "" Then
.Range("N" & Derligne) = .Range("N" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie4
End If
If USFRentrerUnVin.ComboHarmonie5 <> "" Then
.Range("N" & Derligne) = .Range("N" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie5
End If
If USFRentrerUnVin.TxtPrix.Value <> "" Then
.Range("O" & Derligne) = CDbl(USFRentrerUnVin.TxtPrix)
End If
.Range("P" & Derligne) = Sheets("Déroulants").Range("U" & Colonne + 1) & Ligne
.Range("Q" & Derligne) = USFRentrerUnVin.TxtObservations
.Range("R" & Derligne) = 1
.Range("S" & Derligne) = USFRentrerUnVin.TxtAcheteur
.Range("T" & Derligne) = Val(USFRentrerUnVin.TxtCote)
.Range("U" & Derligne) = Clé
If USFRentrerUnVin.ComboCouleur = "Rouge" Then
UserFormCasier.Controls(groupebouton.Name).BackColor = RGB(109, 7, 26)
UserFormCasier.Controls(groupebouton.Name).BackColor = &H8080FF
ElseIf USFRentrerUnVin.ComboCouleur = "Rosé" Then
UserFormCasier.Controls(groupebouton.Name).BackColor = &HFFC0FF
ElseIf USFRentrerUnVin.ComboCouleur = "Blanc" Then
UserFormCasier.Controls(groupebouton.Name).BackColor = RGB(123, 123, 123)
UserFormCasier.Controls(groupebouton.Name).BackColor = &HC0C0C0
ElseIf USFRentrerUnVin.ComboCouleur = "Effervescents" Then
UserFormCasier.Controls(groupebouton.Name).BackColor = RGB(247, 255, 60)
ElseIf USFRentrerUnVin.ComboCouleur = "Blanc Sec" Then
UserFormCasier.Controls(groupebouton.Name).BackColor = &HFFFFC0
ElseIf USFRentrerUnVin.ComboCouleur = "Liquoreux" Then
UserFormCasier.Controls(groupebouton.Name).BackColor = &HC0FFC0
' UserFormCasier.Controls(groupebouton.Name).BackColor = &HFFFF&
End If
UserFormCasier.TxtNbBouteille.Value = UserFormCasier.TxtNbBouteille.Value - 1
End With
' Transfert des données dans onglet données
With Sheets("Données")
If UserFormCasier.TxtNbBouteille.Value = 0 Then
Derligne = .Range("A65536").End(xlUp).Row + 1
.Range("A" & Derligne) = USFRentrerUnVin.ComboRégion
.Range("B" & Derligne) = USFRentrerUnVin.ComboAppellation
.Range("C" & Derligne) = USFRentrerUnVin.ComboDésignation
.Range("D" & Derligne) = USFRentrerUnVin.ComboCouleur
.Range("E" & Derligne) = CInt(USFRentrerUnVin.ComboAnnée)
.Range("F" & Derligne) = USFRentrerUnVin.ComboCépage
.Range("G" & Derligne) = USFRentrerUnVin.ComboPotentiel
On Error Resume Next
.Range("H" & Derligne) = CInt(USFRentrerUnVin.TxtDateMaxi)
.Range("I" & Derligne) = CInt(USFRentrerUnVin.TxtDateMini)
On Error GoTo 0
If USFRentrerUnVin.ComboHarmonie1 <> "" Then
.Range("J" & Derligne) = USFRentrerUnVin.ComboHarmonie1
End If
If USFRentrerUnVin.ComboHarmonie2 <> "" Then
.Range("J" & Derligne) = .Range("J" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie2
End If
If USFRentrerUnVin.ComboHarmonie3 <> "" Then
.Range("J" & Derligne) = .Range("J" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie3
End If
If USFRentrerUnVin.ComboHarmonie4 <> "" Then
.Range("J" & Derligne) = .Range("J" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie4
End If
If USFRentrerUnVin.ComboHarmonie5 <> "" Then
.Range("J" & Derligne) = .Range("J" & Derligne) & " - " & USFRentrerUnVin.ComboHarmonie5
End If
If USFRentrerUnVin.TxtPrix <> "" Then
.Range("O" & Derligne) = CDbl(USFRentrerUnVin.TxtPrix)
End If
.Range("P" & Derligne) = USFRentrerUnVin.TxtDateAchat
.Range("Q" & Derligne) = USFRentrerUnVin.TxtLieu
.Range("R" & Derligne) = CByte(USFRentrerUnVin.ComboQuantité)
.Range("S" & Derligne) = CByte(USFRentrerUnVin.ComboQuantité)
.Range("T" & Derligne) = USFRentrerUnVin.TxtObservations
.Range("U" & Derligne) = USFRentrerUnVin.TxtContact
.Range("V" & Derligne) = USFRentrerUnVin.TxtAdresse
.Range("W" & Derligne) = USFRentrerUnVin.TxtVille
.Range("X" & Derligne) = USFRentrerUnVin.TxtCodePostal.Value
.Range("Y" & Derligne) = USFRentrerUnVin.TxtTel
.Range("Z" & Derligne) = USFRentrerUnVin.TxtEmail
.Range("AA" & Derligne) = USFRentrerUnVin.TxtAcheteur
.Range("AB" & Derligne) = Val(USFRentrerUnVin.TxtCote)
.Range("AC" & Derligne) = Clé
.Range("AD" & Derligne) = USFRentrerUnVin.ComboFormat
.Range("AE" & Derligne) = USFRentrerUnVin.TxtApogée.Value
Sheets("Données").Select
Range("A1:AG" & Derligne).Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Application.Goto Reference:=Sheets("Menu").Range("A1"), Scroll:=True
Unload USFRentrerUnVin
Unload UserFormCasier
MémoireRangementManuel = False
MsgBox " Mise en cave réalisée"
End If
End With
End If
Else
With Sheets("Localisation")
For Each Cell In .Range("A2:A" & .Range("A65536").End(xlUp).Row)
If CStr(Cell.Offset(0, 8)) = UserFormCasier.ComboCasier.Value Then
If CStr(ValeurTextbox) = Cell.Offset(0, 9) & Cell.Offset(0, 10) Then
MsgBox " Cette cellule est deja occupée par : " & Chr(10) & Chr(10) & Chr(149) & " Région : " & Cell & Chr(10) & Chr(149) & " Appellation " & Cell.Offset(0, 1) _
& Chr(10) & Chr(149) & " Nom : " & Cell.Offset(0, 2) & Chr(10) & Chr(149) & " Couleur : " & Cell.Offset(0, 3) & Chr(10) & Chr(149) & " Année : " & Cell.Offset(0, 4)
End If
End If
Next
End With
End If
End If
End Sub
Pour JM27,Quand j'accède à la visualisation de cave, et que je change de casier (CaveAvt) le contrôle TipText m'indique la présence d'un vin arrivé à terme qui se trouve dans un autre casier (Vins de garde).
Est-il possible de corriger ce Bug, d'avance merci.
Regarde la pièce jointe 1042312