Copier partie d'un classeur dans un autre classeur

Bonjour,

J'essaye de copier une partie d'un classeur dans un autre classeur. Simple au demeurant. Mais ça se complique pour moi car il faut que les cellules, du classeur copié, lorsqu'elles sont modifiées ou ajoutées soient aussi soient répercutées dans le deuxième classeur.

Merci à vous pour votre aide et bonne journée

Cordialement

Salut et bienvenue sur le Forum,

Si je t'ai bien compris, tu as par exemple copié les cellules A1:B10 du classeur A dans le classeur B (Classeur B qui je présume évolue aussi de son coté, à l'exception des cellules A1:B10) et tu voudrais que si les cellules A1:B10 sont modifiées dans le classeur A, elles le soient aussi dans le classeur B ?

Si c'est bien le cas, pourquoi ne pas actualiser les cellules A1:B10 du classeur B à un certain moment donné, par exemple lors de la fermeture du classeur A ?

Si tu avais un petit bout de fichier exemple .....

A te relire.

Bonjour et merci d'essayer de résoudre mon problème.

Tu as bien compris ma demande. C'est concrètement faire apparaître le planning d'un intervenant sur deux classeurs (cet intervenant travaille pour deux services différents) sans à avoir à taper deux fois la même chose.

Peux-tu m'expliquer comment effectuer la MAJ dès que l'on ferme un classeur.

Grand merci et bonne journée

Bonjour,

Pour une mise à jour, tu peux utiliser soit une liaison entre les classeurs du style "='F:\[Classeur2.xls]Feuil1'!A2", soit le code ci-dessous qui est à mettre dans le module de la feuille sur l'évènement "Change". La mise à jour se fait à l'aide d'une connexion ADO. Avant de faire un essai, lis bien les commentaires dans le code :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim ConCL As Object
    Dim Rs As Object
    Dim Classeur As String
    Dim NomFeuille As String
    Dim Plage As String
    Dim Valeur

    'plage où la mise à jour doit être faite, à adapter
    If Not Intersect(Target, [A1:B10]) Is Nothing Then

        'chemin du classeur cible, à adapter
        Classeur = "F:\Test\Classeur2.xls"

        'nom de la feuille où se trouve la cellule
        NomFeuille = "Feuil1"

        'valeur à inscrire
        Valeur = Target.Value

        'adresse de la cellule à mettre à jour sous la forme "A1:A1"
        'attention ! les plages des classeurs doivent être identiques
        'sinon, modifier ici pour la construction de l'adresse de la cellule cible
        Plage = Target.Address(0, 0) & ":" & Target.Address(0, 0)

        'connexion au classeur avec ADO
        ConClasseur ConCL, Classeur, Rs

        'mise à jour
        With Rs

            .CursorType = 1
            .LockType = 3
            .Open "SELECT * FROM `" & NomFeuille & "$" & _
                  Plage & "` ", ConCL
            .Fields(0).Value = Valeur
            .Update

        End With

        'fermeture de la conn
        ConCL.Close

    End If

    Set Rs = Nothing
    Set ConCL = Nothing

End Sub

Private Sub ConClasseur(Con_CL As Object, _
                        Fichier As String, _
                        Optional Rs)

    Set Con_CL = CreateObject("ADODB.Connection")

    If Not IsMissing(Rs) Then

        Set Rs = CreateObject("ADODB.Recordset")

    End If

    Con_CL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & Fichier & ";" & _
                "Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""

End Sub

Hervé.

Rechercher des sujets similaires à "copier partie classeur"