Trier une feuille de calcul selon critères
grovallat
-
grovallat -
grovallat -
Bonjour a tous,
Tout d'abord, excusez moi si un post du genre a déja été posté.
Je vous explique mon problème, je cherche à programmer une macro VB me permettant de copier les lignes d'un tableau excel répondant à certain critères dans une nouvelle feuille par le simple clic sur un bouton.
Je m'explique:
J'ai 4 tableaux (4 feuilles) et je voudrai par un simple clic, creer 4 pages respectives qui contiendraient les lignes telle que, par exemple: si case A1=X-> copie ligne 1
si case B2=Y-> copie ligne 2........
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....
Je sais pas si j'ai été très clair mais je n'est aucun résultat pour le moment, je repart de 0.
HELP PLEASE
merci d'avance
Tout d'abord, excusez moi si un post du genre a déja été posté.
Je vous explique mon problème, je cherche à programmer une macro VB me permettant de copier les lignes d'un tableau excel répondant à certain critères dans une nouvelle feuille par le simple clic sur un bouton.
Je m'explique:
J'ai 4 tableaux (4 feuilles) et je voudrai par un simple clic, creer 4 pages respectives qui contiendraient les lignes telle que, par exemple: si case A1=X-> copie ligne 1
si case B2=Y-> copie ligne 2........
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....
Je sais pas si j'ai été très clair mais je n'est aucun résultat pour le moment, je repart de 0.
HELP PLEASE
merci d'avance
A voir également:
- Trier une feuille de calcul selon critères
- Excel trier par ordre croissant chiffre - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
- Bruler feuille de laurier - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
9 réponses
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
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?
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+