VBA - lier 2 fichiers

Bonjour,

Je pense que tu devrais en faire un autre sujet, tout neuf ! Ce sera plus attractif, et tu pourras mettre un titre explicite, utile pour attirer les spécialistes de graphiques.

Cordialement.

D'accord ça marche ! Merci pour l'info

Re MFerrand

Désolé, ce post remonte à loin ^^

J'avais juste une petite question :

    Function NSem(d) As Integer
        Dim dref
        dref = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 3)
        dref = dref - Weekday(dref) + 2
        NSem = (d - dref) \ 7 + 1
    End Function

    Sub CommandesJour()
        Dim dcm(2), wb As Workbook
        For Each wb In Workbooks
            If wb.Name Like "Tableau journalier*" Then Exit For
        Next wb
        With wb.Worksheets(1)
            dcm(1) = CLng(DateValue(Right(.Range("D1"), 10)))
            dcm(0) = NSem(dcm(1))
            dcm(2) = .Range("A" & .Rows.Count).End(xlUp).Row - 3
        End With
        With [Tableau2]
            .Cells(.Rows.Count + 1, 1).Resize(, 2).Value = dcm
        End With
        wb.Close False
    End Sub

Dans ton code, j'aimerais en fait faire une dernière chose : après avoir rempli le tableau, j'aimerais que à la même ligne, je puisse inscrire juste à droite, de nouveau la valeur de dcm(2). Mais je n'arrive pas à sélectionner la cellule juste à droite

Je pensais écrire :

With [Tableau2]
            .Cells(.Rows.Count + 1, 1).Resize(, 2).Value = dcm
             ActiveCell.Offset(0, 1).Select
        End With

Pas d'ActiveCell veux-tu ? Et encore moins de Select !

Tu ne sais pas quelle est la cellule active ! On pourrait aussi bien être sur une autre feuille...

Travaillant en VBA, le code doit faire son travail, qui n'apparaîtra qu'à la fin, une fois l'exécution achevée !

Sélectionner c'est bon en manuel, pas en VBA ! Si on demande au code de faire le travail, ce n'est pas pour le ralentir !

On doit coder avec la précision nécessaire pour que tout se déroule exactement comme on le souhaite, quelles que soient les circonstances !

Mais tu as une erreur non rectifiée : ...Resize(, 3) et non 2 ! Avec 2 la dernière valeur ne s'inscrit pas dans la dernière colonne.

Mais une fois qu'elle sera inscrite, pourquoi veux-tu la répéter dans une 4e colonne ?

Ah oui, j'ai oublié de rectifié Resize(,33).

J'ai besoin de l'inscrire dans la 4eme colonne car cette colonne correspond à la colonne où je vais indiquer les points qui ont une étiquette de données.

Alors cette 4eme colonne ne sert que pour un but graphique.

Alors comme je voudrais que le dernier point ait toujours une étiquette de données, je voulais à chaque nouvelle date ajouter la valeur dans la 4eme colonne également

Sinon peut être le simple, serait de redimentionner le tableau en ajoutant cette 4eme colonne au Tableau 2

Oui ! Elle sera de toute façon intégrée automatiquement au Tableau2...

Sub CommandesJour()
    Dim dcm(3), wb As Workbook
    For Each wb In Workbooks
        If wb.Name Like "Tableau journalier*" Then Exit For
    Next wb
    With wb.Worksheets(1)
        dcm(1) = CLng(DateValue(Right(.Range("D1"), 10)))
        dcm(0) = NSem(dcm(1))
        dcm(2) = .Range("A" & .Rows.Count).End(xlUp).Row - 3
        dcm(3) = dcm(2)
    End With
    With [Tableau2]
        .Cells(.Rows.Count + 1, 1).Resize(,4).Value = dcm
    End With
    wb.Close False
End Sub

Cordialement.

Rechercher des sujets similaires à "vba lier fichiers"