Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses
Avatar
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

10 réponses

Avatar
Starwing
Bonsoir Robi,

http://cjoint.com/?dpc3tUnWE7

Starwing
Avatar
JB
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 wrote:
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


Avatar
Robi
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





Avatar
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).Copy
[A1]
Sheets("base").[A1].AutoFilter
End Sub

http://cjoint.com/?dphxXHKkDB

JB
On 14 mar, 21:41, Robi wrote:
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







Avatar
Robi
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





Avatar
Starwing
Bonjour Robi,

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

Starwing
Avatar
JB
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 wrote:
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 wrote:
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 -




Avatar
Starwing
Bonjour Robi,

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

Starwing
Avatar
Robi
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





Avatar
Robi
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 wrote:
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 wrote:
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 -