Re,
Dans le classeur que je t'ai envoyé, sur la première feuille tu as un bouton qui déclenche la macro qui se trouve dans le module, mais j'aurai très bien pu mettre le code dans les propriétés du bouton ce qui m'aurait évité d'insérer un module. Dans l'exemple j’ai mis le nom de la macro "Macro2"
Private Sub CommandButton1_Click()
Macro2
End Sub
Sur la feuille 2 le code est dans les propriétés de la feuille (clic droit sur l'onglet et visualiser le code). L'intérêt est son déclenchement automatique qui est lié aux saisies de la colonne H
Pour ta question
"Range(ActiveCell, Active Cell.Offset (0, 4) ) .Copy "
sur une ligne précédente, ce code sélectionne la cellule 7 colonne à gauche à partir de la cellule ou il est saisi "ec" autrement dit la cellule colonne A sur la même ligne
.Cells(Lig, Col).Offset(0, -7).Select
et cette ligne
"Range(ActiveCell, Active Cell.Offset (0, 4) ) .Copy "
sélectionne la plage de la cellule colonne A à la cellule 4 rangs à droite de A, c'est à dire de A à E pour la copier
Plus haut dans le code, cette ligne, recopie les formules de la colonne I et J deux lignes plus basses que la cellule ou est saisi "ec".
Range([I3], [J65536].End(xlUp).Offset(2, 0)).PasteSpecial Paste:=xlPasteFormulas
Si sur plusieurs lignes à la suite il n'est pas saisi "ec" il est possible que des lignes ne soient pas renseignées. Pour une marge de sécurité il est possible d'augmenter la copie des formules d'une dizaine de lignes voire plus
Range([I3], [J65536].End(xlUp).Offset(10, 0)).PasteSpecial Paste:=xlPasteFormulas
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.