Faire communiquer deux classeurs

Bonjour,

Je cherche à faire communiquer deux classeurs, de telle sorte que les infos entrées dans le "classeur1" se retrouvent dans le classeur "main courante" par le biais d'une commande.

Les deux classeurs se trouvent dans le même répertoire.

J'ai essayé par l'enregistreur de macro mais impossible de copier plusieurs cellules..

L'idéal étant je pense une fonction copier / coller sur la première ligne vide.

Pour compliquer un peu, les valeurs des cellules "F7 à F9" sont variable alors que le type d'intervention sera toujours "contrôle annuel"

Merci beaucoup

86main-courante.xls (13.50 Ko)
61classeur1.zip (7.85 Ko)

Bonjour

Cela te convient-il ?

151classeur1.zip (12.34 Ko)
155main-courante.xls (14.00 Ko)

Bonjour,

Merci beaucoup pour ton aide.

Petite question, quel est l'interet de mettre le code dans un module et non pas directement dans le commandButton.

Ne me reste plus qu'à rajouter l'ouverture / fermeture du fichier "main courante" ce qui ne devrait pas me poser trop de problème.

Tu écris :

Petite question, quel est l'interet de mettre le code dans un module et non pas directement dans le commandButton.

J'ai pris l'habitude de mettre des zones de texte en guise de bouton de commande pour pouvoir en modifier la forme et la couleur...

Bye !

Je me suis rendu compte qu'il me manquait quelque chose de fondamental.

Il me faut plusieurs mains courantes... du coup j'ai rajouté un onglet et aurais aimé écrire un code de ce type:

Workbooks.Open Filename:=ThisWorkbook.Path & "\ Base main courante.xls"
    For Each W In Workbooks
        If W.Name = "Base main courante.xls" Then
        If Range("G6").Value = "ESPACES VERTS URBAINS" Then
                With Workbooks("Base main courante.xls").Sheets("evu")
        If Range("G6").Value = "EDUCATION" Then
                With Workbooks("Base main courante.xls").Sheets("education")
                Ln = .Range("A" & Rows.Count).End(xlUp).Row + 1
                .Range("A" & Ln).Value = Range("F7").Value
                .Range("B" & Ln).Value = Range("F9").Value
                .Range("C" & Ln).Value = "contrôle annuel"
                .Range("D" & Ln).Value = Range("F8").Value
            End With
            ActiveWorkbook.Save
    ActiveWorkbook.Close
            MsgBox "Main courante renseignée"
            End
        End If
    Next W
    MsgBox "Vous devez ouvrir votre classeur ''main courante'' !", 16

End Sub

Bien evidement ça ne marche pas, j'ai utilisé ton code que j'ai sorti de son module pour une question de facilité pour moi, jy ai rajouté deux trois bidouilles qui marchent bien.

Est-ce que je peux abuser encore un peu de ta gentillesse.

Merci

Bonjour

A regarder ta macro, je ne comprends bien qu'une chose : c'est qu'elle ne marche pas.

Il me serait plus utile de disposer du ou des documents d'où tu parts et de savoir ce que tu veux en faire.

A te lire.

Bonjour,

J'ai essayé avec mes trop maigres connaissances de "bidouiller" quelque chose, qui de toute évidence ne peut marcher, j'en suis conscient.

En fait j'ai rajouté une petite liste déroulante "Gestionnaire" qui permet de selectionner "A" ou "B" et en fonction de ce choix, je voudrais renseigner la main courante sur la feuille "A" ou "B"

Merci pour le temps que vous avez déjà mis à ma disposition et pour celui que vous voudrez bien encore m'accorder.

Jeremy

35classeur1.zip (13.27 Ko)

Bonjour

Cela te convient-il ?

99classeur1-v.zip (12.94 Ko)

Merci beaucoup, c'est parfait !!

Rechercher des sujets similaires à "communiquer deux classeurs"