Copie de lignes sous condition vers classeur fermé

heparti

XLDnaute Occasionnel
Bonjour,

Je parcours depuis longtemps ce site/forum que j'adore et je fais appel à nouveau à vos compétences.

En effet, je souhaite copier des lignes sous condition vers un fichier fermé se trouvant dans le même répertoire

La condition est que si la cellule de la colonne 9 contient "2013", elle soit recopiée vers le classeur nommé "copie.xls".

L'idéal serait que l'exécution de la macro se fasse pas appui sur un bouton visible sur chaque feuille du classeur "récapitulatifs IND.xls"

Avec la macro existante et présente dans le fichier "récapitulatifs IND.xls", j'arrive à faire la copie mais uniquement vers une feuille du même classeur.

Chaque classeur est en pièce jointe.

Merci pour votre aide.
 

Pièces jointes

  • récapitulatifs IND.xls
    58.5 KB · Affichages: 39
  • copie.xls
    25.5 KB · Affichages: 31
  • copie.xls
    25.5 KB · Affichages: 36
  • copie.xls
    25.5 KB · Affichages: 38

Misange

XLDnaute Barbatruc
Re : Copie de lignes sous condition vers classeur fermé

Bonjour

écrire dans une feuille ou dans un classeur n'a pas grand chose à voir avec le fait d'écrire dans un classeur fermé.
Si tu tiens mordicus à ne pas ouvrir ce classeur (pourquoi ne pas l'ouvrir par macro, écrire pûis le refermer toujours par macro ?) alors inspire toi de ceci
Ce lien n'existe plus
mais ce n'est pas très simple.
 

heparti

XLDnaute Occasionnel
Re : Copie de lignes sous condition vers classeur fermé

Je suis tout à fait pour l'ouverture du second fichier par le biais d'une macro.

La macro présente dans le premier fichier peut être supprimée, c'était simplement un exemple de ce que j'avais pu faire, sans parvenir à ouvrir un fichier fermé pour transférer les lignes.
 

Misange

XLDnaute Barbatruc
Re : Copie de lignes sous condition vers classeur fermé

Alors essaie ce code

Code:
Sub copiesauvegarde()
Dim ClassDep As Workbook
Dim ClassArr As Workbook
Dim i As Integer
Dim k As Integer
Dim L As Integer

Set ClassDep = ThisWorkbook
Set ClassArr = Workbooks.Open(Filename:="classeur1.xlsx") 'là il faut que tu indiques le chemin du classeur et son nom, ou 'seulement son nom si il est dans le même dossier que le classeur contenant la macro

With ClassDep.Sheets("IND")
k = .Range("A1").End(xlDown).Row
    For L = 2 To k
        If Year(.Range("I" & L).Value2) = 2013 Then
            i = i + 1
            .Range("A" & L, .Range("P" & L)).Copy _
            Destination:=ClassArr.Sheets("feuil1").Range("A" & i)
        End If
    Next
End With
ClassArr.Close True
End Sub
 

Misange

XLDnaute Barbatruc
Re : Copie de lignes sous condition vers classeur fermé

Oui il te suffit d'aller dans le menu développeur/contrôles/insérer et tu chosis un bouton dans la rubrique contrôle activeX
Tu l'insères dans ta feuille (tu peux modifier son aspect, le texte dessus)
quand tu cliques dessus, dans le module de la feuille ou il se trouve cela crée une macro vide
il te suffit d'ajouter dans cette macro l'appel à copiesauvegarde

Code:
Private Sub CommandButton1_Click()
copiesauvegarde
End Sub

en cliquant sur ce bouton cela lancera la macro.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

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