Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Columns("I:I")) Is Nothing Then
Dim der&, ID, ligID
' Petite question avant de faire la facture
If MsgBox("Voulez-vous faire une facture pour la vente : " & Target.Value & " ?", _
vbQuestion + vbYesNo, "FACTURATION...") = vbNo Then Exit Sub
'
' Si la réponse est OUI on y va
der = Application.CountA(Columns("a:a")) '?
With Sheets("facture") ' sur la feuille facture
.Range("a11:h" & Rows.Count).Resize(der).ClearContents 'nettoie les cellules a11 à colonne h(données du tableau)
.Range("f1:f3,g1,b8,g1,g8").ClearContents 'nettoie le contenu de ces cellules (coordonnées client)
End With
If Target <> "" And Target.Column = Range("I1").Column And Target.Row > 1 And Target.Row <= der Then 'détermine la colonne I de la feuille ventes comme cible
Range("a1:k" & der).AutoFilter Field:=9, Criteria1:=Target.Value '? sélectionne colonnes A à K et filtre sur la colonne 9 = colonne I
ID = Me.Cells(Rows.Count, "j").End(xlUp).Value '?
With Sheets("facture") 'sur la feuille facture
Me.Range("a1:k" & der).Resize(, 8).SpecialCells(xlCellTypeVisible).Copy .Range("a10") '? ' prends les résultats du filtre des colonnes A à K et colle les 8 colonnes sélectionnées
If Me.FilterMode Then Me.ShowAllData
On Error Resume Next: ligID = Application.Match(ID, Sheets("clients").Columns(2), 0): On Error GoTo 0 '?
If Not IsError(ligID) Then
.Range("f1") = Sheets("clients").Cells(ligID, 3) 'implémente le nom en F1
.Range("g1") = Sheets("clients").Cells(ligID, 4) 'implémente le prénom en G1
.Range("f2") = Sheets("clients").Cells(ligID, 5) 'implémente l'adresse en F2
.Range("f3") = Sheets("clients").Cells(ligID, 6) & " " & Sheets("clients").Cells(ligID, 7) 'implémente cp + espace + ville en F3
End If
.Range("g8") = Date 'implémente la date en G6
.Range("b8") = Target.Value 'implémente la cible (le numéro de vente) en B8
'Application.Goto .Range("a1"), True 'se place en A1 en fin de macro
.Range("A1").Select ' c'est mieux ;-)
End With
End If
Call mise_en_forme_tableau
End If
End Sub