Sub UpdateSheet()
Dim NbLig%, NoCol%, Deb%, Fin%, Nom$, L%
On Error GoTo Erreur
Application.ScreenUpdating = False ' Figer écran
' Détermination de paramètres
NbLig = Application.CountIf(Sheets("Acceuil").Range("A10:A196"), ">0") ' Nombre de lignes à récuperer
Nom = ActiveSheet.Name ' Nom de la feuille active
NoCol = Application.Match(Nom, Sheets("Acceuil").[9:9], 0) ' N° de colonne à récupérer dans Acceuil
Deb = Application.Match("*quantité*", [D:D], 0) + 1 ' Début du tableau où ranger
Fin = Application.Match("*TOTAL HT*", [D:D], 0) - 1 ' Fin du tableau
' Préparation feuille
Rows(Deb & ":" & Fin).Hidden = False ' Toutes lignes démasquées
Range("A" & Deb & ":E" & Fin).ClearContents ' Effacement tableau
' Récupération infos
With Sheets("Acceuil")
Range("A" & Deb & ":B" & Deb + NbLig) = .Range("A10:B" & 10 + NbLig).Value ' Copier Coller valeurs Ref et Des.
Range("D" & Deb & ":D" & Deb + NbLig) = .Range("C10:C" & 10 + NbLig).Value ' Copier Qté
' Transfert données client de la bonne colonne
Range("C" & Deb & ":C" & Deb + NbLig) = .Range(.Cells(10, NoCol), .Cells(10 + NbLig, NoCol)).Value
' Calcul et masquage lignes
For L = Deb To Deb + NbLig
Cells(L, "E") = Cells(L, "C") * Cells(L, "D") ' Calcul montant TTC
Next L
Rows(Deb + NbLig & ":" & Fin).Hidden = True ' Masque les lignes vides.
End With
Exit Sub
Erreur:
MsgBox "Une erreur est intervenue." & Chr(10) & "Vérifiez vos données et leur emplacement."
End Sub