Private Sub BTN_VALID_Click()
ActiveSheet.Unprotect
'Dim x
'x = Time ' je vaux savoir le temps d'execution de la macro
'je m'affranchi des erreurs
On Error GoTo ErrorHandler
Application.ScreenUpdating = False 'Masquer les action à l'écran et accélère le code
Application.Calculation = xlManual ' je passe en calcul manuel pour gain de temps
'-------------------
Dim val_select As Boolean ' je crée une variable pour voir si j'ai une selection dans ma listbox
Dim nb_select, i As Integer ' je crée une variable qui va stocker le nb de selec dans la listbox
val_select = False ' je mets la select à 0
nb_select = Me.LST_RECH.ListCount
Call VISITE ' j'appelle la valeur de la selec type de journée
Call Binome
'1
If ActiveCell = "" Then 'je verifie que le cellule est vide
'-------------
'on va vérfier si la txt box avec un nom créé car un mag n'existe pas est vide, si vide > on continue
'2
ActiveSheet.Select
If Txt_us1_NewMag.Value = "" Then
VALIDE1:
'-------------
'Vérifie si un élément est sélectionné
'le 1er item (élément) est indexé à zéro, raison pour laquelle la boucle for démarre à zéro
For i = 0 To nb_select - 1
'3
If Me.LST_RECH.Selected(i) = True Then
val_select = True
Exit For
'3
End If
Next
'-------------
' si aucun item n'a été sélectionné, il est inutile d'aller plus loin !
'4
If val_select = False Then
ActiveCell.Value = VISITE & " - " & Binome
'4
Else
Dim val_mag1 As String 'je nomme la 1°colonne
LST_RECH.BoundColumn = 2
val_mag1 = LST_RECH.Value
Dim val_mag2 As String 'je nomme la 2°colonne
LST_RECH.BoundColumn = 4
val_mag2 = LST_RECH.Value
'Dim binome As String ' je détermine si le cpv est en binome
'If CHX_BINOMECPV.Value = True Then binome = " - bi²"
ActiveCell.Value = val_mag1 & " - " & val_mag2 & " - " & VISITE & " - " & Binome
'4
End If
'2
Else 'si txtbbox de mag créé non vide alors
ActiveSheet.Select
ActiveCell.Value = Txt_us1_NewMag.Value & " - " & VISITE & " - " & Binome
'2
End If
'1
Else
'5
If MsgBox("Attention, vous allez effacer les données de la cellule", vbYesNo + vbExclamation, _
"Demande de confirmation") = vbYes Then
GoTo VALIDE1
'5
End If
'1
End If
ActiveSheet.Protect ' je protege la feuille pour eviter les marques manuelles
Application.Calculation = xlAutomatic ' je remets le calcul auto
ActiveCell.Offset(0, 1).Select ' je me positionne sur la cellule à côté de celle sélectionnée
Sheets("data mag").Visible = False
Unload Me
'MsgBox ("temps macro = " & Format(Time - x, "hh:mm:ss"))
Exit Sub
ErrorHandler:
Unload Me
MsgBox "Une erreur a empêché le bon fonctionnement de cette application", vbCritical, "Annulation"
ActiveSheet.Protect ' je protege la feuille pour eviter les marques manuelles
Application.Calculation = xlAutomatic ' je remets le calcul auto
ActiveCell.Offset(0, 1).Select ' je me positionne sur la cellule à côté de celle sélectionnée
End Sub