Suite à ton mail j'ai testé en Live (y a pas plus efficace pour vérifier)
En effet ma proposition est incomplète
ce qui fait défaut est l'instruction Xldown
On vérifie si la 1ère ligne existe pour ne pas utiliser l'XlDown
mais faut le faire sur la 2ème également sinon on se retrouve en bas de feuille
donc si dessous une proposition intégrale qui semble fonctionner à vérifier tout de même (on peut toujours affiner ou simplifier)
*****
Private Sub AjouterVente_Click()
If Quantité = 0 Then
MsgBox "Quantité non saisie"
Else
Sheets("etude").Select
If Unité.unitm Then
uni = "m²"
contrôle = 1
ElseIf Unité.unite Then
uni = "ens"
contrôle = 1
ElseIf Unité.unitu Then
uni = "U"
contrôle = 1
ElseIf Unité.unitm = False And Unité.unite = False And Unité.unitu = False Then
repunit = MsgBox("unité non saisie", vbCritical + vbOKOnly, "Manu")
contrôle = 0
End If
'si la première ligne de la facture est vide, insérer les données à partir de b20
If Range("B20").Value = "" Then
Range("B20").Select
Else
If Range("B21").Value = "" Then
Range("B21").Select
Else
Range("B20").End(xlDown).Offset(1, 0).Select
End If
End If
'ajout de la ligne dans la facture
If contrôle = 1 Then
ActiveCell.Value = DESIGN
ActiveCell.Offset(0, 2).Value = uni
ActiveCell.Offset(0, 4).Value = Int(Quantité)
ActiveCell.Offset(0, 6).Value = Int(MOC)
ActiveCell.Offset(0, 8).Value = Int(MOA)
ActiveCell.Offset(0, 20).Value = Int(MTQ)
ActiveCell.Offset(0, 22).Value = Int(Prix)
DESIGN = ""
uni = ""
SaisieVentes.Quantité = ""
SaisieVentes.Prix = ""
SaisieVentes.MOC = ""
SaisieVentes.MOA = ""
SaisieVentes.MTQ = ""
unitm.Value = False
unite.Value = False
unitu.Value = False
Portes.Value = False
Mobilier.Value = False
Quincaillerie.Value = False
Désignations = ""
Else
End If
End If
Range("D9").Select
End Sub