A voir également:
- Trier une feuille de calcul selon critères
- Trier sur excel - Guide
- Calcul moyenne excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment supprimer une feuille sur word - Guide
- Bruler une feuille de laurier - Guide
9 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
29 juil. 2009 à 16:24
29 juil. 2009 à 16:24
En d'autres termes, on test pour toutes les lignes si la colonne A contient la valeur X et on copie les lignes qui ont cette valeur, puis on test pour toutes les lignes si la colonne B contient la valeur Y et on copie les lignes qui ont cette valeur, ect....
Mais si la condition en A est vraie, tu copie la ligne , OK ? alors plus besoin de tester B et de copier une deuxième fois la ligne ?
Tu dis.
A+
Mais si la condition en A est vraie, tu copie la ligne , OK ? alors plus besoin de tester B et de copier une deuxième fois la ligne ?
Tu dis.
A+
Oui tu as très bien compris, mais peut m'importe les doublons. Ce que je cherche c'est une macro qui teste toute ligne et si le critère C1 (présence de la valuer X dans la colonne 1) ou si le critère C2 ( présence de la valeur Y dans la colonne 2) ou si ect ..... la ligne soit copier dans une nouvelle feuille.
c'est assez difficile à expliquer par écrit.
merci bcp pour ta réponse
c'est assez difficile à expliquer par écrit.
merci bcp pour ta réponse
Excuse moi j'ai dit" peut m'importe les doublons" mais je suis suiffisamment deseperé que les doublons je m'en fiche.
Voilà peut-etre une structure qui te permettra de mieux comprendre la cause de mon futur suicide ^^^(je dec') (enfin c'est comme ca que j'entraperçois la macro)
Quandclic_bouton 1
Dans feuille 1
Pour ligne 1 à infini
test Critère 1 ou Critere 2 ou Critère 3 ou Critère 4
si OK -> copie ligne dans feuille 1bis
Fin si
Fin boucle
Fin macro
Comme ça, les lignes répondant aux critères choisis seront alors copiées les unes a la suite des autres dans la feuille 1bis.
Quandclic_bouton 1
Dans feuille 1
Pour ligne 1 à infini
test Critère 1 ou Critere 2 ou Critère 3 ou Critère 4
si OK -> copie ligne dans feuille 1bis
Fin si
Fin boucle
Fin macro
Comme ça, les lignes répondant aux critères choisis seront alors copiées les unes a la suite des autres dans la feuille 1bis.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
29 juil. 2009 à 17:35
29 juil. 2009 à 17:35
Une piste !! ??
Tu dis.
Sub RecopionsLignes() Dim Lig As Long Dim LigC As Long 'supposons le nom de ta nouvelle feuille = "Recopie" 'puisque, en principe c'est une nouvelle feuille, commenbce la copie à la ligne 2 LigC = 1 For Lig = 1 To Range("A65536").End(xlUp).Row If Cells(Lig, 1) = "X" Or Cells(Lig, 2) = "Y" Or Cells(Lig, 3) = "Z" Then LigC = LigC + 1 Rows(Lig).Copy Sheets("Recopie").Rows(LigC) End If Next Lig End Sub
Tu dis.
Je crois que ca m'avance beaucoup...merci beaucoup....mais pourrais-tu la detailler un peu pour que j'aprenne un peu ca que tout cela veut dire stp...
Excuse-moi si je te bouffe ton tmps, dsl et merci beaucoup.
Excuse-moi si je te bouffe ton tmps, dsl et merci beaucoup.
Pour tout te dire, je me demande:
-ou on voit sur quelle feuille s'exécute la macro( d'ou les lignes vont etre copier) ?
-ou on voit sur quelle colonne on test la valeur?
-et quelle ligne de code commande la création d'une feuille?
-ou on voit sur quelle feuille s'exécute la macro( d'ou les lignes vont etre copier) ?
-ou on voit sur quelle colonne on test la valeur?
-et quelle ligne de code commande la création d'une feuille?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
30 juil. 2009 à 14:40
30 juil. 2009 à 14:40
pas de problème, j'explique
Tu ajoute une feuille, par VBA ou en manuel ?
Commencons par "en manuel" , ajoute une feuille que tu renomme (l'onglet) avec Recopie , attention qu'il n'y ai pas des espaces non voulu dans le nom sinon ça plante.
Ensuite, renomme la feuille où tu a tes données Base
Maintenant ça va être plus clair
Il y a bien sûr moyen de faire plus cour mais c'est pour t'aider à comprendre.
Et quand tu aurras bien compris tu peu remplacer par.
Ca ferra la même chose.
Tu dis..
A+
Tu ajoute une feuille, par VBA ou en manuel ?
Commencons par "en manuel" , ajoute une feuille que tu renomme (l'onglet) avec Recopie , attention qu'il n'y ai pas des espaces non voulu dans le nom sinon ça plante.
Ensuite, renomme la feuille où tu a tes données Base
Maintenant ça va être plus clair
Sub RecopionsLignes() Dim Lig As Long Dim LigC As Long 'supposons le nom de ta nouvelle feuille = "Recopie" 'puisque, en principe c'est une nouvelle feuille, commenbce la copie à la ligne 2 LigC = 1 For Lig = 1 To Sheets("Base").Range("A65536").End(xlUp).Row If Sheets("Base").Cells(Lig, 1) = "X" Or Sheets("Base").Cells(Lig, 2) = "Y" Or Sheets("Base").Cells(Lig, 3) = "Z" Then LigC = LigC + 1 Sheets("Base").Rows(Lig).Copy Sheets("Recopie").Rows(LigC) End If Next Lig End Sub
Il y a bien sûr moyen de faire plus cour mais c'est pour t'aider à comprendre.
Et quand tu aurras bien compris tu peu remplacer par.
Sub RecopionsLignes() Dim Lig As Long Dim LigC As Long 'supposons le nom de ta nouvelle feuille = "Recopie" 'puisque, en principe c'est une nouvelle feuille, commenbce la copie à la ligne 2 LigC = 1 Sheets("Base").Select For Lig = 1 To Range("A65536").End(xlUp).Row If Cells(Lig, 1) = "X" Or Cells(Lig, 2) = "Y" Or Cells(Lig, 3) = "Z" Then LigC = LigC + 1 Rows(Lig).Copy Sheets("Recopie").Rows(LigC) End If Next Lig End Sub
Ca ferra la même chose.
Tu dis..
A+