XL 2016 copier coller en fonction de la date

gothc

XLDnaute Occasionnel
Bonjour le forum je cherche à mettre à jour mon onglet feuil1 avec les informations de l'onglet info en fonction de la date de l'onglet info A4
merci de votre aide
 

Pièces jointes

  • test.xlsx
    65.5 KB · Affichages: 12

JHA

XLDnaute Barbatruc
Bonjour à tous,

Si tu veux mettre à jour chaque jour sans effacer les anciennes données dans "Feuil1", il faut passer par du code VBA mais désolé, ce n'est pas pour moi car je suis nul en macro.

Autrement, si tu ne veux qu'une seule ligne, voici une méthode.

JHA
 

Pièces jointes

  • test.xlsx
    105.5 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Gothc, JHA,
Un essai en PJ.
La mise à jour se fait par appui sur GO.
Toutes les lignes dans Info sont traitées.
Par la même occasion j'ai supprimé toutes les formules en Feuil1 et calculais en macro.
VB:
Sub MAJ()
On Error GoTo Fin
' Cr donne le N° de colonne à copier
' Cw le N° de colonne où il faut coller
Cr = Array(2, 3, 4, 8, 11, 15, 19, 22, 25, 29, 33, 37)
Cw = Array(2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23)
' Dernière ligne à traiter
DerLig = 4 + Application.WorksheetFunction.CountA(Range("A4:A1000"))
For L = 4 To DerLig
    IndexW = Application.Match(Cells(L, 1), Sheets("Feuil1").Range("A:A"), 0)
    For c = 0 To UBound(Cr)
        Sheets("Feuil1").Cells(IndexW, Cw(c)) = Cells(L, Cr(c))
    Next c
    For c = 4 To 24 Step 4
        Sheets("Feuil1").Cells(IndexW, c) = Sheets("Feuil1").Cells(IndexW, c - 2) - Sheets("Feuil1").Cells(IndexW, c - 1)
        Sheets("Feuil1").Cells(IndexW, c + 1) = Sheets("Feuil1").Cells(IndexW, c) / Sheets("Feuil1").Cells(IndexW, c - 2)
    Next c
Next L
Fin:
End Sub
 

Pièces jointes

  • test (19).xlsm
    52.8 KB · Affichages: 10

gothc

XLDnaute Occasionnel
Bonjour Gothc, JHA,
Un essai en PJ.
La mise à jour se fait par appui sur GO.
Toutes les lignes dans Info sont traitées.
Par la même occasion j'ai supprimé toutes les formules en Feuil1 et calculais en macro.
VB:
Sub MAJ()
On Error GoTo Fin
' Cr donne le N° de colonne à copier
' Cw le N° de colonne où il faut coller
Cr = Array(2, 3, 4, 8, 11, 15, 19, 22, 25, 29, 33, 37)
Cw = Array(2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23)
' Dernière ligne à traiter
DerLig = 4 + Application.WorksheetFunction.CountA(Range("A4:A1000"))
For L = 4 To DerLig
    IndexW = Application.Match(Cells(L, 1), Sheets("Feuil1").Range("A:A"), 0)
    For c = 0 To UBound(Cr)
        Sheets("Feuil1").Cells(IndexW, Cw(c)) = Cells(L, Cr(c))
    Next c
    For c = 4 To 24 Step 4
        Sheets("Feuil1").Cells(IndexW, c) = Sheets("Feuil1").Cells(IndexW, c - 2) - Sheets("Feuil1").Cells(IndexW, c - 1)
        Sheets("Feuil1").Cells(IndexW, c + 1) = Sheets("Feuil1").Cells(IndexW, c) / Sheets("Feuil1").Cells(IndexW, c - 2)
    Next c
Next L
Fin:
End Sub
Merci beaucoup de votre réponse bonne journée à vous
 

Discussions similaires

Réponses
6
Affichages
256
Réponses
56
Affichages
905