Création de nouveau fichier à partir des données d'un fichier ex is

Le
Robi
Bonjour les génies !

Voici quelques lignes mon fichier actuel qui en contient en fait environ 800

NOMFAM VILLE MODE TARIF RABAIS MONTANT DATE PAYE
Béchard Boisbriand Internet 45.00 $ 5.00 $ 50 2007-03-05
Lareau Montréal Internet 45.00 $ 0.00 $ 0 2007-03-08
Leclerc Montréal Internet 45.00 $ 0.00 $ 45 2006-08-14
Pelletier Montréal Internet 45.00 $ 0.00 $ 45 2007-02-25

Je voudrais faire créer une feuille nouvelle (ou fichier nouveau) qui
s'appellerait par exemple PAYÉ, pour les personnes dont le champ MONTANT
ci-haut >0, et en créer une autre qui s'appellerait NON PAYÉ pour ceux dont
le champ MONTANT =<0.

J'ai regardé plusieurs réponses antérieures mais je ne trouve rien.

Merci de m'aider.

Robi, du Québec
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4326781
Bonjour,


Sub extrait()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:=">0",
Operator:=xlAnd
On Error Resume Next
Sheets("payé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Payé"
End If

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

http://cjoint.com/?dphxXHKkDB

JB
On 14 mar, 21:41, Robi
Bonjour les génies !

Voici quelques lignes mon fichier actuel qui en contient en fait environ 800

NOMFAM VILLE MODE TARIF RABAIS MONTANT DATE PAYE
Béchard Boisbriand Internet 45.00 $ 5.00 $ 50 2007-03-05
Lareau Montréal Internet 45.00 $ 0.00 $ 0 2007-03-08
Leclerc Montréal Internet 45.00 $ 0.00 $ 45 2006-08-14
Pelletier Montréal Internet 45.00 $ 0.00 $ 45 2007-02-25

Je voudrais faire créer une feuille nouvelle (ou fichier nouveau) qui
s'appellerait par exemple PAYÉ, pour les personnes dont le champ MONTANT
ci-haut >0, et en créer une autre qui s'appellerait NON PAYÉ pour ceu x dont
le champ MONTANT =<0.

J'ai regardé plusieurs réponses antérieures mais je ne trouve rien.

Merci de m'aider.

Robi, du Québec


Robi
Le #4326521
Bonjour Starwing:
Merci pour ton travail. Mais lorsque je clique sur l'extraction, j'ai un
message d'erreur qui me dit: la méthode Sheets de l'objet _Global a échoué.
Lorsque je débogge, la ligne 90 est en jaune (sheets.add); comme je ne suis
pas très fort en VB, je ne peux corriger cela. désolé.

Autre chose: le choix du montant: il me liste nécessairement les montants
qui sont présents. Pas de pb si je veux savoir si une personne n'a pas payé:
le chiffre est à 0; mais si elle a payé, je ne veux pas avoir seulement les
45$ par exemple: je veux tous les autres qui n'ont pas 0. Une idée?
Merci encore.


Robi


Bonsoir Robi,

http://cjoint.com/?dpc3tUnWE7

Starwing





Robi
Le #4326471
Bonjour JB et merci
J'aime beaucoup la présentation de ta solution.
Petite chose: le processus d'obtenir une liste de payés et de non payés se
fait en plusieurs fois, durant une journée. Or il faudrait que la macro
commence par effacer toutes les données, surtout de la feuille NON PAYÉ
avant d'en générer une autre, car j'ai remarqué qu'en en générant une autre
après avoir modifié les données de base, soit insérer des chiffres >0 (ce
qui arrivera nécessairement durant le cours de la journée, les gens qui
arrivent vont venir payer, donc leur nom doit être enlevé de la liste des Non
Payés), je disais donc que la liste des non payés conserve les noms des non
payés antérieurs même si le nouveau solde est >0m
J'ai déjà ajouté une macro et un bouton de sorte que maintenant, j'ai un
bouton PAYÉ et un NON PAYÉ, et ça fonctionne très bien. Mais pour le petit
pb ci-haut, mon VBA n'est pas assez évolué...
Merci encore.
Robi



Bonjour,


Sub extrait()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:=">0",
Operator:=xlAnd
On Error Resume Next
Sheets("payé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Payé"
End If

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

http://cjoint.com/?dphxXHKkDB

JB
On 14 mar, 21:41, Robi
Bonjour les génies !

Voici quelques lignes mon fichier actuel qui en contient en fait environ 800

NOMFAM VILLE MODE TARIF RABAIS MONTANT DATE PAYE
Béchard Boisbriand Internet 45.00 $ 5.00 $ 50 2007-03-05
Lareau Montréal Internet 45.00 $ 0.00 $ 0 2007-03-08
Leclerc Montréal Internet 45.00 $ 0.00 $ 45 2006-08-14
Pelletier Montréal Internet 45.00 $ 0.00 $ 45 2007-02-25

Je voudrais faire créer une feuille nouvelle (ou fichier nouveau) qui
s'appellerait par exemple PAYÉ, pour les personnes dont le champ MONTANT
ci-haut >0, et en créer une autre qui s'appellerait NON PAYÉ pour ceux dont
le champ MONTANT =<0.

J'ai regardé plusieurs réponses antérieures mais je ne trouve rien.

Merci de m'aider.

Robi, du Québec







Robi
Le #4326451
Bravo ! excepté que j'ai toujours mon pb de sheets.add qui ne fonctionne pas...


Bonjour Robi,

Il faut cocher la case à gauche de "Filtre par critère"
pour avoir accès à l'autre genre d'extraction.

Starwing





Starwing
Le #4326391
Bonjour Robi,

Il faut cocher la case à gauche de "Filtre par critère"
pour avoir accès à l'autre genre d'extraction.

Starwing
JB
Le #4326271
Sub extraitPayé()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:=">0",
Operator:=xlAnd
On Error Resume Next
Sheets("payé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Payé"
End If
[A2:G1000].ClearContents

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

Sub extraitNonPayé()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:="<=0",
Operator:=xlAnd
On Error Resume Next
Sheets("Nonpayé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "NonPayé"
End If
[A2:G1000].ClearContents

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

JB

On 15 mar, 13:31, Robi
Bonjour JB et merci
J'aime beaucoup la présentation de ta solution.
Petite chose: le processus d'obtenir une liste de payés et de non pay és se
fait en plusieurs fois, durant une journée. Or il faudrait que la macro
commence par effacer toutes les données, surtout de la feuille NON PAY É
avant d'en générer une autre, car j'ai remarqué qu'en en généra nt une autre
après avoir modifié les données de base, soit insérer des chiffre s >0 (ce
qui arrivera nécessairement durant le cours de la journée, les gens q ui
arrivent vont venir payer, donc leur nom doit être enlevé de la liste des Non
Payés), je disais donc que la liste des non payés conserve les noms d es non
payés antérieurs même si le nouveau solde est >0m
J'ai déjà ajouté une macro et un bouton de sorte que maintenant, j' ai un
bouton PAYÉ et un NON PAYÉ, et ça fonctionne très bien. Mais pou r le petit
pb ci-haut, mon VBA n'est pas assez évolué...
Merci encore.
Robi




Bonjour,

Sub extrait()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:=">0",
Operator:=xlAnd
On Error Resume Next
Sheets("payé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Payé"
End If

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible) .Cop­y
[A1]
Sheets("base").[A1].AutoFilter
End Sub

http://cjoint.com/?dphxXHKkDB

JB
On 14 mar, 21:41, Robi
Bonjour les génies !

Voici quelques lignes mon fichier actuel qui en contient en fait envi ron 800

NOMFAM VILLE MODE TARIF RABAIS MONTANT DATE PAYE
Béchard Boisbriand Internet 45.00 $ 5.00 $ 50 2007-03-05
Lareau Montréal Internet 45.00 $ 0.00 $ 0 2007-03-08
Leclerc Montréal Internet 45.00 $ 0.00 $ 45 2006-08-14
Pelletier Montréal Internet 45.00 $ 0.00 $ 45 2007-02-25

Je voudrais faire créer une feuille nouvelle (ou fichier nouveau) q ui
s'appellerait par exemple PAYÉ, pour les personnes dont le champ MO NTANT
ci-haut >0, et en créer une autre qui s'appellerait NON PAYÉ pour ceux dont
le champ MONTANT =<0.

J'ai regardé plusieurs réponses antérieures mais je ne trouve r ien.

Merci de m'aider.

Robi, du Québec- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




Starwing
Le #4326231
Bonjour Robi,

Par curiosité change le code par:
Excel.Sheets.Add

Starwing
Robi
Le #4249101
Désolé... J'ai aussi essayé sheets.add (after) juste pour voir mais non...
robi


Bonjour Robi,

Par curiosité change le code par:
Excel.Sheets.Add

Starwing





Robi
Le #4249051
Mon cher JB
Merci ! c'est du travail de Maître !
Robi


Sub extraitPayé()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:=">0",
Operator:=xlAnd
On Error Resume Next
Sheets("payé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Payé"
End If
[A2:G1000].ClearContents

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

Sub extraitNonPayé()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:="<=0",
Operator:=xlAnd
On Error Resume Next
Sheets("Nonpayé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "NonPayé"
End If
[A2:G1000].ClearContents

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

JB

On 15 mar, 13:31, Robi
Bonjour JB et merci
J'aime beaucoup la présentation de ta solution.
Petite chose: le processus d'obtenir une liste de payés et de non payés se
fait en plusieurs fois, durant une journée. Or il faudrait que la macro
commence par effacer toutes les données, surtout de la feuille NON PAYÉ
avant d'en générer une autre, car j'ai remarqué qu'en en générant une autre
après avoir modifié les données de base, soit insérer des chiffres >0 (ce
qui arrivera nécessairement durant le cours de la journée, les gens qui
arrivent vont venir payer, donc leur nom doit être enlevé de la liste des Non
Payés), je disais donc que la liste des non payés conserve les noms des non
payés antérieurs même si le nouveau solde est >0m
J'ai déjà ajouté une macro et un bouton de sorte que maintenant, j'ai un
bouton PAYÉ et un NON PAYÉ, et ça fonctionne très bien. Mais pour le petit
pb ci-haut, mon VBA n'est pas assez évolué...
Merci encore.
Robi




Bonjour,

Sub extrait()
Sheets("base").[A1].AutoFilter Field:=6, Criteria1:=">0",
Operator:=xlAnd
On Error Resume Next
Sheets("payé").Select
If Err <> 0 Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Payé"
End If

Sheets("base").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)..Cop­y
[A1]
Sheets("base").[A1].AutoFilter
End Sub

http://cjoint.com/?dphxXHKkDB

JB
On 14 mar, 21:41, Robi
Bonjour les génies !

Voici quelques lignes mon fichier actuel qui en contient en fait environ 800

NOMFAM VILLE MODE TARIF RABAIS MONTANT DATE PAYE
Béchard Boisbriand Internet 45.00 $ 5.00 $ 50 2007-03-05
Lareau Montréal Internet 45.00 $ 0.00 $ 0 2007-03-08
Leclerc Montréal Internet 45.00 $ 0.00 $ 45 2006-08-14
Pelletier Montréal Internet 45.00 $ 0.00 $ 45 2007-02-25

Je voudrais faire créer une feuille nouvelle (ou fichier nouveau) qui
s'appellerait par exemple PAYÉ, pour les personnes dont le champ MONTANT
ci-haut >0, et en créer une autre qui s'appellerait NON PAYÉ pour ceux dont
le champ MONTANT =<0.

J'ai regardé plusieurs réponses antérieures mais je ne trouve rien.

Merci de m'aider.

Robi, du Québec- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -









Publicité
Poster une réponse
Anonyme