"Mais en plus que le contrôle s'effectue aussi au départ des autres onglets"
Quel contrôle ????
Veux tu dire que le traitement de l'Onglet "Générale" mis en place doit aussi s'effectuer sur chaque Onglet a savoir envoyé les lignes colorées de chaque Onglet vers l'Onglet approprié
Si le traitement est réalisé de l'Onglet "Général" vers les autres Onglets en fonction de la couleur des lignes chaque onglet aura en toute logique que ses bonnes lignes
Pourquoi traiter ensuite chacun d'eux ???
J'avoue ne pas comprendre
Merci de m'éclairer
A cela je t'ai répondu :
Bonjour,
Oui je veux dire que le traitement de l'Onglet "Générale" mis en place doit aussi s'effectuer sur chaque Onglet a savoir envoyé les lignes colorées de chaque Onglet vers l'Onglet approprié .
En effet je vais être amené à modifier la coloration des lignes dans les différents onglets,
@+
Romeo59181
================================================================================================ "FFO" a écrit dans le message de groupe de discussion :
Rebonjours à toi
Sur le Fil "Classement des lignes" je t'ai plusieurs fois répondu !!!!! Mais tu ne semble pas t'en rendre compte
Reconsultes le tu doit trouver mes réponses
Bonjour,
Sisi, je l'ai bien vue, tu m'as répondu ceci :
Rebonjour à toi
"Mais en plus que le contrôle s'effectue aussi au départ des autres onglets"
Quel contrôle ????
Veux tu dire que le traitement de l'Onglet "Générale" mis en place doit
aussi s'effectuer sur chaque Onglet a savoir envoyé les lignes colorées de
chaque Onglet vers l'Onglet approprié
Si le traitement est réalisé de l'Onglet "Général" vers les autres Onglets
en fonction de la couleur des lignes chaque onglet aura en toute logique que
ses bonnes lignes
Pourquoi traiter ensuite chacun d'eux ???
J'avoue ne pas comprendre
Merci de m'éclairer
A cela je t'ai répondu :
Bonjour,
Oui je veux dire que le traitement de l'Onglet "Générale" mis en place doit
aussi s'effectuer sur chaque Onglet a savoir envoyé les lignes colorées de
chaque Onglet vers l'Onglet approprié .
En effet je vais être amené à modifier la coloration des lignes dans les
différents onglets,
@+
Romeo59181
================================================================================================
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 7C4E99C1-A1E7-45D7-B689-3A839F53B09A@microsoft.com...
Rebonjours à toi
Sur le Fil "Classement des lignes" je t'ai plusieurs fois répondu !!!!!
Mais tu ne semble pas t'en rendre compte
"Mais en plus que le contrôle s'effectue aussi au départ des autres onglets"
Quel contrôle ????
Veux tu dire que le traitement de l'Onglet "Générale" mis en place doit aussi s'effectuer sur chaque Onglet a savoir envoyé les lignes colorées de chaque Onglet vers l'Onglet approprié
Si le traitement est réalisé de l'Onglet "Général" vers les autres Onglets en fonction de la couleur des lignes chaque onglet aura en toute logique que ses bonnes lignes
Pourquoi traiter ensuite chacun d'eux ???
J'avoue ne pas comprendre
Merci de m'éclairer
A cela je t'ai répondu :
Bonjour,
Oui je veux dire que le traitement de l'Onglet "Générale" mis en place doit aussi s'effectuer sur chaque Onglet a savoir envoyé les lignes colorées de chaque Onglet vers l'Onglet approprié .
En effet je vais être amené à modifier la coloration des lignes dans les différents onglets,
@+
Romeo59181
================================================================================================ "FFO" a écrit dans le message de groupe de discussion :
Rebonjours à toi
Sur le Fil "Classement des lignes" je t'ai plusieurs fois répondu !!!!! Mais tu ne semble pas t'en rendre compte
"FFO" a écrit dans le message de groupe de discussion :
Rebonjour à toi
As tu essayé mon exemple ???? Qu'a t'il donné ????
Je ne peux ouvrir ton fichier (bug Excel) Peux tu m'en transmettre un nouveau
Merci
FFO
Rebonjours à Toi
Cette réponse n'est pas la dernière !!!!
Il ya celle-ci faisant suite à ta demande qui a suivi :
" Rebonjour à toi
J'ai attendu ta réponse quelques jours mais n'ayant pas eu de nouvelles j'ai quelque peu abandonner le fil et c'est par hazard aujourd'hui que je la découvre
Mille excuses pour ton attente
Sur ce lien ton document avec l'ensemble des Macros Chacune porte le nom de l'onglet à traiter
Or mis la Macro "Générale" qui traite les couleurs à partir de la ligne 4 toutes les autres les traitent à partir de la 1° ligne
Et d'autres encore faisant réponse à des demandes suivantes
Reconsulte méticulesement tout le Fil
Donnes moi des nouvelles !!!
Rebonjours à Toi
Cette réponse n'est pas la dernière !!!!
Il ya celle-ci faisant suite à ta demande qui a suivi :
"
Rebonjour à toi
J'ai attendu ta réponse quelques jours mais n'ayant pas eu de nouvelles j'ai
quelque peu abandonner le fil et c'est par hazard aujourd'hui que je la
découvre
Mille excuses pour ton attente
Sur ce lien ton document avec l'ensemble des Macros
Chacune porte le nom de l'onglet à traiter
Or mis la Macro "Générale" qui traite les couleurs à partir de la ligne 4
toutes les autres les traitent à partir de la 1° ligne
Il ya celle-ci faisant suite à ta demande qui a suivi :
" Rebonjour à toi
J'ai attendu ta réponse quelques jours mais n'ayant pas eu de nouvelles j'ai quelque peu abandonner le fil et c'est par hazard aujourd'hui que je la découvre
Mille excuses pour ton attente
Sur ce lien ton document avec l'ensemble des Macros Chacune porte le nom de l'onglet à traiter
Or mis la Macro "Générale" qui traite les couleurs à partir de la ligne 4 toutes les autres les traitent à partir de la 1° ligne
"FFO" a écrit dans le message de groupe de discussion :
Rebonjours à Toi
Cette réponse n'est pas la dernière !!!!
Il ya celle-ci faisant suite à ta demande qui a suivi :
" Rebonjour à toi
J'ai attendu ta réponse quelques jours mais n'ayant pas eu de nouvelles j'ai quelque peu abandonner le fil et c'est par hazard aujourd'hui que je la découvre
Mille excuses pour ton attente
Sur ce lien ton document avec l'ensemble des Macros Chacune porte le nom de l'onglet à traiter
Or mis la Macro "Générale" qui traite les couleurs à partir de la ligne 4 toutes les autres les traitent à partir de la 1° ligne
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 58A94C40-9F45-42C4-BE7B-F4B3B8D3E5DA@microsoft.com...
Rebonjours à Toi
Cette réponse n'est pas la dernière !!!!
Il ya celle-ci faisant suite à ta demande qui a suivi :
"
Rebonjour à toi
J'ai attendu ta réponse quelques jours mais n'ayant pas eu de nouvelles
j'ai
quelque peu abandonner le fil et c'est par hazard aujourd'hui que je la
découvre
Mille excuses pour ton attente
Sur ce lien ton document avec l'ensemble des Macros
Chacune porte le nom de l'onglet à traiter
Or mis la Macro "Générale" qui traite les couleurs à partir de la ligne 4
toutes les autres les traitent à partir de la 1° ligne
"FFO" a écrit dans le message de groupe de discussion :
Rebonjours à Toi
Cette réponse n'est pas la dernière !!!!
Il ya celle-ci faisant suite à ta demande qui a suivi :
" Rebonjour à toi
J'ai attendu ta réponse quelques jours mais n'ayant pas eu de nouvelles j'ai quelque peu abandonner le fil et c'est par hazard aujourd'hui que je la découvre
Mille excuses pour ton attente
Sur ce lien ton document avec l'ensemble des Macros Chacune porte le nom de l'onglet à traiter
Or mis la Macro "Générale" qui traite les couleurs à partir de la ligne 4 toutes les autres les traitent à partir de la 1° ligne
Et d'autres encore faisant réponse à des demandes suivantes
Reconsulte méticulesement tout le Fil
Donnes moi des nouvelles !!!
FFO
Rebonjour à toi
Tes données sont plus importantes que les miennes Ce qui a engendré le bug suite à une petite anomalie du code que l'ampleur plus réduites de mes données ne m'a pas permis de déceler J'ai apporté quelques petits réglages supplémentaires et tout semble fonctionner correctement J'ai opéré des essais en multipliant par 5 le nombre de lignes à traiter
Celà devrait maintenant te convenir même avec tes fichiers
Tes données sont plus importantes que les miennes
Ce qui a engendré le bug suite à une petite anomalie du code que l'ampleur
plus réduites de mes données ne m'a pas permis de déceler
J'ai apporté quelques petits réglages supplémentaires et tout semble
fonctionner correctement
J'ai opéré des essais en multipliant par 5 le nombre de lignes à traiter
Celà devrait maintenant te convenir même avec tes fichiers
Tes données sont plus importantes que les miennes Ce qui a engendré le bug suite à une petite anomalie du code que l'ampleur plus réduites de mes données ne m'a pas permis de déceler J'ai apporté quelques petits réglages supplémentaires et tout semble fonctionner correctement J'ai opéré des essais en multipliant par 5 le nombre de lignes à traiter
Celà devrait maintenant te convenir même avec tes fichiers
A titre d'information mon fichier fait actuellement 2543 lignes sur 32 colonnes,
@+
Romeo59181
"FFO" a écrit dans le message de groupe de discussion :
Rebonjour à toi
Tes données sont plus importantes que les miennes Ce qui a engendré le bug suite à une petite anomalie du code que l'ampleur plus réduites de mes données ne m'a pas permis de déceler J'ai apporté quelques petits réglages supplémentaires et tout semble fonctionner correctement J'ai opéré des essais en multipliant par 5 le nombre de lignes à traiter
Celà devrait maintenant te convenir même avec tes fichiers
A titre d'information mon fichier fait actuellement 2543 lignes sur 32
colonnes,
@+
Romeo59181
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 40DEA399-51DF-461E-99E5-C35CBA8A411D@microsoft.com...
Rebonjour à toi
Tes données sont plus importantes que les miennes
Ce qui a engendré le bug suite à une petite anomalie du code que l'ampleur
plus réduites de mes données ne m'a pas permis de déceler
J'ai apporté quelques petits réglages supplémentaires et tout semble
fonctionner correctement
J'ai opéré des essais en multipliant par 5 le nombre de lignes à traiter
Celà devrait maintenant te convenir même avec tes fichiers
A titre d'information mon fichier fait actuellement 2543 lignes sur 32 colonnes,
@+
Romeo59181
"FFO" a écrit dans le message de groupe de discussion :
Rebonjour à toi
Tes données sont plus importantes que les miennes Ce qui a engendré le bug suite à une petite anomalie du code que l'ampleur plus réduites de mes données ne m'a pas permis de déceler J'ai apporté quelques petits réglages supplémentaires et tout semble fonctionner correctement J'ai opéré des essais en multipliant par 5 le nombre de lignes à traiter
Celà devrait maintenant te convenir même avec tes fichiers
La difficulté réside dans le nombre de lignes à supprimer de manière simultanée afin de rendre le traitement le plus rapide possible mais avec le risque de ce Bug car le code peux demander un nombre de lignes trop important à traiter en même temps Ce qui est surprenant c'est que plus le fichier est important plus ce nombre doit être petit Mon fichier d'exemple (63 lignes) me permet un traitement de 60 lignes simultanées
Ayant multiplié par 5 leur nombre dans ma 2° version j'ai du réduire à 50
Tu me parles de 2543 lignes ce qui est encore supérieur m'obligeant à réduire encore plus (40 lignes simultanées)
On pourrait évidemment pour assurer le coup descendre ce chiffre au minimun à savoir 1 mais l'inconvénient c'est que pour 2543 lignes le traitement pour 40 lignes simultanées demande 5 secondes alors que pour 1 ligne à la fois le traitement demande 25 secondes
Il faut donc trouver un compromis entre ce bug potentiel et la rapidité
Ce paramétre est géré pour toutes les macros par cette ligne :
If n = 40 Then
dans la partie :
If n = 40 Then Suppression = Suppression & Mid(Lignes, 1, Len(Lignes) - 1) & "/" n = 0 Lignes = "" End If
fort de la précision que tu viens de me donner sur le nombre de lignes à traiter (2543) j'ai mis ce curseur à 40 comme sur ces lignes de code et pour toutes les macros
Tu peux le régler à ta façon et d'une manière différenciée pour chaque macro
La difficulté réside dans le nombre de lignes à supprimer de manière
simultanée afin de rendre le traitement le plus rapide possible mais avec le
risque de ce Bug car le code peux demander un nombre de lignes trop important
à traiter en même temps
Ce qui est surprenant c'est que plus le fichier est important plus ce nombre
doit être petit
Mon fichier d'exemple (63 lignes) me permet un traitement de 60 lignes
simultanées
Ayant multiplié par 5 leur nombre dans ma 2° version j'ai du réduire à 50
Tu me parles de 2543 lignes ce qui est encore supérieur m'obligeant à
réduire encore plus (40 lignes simultanées)
On pourrait évidemment pour assurer le coup descendre ce chiffre au minimun
à savoir 1 mais l'inconvénient c'est que pour 2543 lignes le traitement pour
40 lignes simultanées demande 5 secondes alors que pour 1 ligne à la fois le
traitement demande 25 secondes
Il faut donc trouver un compromis entre ce bug potentiel et la rapidité
Ce paramétre est géré pour toutes les macros par cette ligne :
If n = 40 Then
dans la partie :
If n = 40 Then
Suppression = Suppression & Mid(Lignes, 1, Len(Lignes) - 1) & "/"
n = 0
Lignes = ""
End If
fort de la précision que tu viens de me donner sur le nombre de lignes à
traiter (2543) j'ai mis ce curseur à 40 comme sur ces lignes de code et pour
toutes les macros
Tu peux le régler à ta façon et d'une manière différenciée pour chaque macro
La difficulté réside dans le nombre de lignes à supprimer de manière simultanée afin de rendre le traitement le plus rapide possible mais avec le risque de ce Bug car le code peux demander un nombre de lignes trop important à traiter en même temps Ce qui est surprenant c'est que plus le fichier est important plus ce nombre doit être petit Mon fichier d'exemple (63 lignes) me permet un traitement de 60 lignes simultanées
Ayant multiplié par 5 leur nombre dans ma 2° version j'ai du réduire à 50
Tu me parles de 2543 lignes ce qui est encore supérieur m'obligeant à réduire encore plus (40 lignes simultanées)
On pourrait évidemment pour assurer le coup descendre ce chiffre au minimun à savoir 1 mais l'inconvénient c'est que pour 2543 lignes le traitement pour 40 lignes simultanées demande 5 secondes alors que pour 1 ligne à la fois le traitement demande 25 secondes
Il faut donc trouver un compromis entre ce bug potentiel et la rapidité
Ce paramétre est géré pour toutes les macros par cette ligne :
If n = 40 Then
dans la partie :
If n = 40 Then Suppression = Suppression & Mid(Lignes, 1, Len(Lignes) - 1) & "/" n = 0 Lignes = "" End If
fort de la précision que tu viens de me donner sur le nombre de lignes à traiter (2543) j'ai mis ce curseur à 40 comme sur ces lignes de code et pour toutes les macros
Tu peux le régler à ta façon et d'une manière différenciée pour chaque macro
Split(Suppression, "/")(j) mets en place pour l'instruction Range l'adresse de chaque cellule sous la forme :
Range("A1,A2,A20,A60,A100 ....)
Or lenombre de caractère à l'intérieur des paranthèses ne doit pas exceder 255 virgules comprises
Lorque mes lignes sont situées au début de la feuille les chiffres indices aprés la lettre de la colonne A sont petits (1 à 2 chiffres) Celà permet un plus grand nombre de cellules dans la plage de 255 caractères Mais plus il y a de lignes plus les chiffres indices sont important pouvant atteindre pour la dernière lignes 5 chiffres (A65536) donc nettement moins de cellules simultanées pour rentrer dans la plage des 255 caractères maximum
J'ai donc pour tenir compte de cette contrainte changé la condition
Aulieu de :
If n = xx
J'ai mis :
If Len(Lignes) + 10 > 255 Then
Lignes étant le paramettre qui porte l'ensemble des cellules à traiter avec une marge de 10
Ainsi donc la macro automatiquement prendra le maximum de lignes à traiter pour la suppression sans aller jusqu'au Bug
Split(Suppression, "/")(j) mets en place pour l'instruction Range l'adresse
de chaque cellule sous la forme :
Range("A1,A2,A20,A60,A100 ....)
Or lenombre de caractère à l'intérieur des paranthèses ne doit pas exceder
255 virgules comprises
Lorque mes lignes sont situées au début de la feuille les chiffres indices
aprés la lettre de la colonne A sont petits (1 à 2 chiffres)
Celà permet un plus grand nombre de cellules dans la plage de 255 caractères
Mais plus il y a de lignes plus les chiffres indices sont important pouvant
atteindre pour la dernière lignes 5 chiffres (A65536) donc nettement moins de
cellules simultanées pour rentrer dans la plage des 255 caractères maximum
J'ai donc pour tenir compte de cette contrainte changé la condition
Aulieu de :
If n = xx
J'ai mis :
If Len(Lignes) + 10 > 255 Then
Lignes étant le paramettre qui porte l'ensemble des cellules à traiter avec
une marge de 10
Ainsi donc la macro automatiquement prendra le maximum de lignes à traiter
pour la suppression sans aller jusqu'au Bug
Split(Suppression, "/")(j) mets en place pour l'instruction Range l'adresse de chaque cellule sous la forme :
Range("A1,A2,A20,A60,A100 ....)
Or lenombre de caractère à l'intérieur des paranthèses ne doit pas exceder 255 virgules comprises
Lorque mes lignes sont situées au début de la feuille les chiffres indices aprés la lettre de la colonne A sont petits (1 à 2 chiffres) Celà permet un plus grand nombre de cellules dans la plage de 255 caractères Mais plus il y a de lignes plus les chiffres indices sont important pouvant atteindre pour la dernière lignes 5 chiffres (A65536) donc nettement moins de cellules simultanées pour rentrer dans la plage des 255 caractères maximum
J'ai donc pour tenir compte de cette contrainte changé la condition
Aulieu de :
If n = xx
J'ai mis :
If Len(Lignes) + 10 > 255 Then
Lignes étant le paramettre qui porte l'ensemble des cellules à traiter avec une marge de 10
Ainsi donc la macro automatiquement prendra le maximum de lignes à traiter pour la suppression sans aller jusqu'au Bug
Pour la suppression des lignes en double ce code modifié est plus rapide que celui que je t'ai proposé :
Range("A2", "A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).EntireRow.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).Activate Do While ActiveCell.Offset(-i, 0).Row > 1 For j = 1 To Range("A1").SpecialCells(xlCellTypeLastCell).Column If Cells(ActiveCell.Offset(-i, 0).Row, j) <> Cells(ActiveCell.Offset(-i, 0).Row - 1, j) Then Divergence = 1 Exit For End If Next If Divergence <> 1 Then ActiveCell.Offset(-i, 0).EntireRow.Clear End If Divergence = "" i = i + 1 Loop Range("A2", "A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).EntireRow.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A1").Activate
Essayes le et dis moi !!!!
Rebonjour à toi
Pour la suppression des lignes en double ce code modifié est plus rapide que
celui que je t'ai proposé :
Range("A2", "A" &
Range("A2").SpecialCells(xlCellTypeLastCell).Row).EntireRow.Sort
Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).Activate
Do While ActiveCell.Offset(-i, 0).Row > 1
For j = 1 To Range("A1").SpecialCells(xlCellTypeLastCell).Column
If Cells(ActiveCell.Offset(-i, 0).Row, j) <> Cells(ActiveCell.Offset(-i,
0).Row - 1, j) Then
Divergence = 1
Exit For
End If
Next
If Divergence <> 1 Then
ActiveCell.Offset(-i, 0).EntireRow.Clear
End If
Divergence = ""
i = i + 1
Loop
Range("A2", "A" &
Range("A2").SpecialCells(xlCellTypeLastCell).Row).EntireRow.Sort
Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Activate
Pour la suppression des lignes en double ce code modifié est plus rapide que celui que je t'ai proposé :
Range("A2", "A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).EntireRow.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).Activate Do While ActiveCell.Offset(-i, 0).Row > 1 For j = 1 To Range("A1").SpecialCells(xlCellTypeLastCell).Column If Cells(ActiveCell.Offset(-i, 0).Row, j) <> Cells(ActiveCell.Offset(-i, 0).Row - 1, j) Then Divergence = 1 Exit For End If Next If Divergence <> 1 Then ActiveCell.Offset(-i, 0).EntireRow.Clear End If Divergence = "" i = i + 1 Loop Range("A2", "A" & Range("A2").SpecialCells(xlCellTypeLastCell).Row).EntireRow.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal Range("A1").Activate