Bonjour,
j'espère que votre absence de réponse n'illustre pas un mauvais comportement de ma part.
J'essaye vraiment de corriger mes lacunes (immenses) mais je pars de trop loin pour parvenir à corriger ce code dans des délais décents...
C'est pour cela que je me permets de faire appel à vous.
Le code est le suivant:
Sub CpyData()
If ActiveSheet.Name <> "Interface" Then Exit Sub
If IsEmpty([E4]) Or [C4] = "" Or [C5] = "" Or [C6] = "" Or [C7] = "" Then Exit Sub
Dim celX As Range, dlig As Byte, lig&, dv&: Application.ScreenUpdating = 0
With Worksheets("Liste")
lig = 7 + .ListObjects(1).ListRows.Count: Set celX = .Cells(lig, 1)
End With
dlig = [B250].End(xlUp).Row
For lig = 7 To dlig
dv = lig - 7
celX.Offset(dv) = [E4] 'Date
celX.Offset(dv, 1) = [C4] 'Type de piles
celX.Offset(dv, 2) = [C5] 'Quantité
celX.Offset(dv, 3) = [C6] 'Site
celX.Offset(dv, 4) = [C7] 'Localisation*
Next lig
Range("C4:C6" & dlig).ClearContents
End Sub
Je souhaite copier E4, C4:C7 à la suite (même ligne) dans le tableau situé sur la feuille "liste", en s'incrémentant au fur et à mesure dans le tableau.
Il y a une boucle qui écrit autant de fois qu'il y a de lignes dans le formulaire situé dans "Interface", et c'est cette boucle que j'aimerais tuer !!
Le mieux que j'ai réussi à faire c'est d'écrire une seule ligne, ok, mais hors tableau et toujours la-même, donc chaque saisie écrasant la précédente...
Cette nuance oblige-t-elle à réécrire tout le code ?
Merci à vous.