Filtre, copier et coller dans un autre classe
Résolu/Fermé
A voir également:
- Filtre, copier et coller dans un autre classe
- Copier coller pdf - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Retrouver un copier-coller android - Guide
- Copier-coller - Accueil - Windows
- Symbole clavier copier coller - Guide
7 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 oct. 2007 à 04:40
17 oct. 2007 à 04:40
bonjour,
En jetant un oeil vite fait, je constate que tu déclares un index i mais tu ne l'incrémentes pas dans la boucle du while ??? i garde donc toujours la valeur de 1. La ligne avant le Wend ajoute : i = i + 1.
Pour le reste je ne sais pas, je ne suis pas spécialiste des macros excel :o(
En jetant un oeil vite fait, je constate que tu déclares un index i mais tu ne l'incrémentes pas dans la boucle du while ??? i garde donc toujours la valeur de 1. La ligne avant le Wend ajoute : i = i + 1.
Pour le reste je ne sais pas, je ne suis pas spécialiste des macros excel :o(
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
17 oct. 2007 à 07:42
17 oct. 2007 à 07:42
Bonjour,
invrementer comme dit polux31 et aussi reactiver ta feuille "Balance holding.xls" en debut de boucle.
Mais si tu dois faire ça avec tout les comptes regarde 'Données / Consolider..." (regarde l'aide excel sur 'consolider') si ce n'est pas adapté à ton problème.
eric
invrementer comme dit polux31 et aussi reactiver ta feuille "Balance holding.xls" en debut de boucle.
Mais si tu dois faire ça avec tout les comptes regarde 'Données / Consolider..." (regarde l'aide excel sur 'consolider') si ce n'est pas adapté à ton problème.
eric
Papou93
Messages postés
146
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
5 juin 2012
59
17 oct. 2007 à 10:41
17 oct. 2007 à 10:41
Bonjour,
Polux31 et eriiic ont parfaitement raison.
Toutefois, il n'est pas indispensable d'activer les classeurs et les feuilles dans les opérations de filtrage ou de copier-coller : mentionner le nom du classeur suivi du nom (ou de l'index' de la feuille fonctionne tout aussi bien. Celà a l'avantage d'accélérer l'éxécution du code.
Par contre, tu ne peux pas utilier le filtre dans ta boucle de recopie, car les lignes cachées sont "intégrées dans le While...Wend. Il te faut donc tester chaque valeur dans la colonne A:A, et faire le copier-coller si la valeur est "70601000".
Je te propose donc la macro suivante :
J'espère que ces explications t'aideront, sinon n'hésites pas à en redemander.
Cordialement.
Polux31 et eriiic ont parfaitement raison.
Toutefois, il n'est pas indispensable d'activer les classeurs et les feuilles dans les opérations de filtrage ou de copier-coller : mentionner le nom du classeur suivi du nom (ou de l'index' de la feuille fonctionne tout aussi bien. Celà a l'avantage d'accélérer l'éxécution du code.
Workbooks("Balance holding").Sheets(1).Columns("A:A").AutoFilter Field:=1, Criteria1:="=70601000", Operator:=xlAnd
Par contre, tu ne peux pas utilier le filtre dans ta boucle de recopie, car les lignes cachées sont "intégrées dans le While...Wend. Il te faut donc tester chaque valeur dans la colonne A:A, et faire le copier-coller si la valeur est "70601000".
Je te propose donc la macro suivante :
Sub Macro1() With WorkBooks("Balance holding").sheets(1) .Range("A:A").AutoFilter , Field:=1, Criteria1:="<70601000>", Operator:= xlAnd Dim i As Integer i = 1 While .Cells(i, 1) <> "" '1 représente ici la colonne If .Cells(i,1)="70601000" Then .Cells(i, 1).Copy WorkBooks("Ventilation des charges").Range("A12:c12").PasteSpecial Operation = xlPasteSpecialOperationAdd Wend End With End Sub
J'espère que ces explications t'aideront, sinon n'hésites pas à en redemander.
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci à vous...
Hier en faite j'ai continué à chercher et j'ai trouvé :
Private Sub Transfert_donnees_Click()
Windows("Balance holding.xls").Activate
Sheets("Feuil1").Select
Selection.AutoFilter Field:=1, Criteria1:="=70601000", Operator:=xlAnd
Cells(1, 1).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Ventilation des charges.xls").Activate
Feuil1.Range("A12:A12").PasteSpecial
Operation = xlPasteSpecialOperationNone
End Sub
Ca fonctionne mais le suel problème c'est que ça me prend la première ligne...
Et lorsque je met Cells (2,1) Ca ma prend bien que le compte 70601000 mais cependant ne me prend pas les colonnes C et D car dans la C il y a un vide...
Merci à vous...
Hier en faite j'ai continué à chercher et j'ai trouvé :
Private Sub Transfert_donnees_Click()
Windows("Balance holding.xls").Activate
Sheets("Feuil1").Select
Selection.AutoFilter Field:=1, Criteria1:="=70601000", Operator:=xlAnd
Cells(1, 1).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Ventilation des charges.xls").Activate
Feuil1.Range("A12:A12").PasteSpecial
Operation = xlPasteSpecialOperationNone
End Sub
Ca fonctionne mais le suel problème c'est que ça me prend la première ligne...
Et lorsque je met Cells (2,1) Ca ma prend bien que le compte 70601000 mais cependant ne me prend pas les colonnes C et D car dans la C il y a un vide...
Papou93
Messages postés
146
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
5 juin 2012
59
17 oct. 2007 à 11:39
17 oct. 2007 à 11:39
Re-bonjour,
Essaies en remplaçant :
par :
Cordialement.
Essaies en remplaçant :
Cells(1, 1).Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy
par :
Range(Cells(1, 1), Cells(Cells(1, 1).End(xlDown).Row, Cells(1, 1).End(xlToRight).Column)).copy
Cordialement.