Microsoft 365 mettre à jour par une macro

gothc

XLDnaute Occasionnel
je cherche à mettre à jour par une macro ma feuil 2 avec les articles de la feuil 1 En R

en fonction du numéro et de la date du jour d'aujourd’hui uniquement

Merci de votre aide bonne soirée
je laisse mon fichier test joint
 

Pièces jointes

  • test (4).xlsm
    200.2 KB · Affichages: 12

Jacky67

XLDnaute Barbatruc
AAAhh!! Bonjour aussi,
Changer le code name des feuilles n'est pas une bonne idée🤯
Une proposition avec ce code
La Mise à jour se fait à l'activation de la feuille resultat
VB:
Private Sub Worksheet_Activate()
    Dim Plage, C As Range
    [e6:ne192].ClearContents
    With Feuil1
        Set Plage = .Range("s2:s" & .Cells(.Rows.Count, "S").End(xlUp).Row)
        For Each C In Plage
            If C.Offset(, -1) <> "" And C.Offset(, 2) <> "" Then
                On Error Resume Next ' si n° ou date inexistant
                Cells(Application.Match(C, [a:a], 0), Application.Match(C.Offset(, 2), [4:4], 0)) = C.Offset(, -1)
            End If
        Next
    End With
End Sub
 

Pièces jointes

  • test gothc.xlsm
    200 KB · Affichages: 6
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Goth, bonsoir le forum,

Essaie comme ça :

VB:
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DS As Date 'déclare la variable DS (Date Source)
Dim DJ As Date 'déclare la variable DJ (Date du Jour)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim LI As Integer 'déclare la variable LI (LIgne)

Set OS = Worksheets("feuil1") 'définit l'onglet OS
Set OD = Worksheets("feuil2") 'définit l'onglet OD
DL = OS.Cells(Application.Rows.Count, "U").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne U de l'ongtlet OS
TV = OS.Range("R1:U" & DL) 'définit la tableau des valeurs TV
DJ = Date 'définit la date du jour DJ
COL = OD.Rows(4).Find(DJ, , xlFormulas, xlWhole).Column 'définit la colonne COL (recherche la date du jour dans la ligne 4 de l'onglet OD)
For I = 2 To DL 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    DS = DateSerial(Year(TV(I, 4)), Month(TV(I, 4)), Day(TV(I, 4))) 'définit la date source DS (date de la donnée ligne I colonne 4 de TV)
    If DS = DJ Then 'condition : si les dates correspondent
        LI = OD.Columns(1).Find(TV(I, 2), , xlValues, xlWhole).Row 'définit la ligne LI (recherche la valeur exacte de la donnée ligne I colonne 2 de TV [le numéro], dans la colonne 1 de l'onglet OD)
        OD.Cells(LI, COL).Value = TV(I, 1) 'renvoie la donnée ligne I colonne 1 de TV [le produit], dans la celllule ligne LI, colonne COL de l'onglet OD
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub
 

gothc

XLDnaute Occasionnel
Bonjour le forum
j'ai une autre question sur l'onglet feuil2 peut-on quand je sélectionne l'onglet que la date du jour entre e4 et ne4 soit sélectionner automatiquement
je pense que oui sur la feuil2 je laisse le début du code que je pense correcte
Merci de votre aide
VB:
Private Sub Worksheet_Activate()
Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Feuil2")
    wks.Range
 

Jacky67

XLDnaute Barbatruc
Bonjour le forum
j'ai une autre question sur l'onglet feuil2 peut-on quand je sélectionne l'onglet que la date du jour entre e4 et ne4 soit sélectionner automatiquement
je pense que oui sur la feuil2 je laisse le début du code que je pense correcte
Merci de votre aide
VB:
Private Sub Worksheet_Activate()
Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Feuil2")
    wks.Range
Re..
Il est inutile de spécifier la feuille, puisque ce sera à l'activation de celle-ci
Ceci devrait faire
VB:
Private Sub Worksheet_Activate()
  Application.Goto Range("4:4").Find(Date) , True
  ',true(facultatif) met en première colonne du tableau
End Sub
 

Discussions similaires

Réponses
5
Affichages
341
Réponses
5
Affichages
193

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87