Copier automatiquement d'un classeur vers un autre avec CONDITIO
Résolu
verocran
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 14946 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je n’y arrive pas, même en essayant de modifier des macros trouvées. (Je suis nulle en macro et VBA en règle générale)
Voici mon problème :
J’ai un classeur (qui sera la source) où il y a une feuille nommée « ANNEE 2017 » qui reprend toutes les données mensuelles de l’année. (ma feuille comporte des titres et ces données sont copiées avec le bouton "copier avec liaison")
Dans la colonne E se trouve différents noms de la condition.
J’aimerai que dans un autre classeur sur une feuille nommée « DEPENSE », lorsque l’on rencontre un nom bien défini (par ex : ARTHUR) , il me copie automatiquement toutes les lignes où il rencontrera le nom ARTHUR (partant de la ligne "3" et les colonnes de" B à J"). s'il ne rencontre pas ce nom, il ne copie pas bien entendu.
Pour le moment, je le fais au moyen des filtres, mais c’est fastidieux, j’ai des doublons ou des oublis. donc je suis obligée à chaque clôture du classeur de destination de vérifier ligne par ligne.
Une bonne âme pourrait-elle me venir en aide ?
Merci
Je n’y arrive pas, même en essayant de modifier des macros trouvées. (Je suis nulle en macro et VBA en règle générale)
Voici mon problème :
J’ai un classeur (qui sera la source) où il y a une feuille nommée « ANNEE 2017 » qui reprend toutes les données mensuelles de l’année. (ma feuille comporte des titres et ces données sont copiées avec le bouton "copier avec liaison")
Dans la colonne E se trouve différents noms de la condition.
J’aimerai que dans un autre classeur sur une feuille nommée « DEPENSE », lorsque l’on rencontre un nom bien défini (par ex : ARTHUR) , il me copie automatiquement toutes les lignes où il rencontrera le nom ARTHUR (partant de la ligne "3" et les colonnes de" B à J"). s'il ne rencontre pas ce nom, il ne copie pas bien entendu.
Pour le moment, je le fais au moyen des filtres, mais c’est fastidieux, j’ai des doublons ou des oublis. donc je suis obligée à chaque clôture du classeur de destination de vérifier ligne par ligne.
Une bonne âme pourrait-elle me venir en aide ?
Merci
A voir également:
- Copier automatiquement d'un classeur vers un autre avec CONDITIO
- Copier un disque dur sur un autre - Guide
- Retrouver un copier-coller android - Guide
- Comment copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
- Comment copier un mail - Guide
6 réponses
Bonjour,
je le fais au moyen des filtres
Cela me semble la bonne méthode.
j’ai des doublons ou des oublis
Cela veut-il dire que dans ta feuille nommée « DEPENSE » tu ne veux avoir que ce qui est dans ta feuille nommée « ANNEE 2017 » concernant le nom bien défini ?
Si c'est le cas, il faut supprimer ce qui existe déjà avant de faire la copie ?
je le fais au moyen des filtres
Cela me semble la bonne méthode.
j’ai des doublons ou des oublis
Cela veut-il dire que dans ta feuille nommée « DEPENSE » tu ne veux avoir que ce qui est dans ta feuille nommée « ANNEE 2017 » concernant le nom bien défini ?
Si c'est le cas, il faut supprimer ce qui existe déjà avant de faire la copie ?
Bonjour,
Pardon d'avoir mal compris
J'aimerai bien pouvoir garder le nom de référence "Arthur" de la condition sur la feuille "dépense".
Pardon d'avoir mal compris
J'aimerai bien pouvoir garder le nom de référence "Arthur" de la condition sur la feuille "dépense".
Bonjour,
Ce que tu veux est assez simple à réaliser mais tes explications ne sont pas suffisamment explicites si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
Ce que tu veux est assez simple à réaliser mais tes explications ne sont pas suffisamment explicites si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
http://www.cjoint.com/c/GJwlnChxZGP
Bonjour,
La source est le classeur ex compta 2017 - feuille annee 2017
La destination est le classeur ex Arthur - feuille depense
Sur la feuille depense du classeur" Arthur", j'ai mis ce qui devrait se copier automatiquement (enfin c'est mon souhait). Pour le moment je le copie à l'aide du filtre
Merci beaucoup
Bonjour,
La source est le classeur ex compta 2017 - feuille annee 2017
La destination est le classeur ex Arthur - feuille depense
Sur la feuille depense du classeur" Arthur", j'ai mis ce qui devrait se copier automatiquement (enfin c'est mon souhait). Pour le moment je le copie à l'aide du filtre
Merci beaucoup
Re
Ton classeur source avec la macro de transfert :
https://mon-partage.fr/f/Hscqc2C3/
Ctrl+Maj+T pour lancer la macro
ALT+F11 pour voir le code annoté
Cdlmnt
Via
Ton classeur source avec la macro de transfert :
https://mon-partage.fr/f/Hscqc2C3/
Ctrl+Maj+T pour lancer la macro
ALT+F11 pour voir le code annoté
Cdlmnt
Via
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour à tous,
Je propose une autre façon de faire qui utilise les filtres et tient compte du format tableau de la feuille DEPENSE avec ce code.
Il faut exécuter la procédure "Lancer"
Bon test
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Je propose une autre façon de faire qui utilise les filtres et tient compte du format tableau de la feuille DEPENSE avec ce code.
Il faut exécuter la procédure "Lancer"
Option Explicit Public Sub Lancer() Dim nom As String nom = InputBox("Indiquer le nom de la catégorie à transférer") If nom <> "" Then Call copie(nom) End Sub Public Sub copie(nom) Const ndf = "ANNEE 2017" 'nom de la feuille à copier Dim cla As Workbook, feu As Worksheet, ws As Worksheet Dim lig As Long, nbs As Long, cls As Long For Each cla In Workbooks ' recherche classeur If cla.Name <> ThisWorkbook.Name Then For Each feu In cla.Sheets ' recherche feuille If feu.Name = "DEPENSE" Then Set ws = Workbooks(cla.Name).Sheets(feu.Name) With ThisWorkbook.Sheets(ndf) ' recherche noms présents If Application.CountIf(ws.Columns(4), nom) > 0 Then MsgBox "présence du nom choisi dans DEPENSE" End If lig = ws.Range("Tableau1[Colonne1]").Find("").Row .Range("$A$3:$J$" & .UsedRange.Rows.Count).AutoFilter Field:=4, Criteria1:=nom nbs = .Range("D3:D" & .Cells(Rows.Count, "D").End(xlUp).Row).SpecialCells(xlVisible).Count If .Cells(Rows.Count, "D").End(xlUp).Row > 2 Then ' copie éléments sélectionnés For cls = nbs To 1 Step -1 ws.Cells(lig, "A").ListObject.ListRows.Add AlwaysInsert:=False Next cls .Range("B3:I" & .UsedRange.Rows.Count).SpecialCells(xlVisible).Copy ws.Cells(lig, "A").PasteSpecial xlPasteValues .Range("J3:J" & .UsedRange.Rows.Count).SpecialCells(xlVisible).Copy ws.Cells(lig, "J").PasteSpecial xlPasteValues MsgBox nbs & " lignes copiées" Else MsgBox "Pas de lignes à copier" End If .Range("$A$3:$J$" & .UsedRange.Rows.Count).AutoFilter Field:=4 End With End If Next feu End If Next cla If ws Is Nothing Then MsgBox "pas de feuille DEPENSE ouverte" End Sub
Bon test
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Oui c’est bien ce que j,aimerai.
Je veux que sur ma feuille « dépense » ne soit copié que les lignes de la feuille « année 2017 » ou se trouve la référence « Arthur ». Et surtout il ne faut qu’aucune cellule ne soit supprimée dans la’ feuille Anne 2017.
Merci
surtout il ne faut qu’aucune cellule ne soit supprimée dans la’ feuille Anne 2017
Ce n'était pas la question posée. Si tu ne veux pas de doubles, il faudrait supprimer « Arthur » sur ta feuille « dépense » avant la copie ?