Bonjour le forum
J’utilise la macro suivante pour afficher le contenu d’une ligne tableau structuré selon la valeur (numéro de facture) de la cellule K3 de la feuille active
Le problème qu’il ya un bug indiqué sur le code lorsque la cellule la cel K3 est vide.
Comment ajouter une ligne macro pour tester si la cellule est vide pour sortir de l’execution de la macro du macro
Meci pour votre aide
Cordialement
Sub Duplicata_Facture(ByVal control As IRibbonControl) 'afficher duplicata
Application.ScreenUpdating = False
Dim Sh2 As Worksheet, Sh4 As Worksheet
Dim xLig&, xCol&, i&
Application.ScreenUpdating = False
Set Sh2 = Sheets("archive_factures") 'Source ==> Feuil2
Set Sh4 = Sheets("Duplicata_facture") 'Destination ==> Feuil3
Sh4.Unprotect
Sh4.Range("C5:F8,D2,B18:F42,D44:D45").ClearContents
Sh4.Range("C3").MergeArea.ClearContents
xCol = 9
**xLig = Evaluate("MATCH('Duplicata_facture'!K3,archive_factures!A1:A17,0)")**
With Sh2
Sh4.[C3] = .Range("A" & xLig).Value
Sh4.[D2] = .Range("B" & xLig).Value
Sh4.[C5] = .Range("C" & xLig).Value
Sh4.[C6] = .Range("D" & xLig).Value
Sh4.[C8] = .Range("E" & xLig).Value
Sh4.[D44] = .Range("F" & xLig).Value
Sh4.[D45] = .Range("G" & xLig).Value
'''Sh4.[D47] = .Range("H" & xLig).Value
'''Sh4.[D36] = .Range("j" & xLig).Value
For i = 18 To 42 'Copie ==> CODE ARTICLE DESIGNATION QTITE PUHT PRIX TOTAL HT
.Range(.Cells(xLig, xCol), .Cells(xLig, xCol + 4)).Copy
Sh4.Range("B" & i & ":F" & i).PasteSpecial Paste:=xlPasteValues
'''Sh4.Range("A" & i & ":E" & i).PasteSpecial Paste:=xlPasteValues
xCol = xCol + 5
Next i
Call QRCodeDuplic
Sh4.Range("K3").ClearContents
Sh4.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Application.ScreenUpdating = True
End Sub