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

macro pour grouper des lignes... suite

26 réponses
Avatar
jiffey
Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey

10 réponses

1 2 3
Avatar
FFO
Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey


Avatar
jiffey
Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey




Avatar
FFO
Rebonjours à toi

Je ne sais pas si la suppression voir d'une manière plus générale
l'intervention sur les macros par code VBA est possible
J'ai moi même fais plusieurs tentatives sans succés
Je laisse les têtes pensantes de ce Forum s'il le souhaite s'exprimer sur ce
sujet

Par contre il est possible d'enregistrer ce code dans un document excel
propre et à partir de ton document de commander cette macro et de supprimer
ce document

Si cette solution te convient je peux t'aider à la mettre en place

Dis moi !!!


Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey






Avatar
jiffey
Re-bonjour FFO,


Je n'ai pas tout à fait compris la solution que tu proposes. Si tu peux me
réexpliquer (sachant que de toute façon il faut que ce soit relativement
simple car la macro doit à terme être utilisée par des gens par forcément
super fort en excel).


Par contre, j'ai encore un petit souci par rapport au pb précédent :

tjs sur le tableau : qd je mets la macro

Range("B65535").End(xlUp).Offset(0, 2).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 3) = "" Then
ActiveCell.Offset(-2, 3).Select
Else
ActiveCell.Offset(-1, 3).End(xlUp).Offset(-1, 0).Select
End If
Loop


ca me groupe bien les DO1


Qd je mets

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop

Ca groupe bien les DO2


Par contre,qd je combine les 2 dans une même macro (les 2 pavés ci-dessus à
la suite), ca ne fonctionne pas : ca groupe les DO2 correctement mais pas les
DO1 (groupement mais de façon incorrect).

je n'arrive pas à comprendre pourquoi.

Peux-tu venir à ma rescousse une fois de plus s'il te plait ?


Merci encore

JF


Rebonjours à toi

Je ne sais pas si la suppression voir d'une manière plus générale
l'intervention sur les macros par code VBA est possible
J'ai moi même fais plusieurs tentatives sans succés
Je laisse les têtes pensantes de ce Forum s'il le souhaite s'exprimer sur ce
sujet

Par contre il est possible d'enregistrer ce code dans un document excel
propre et à partir de ton document de commander cette macro et de supprimer
ce document

Si cette solution te convient je peux t'aider à la mettre en place

Dis moi !!!


Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey








Avatar
jps
bonjour jiffrey
si ta macro se voiture-supprime d'abord, il y a de fortes chances pour
qu'elle ne propose plus rien ensuite.....
avec cette proc, tu fais apparaître la boîte de dialogue "enregistrer sous"

Application.Dialogs(xlDialogSaveAs).Show

voili voilou
jps
PS au fait, pourquoi veux-tu qu'elle s'auto-supprime?

"jiffey" a écrit dans le message de news:

Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton
post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion
si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton
utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé
qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition
répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse
dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra
résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je
souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le
code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2"
peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey






Avatar
jiffey
Merci beaucoup ips !

C'est vrai que l'idéal serait d'enregistrer le fichier final sans la macro
de façon à ce que ce soit un fichier "simple".

L'objectif est d'avoir un "logiciel" qui se lance tout seul (code que j'a
inséré dans le workbook), qui donne un tableau de résultat et qui lance la
sauvegarde tout seul (le code que tu m'as donné) mais sans la macro de façon
à réutiliser le fichier final simplement.

Je ne sais pas si j'ai été clair...

Si tu as une solution, sans forcément je suis preneur ;-)




bonjour jiffrey
si ta macro se voiture-supprime d'abord, il y a de fortes chances pour
qu'elle ne propose plus rien ensuite.....
avec cette proc, tu fais apparaître la boîte de dialogue "enregistrer sous"

Application.Dialogs(xlDialogSaveAs).Show

voili voilou
jps
PS au fait, pourquoi veux-tu qu'elle s'auto-supprime?

"jiffey" a écrit dans le message de news:

Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton
post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion
si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton
utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé
qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition
répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse
dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra
résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je
souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le
code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2"
peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey










Avatar
FFO
Rebonjours à toi

Je me demande si le regroupement de DO1 opéré par le 1° code ne serait pas
mis à mal par le regroupement de DO2 opéré par le 2° code

Il faut savoir que dans ces regroupements l'intégralité des colonnes sont
concernées puisque les lignes entières sont prises dans cette opération

Donc dans le groupement DO1 tu impactes les cellules DO2 et dans le
groupement DO2 tu impactes les cellules DO1

Fais ce test :

Met les 2 codes dans une même macro
Mets un point d'arrêt en regard de la 1° ligne du 2° code (clique à côté de
la ligne dans le bandeau gris vertical)
Exécutes la macro qui s'arrètera au point d'arrêt
Regardes le résulat du 1° regroupement
Puis retournes dans le script et fait F5 pour continuer l'exécution
Regardes le résultat du 2° regroupement et le précédent

Dis moi !!!!


Re-bonjour FFO,


Je n'ai pas tout à fait compris la solution que tu proposes. Si tu peux me
réexpliquer (sachant que de toute façon il faut que ce soit relativement
simple car la macro doit à terme être utilisée par des gens par forcément
super fort en excel).


Par contre, j'ai encore un petit souci par rapport au pb précédent :

tjs sur le tableau : qd je mets la macro

Range("B65535").End(xlUp).Offset(0, 2).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 3) = "" Then
ActiveCell.Offset(-2, 3).Select
Else
ActiveCell.Offset(-1, 3).End(xlUp).Offset(-1, 0).Select
End If
Loop


ca me groupe bien les DO1


Qd je mets

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop

Ca groupe bien les DO2


Par contre,qd je combine les 2 dans une même macro (les 2 pavés ci-dessus à
la suite), ca ne fonctionne pas : ca groupe les DO2 correctement mais pas les
DO1 (groupement mais de façon incorrect).

je n'arrive pas à comprendre pourquoi.

Peux-tu venir à ma rescousse une fois de plus s'il te plait ?


Merci encore

JF


Rebonjours à toi

Je ne sais pas si la suppression voir d'une manière plus générale
l'intervention sur les macros par code VBA est possible
J'ai moi même fais plusieurs tentatives sans succés
Je laisse les têtes pensantes de ce Forum s'il le souhaite s'exprimer sur ce
sujet

Par contre il est possible d'enregistrer ce code dans un document excel
propre et à partir de ton document de commander cette macro et de supprimer
ce document

Si cette solution te convient je peux t'aider à la mettre en place

Dis moi !!!


Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey










Avatar
jiffey
Oui, c'est que j'avais fait et la première étape marche bien et c'est en
faisant la deuixème partie de la macro que ca déconne.

J'ai essayé d'inverser les codes, et c'est identique.

je ne comprends vraiment pas... C'est embêtant car je n'arrive pas au
résultat final escompté...

Si tu as des idées...

Jiffey


Rebonjours à toi

Je me demande si le regroupement de DO1 opéré par le 1° code ne serait pas
mis à mal par le regroupement de DO2 opéré par le 2° code

Il faut savoir que dans ces regroupements l'intégralité des colonnes sont
concernées puisque les lignes entières sont prises dans cette opération

Donc dans le groupement DO1 tu impactes les cellules DO2 et dans le
groupement DO2 tu impactes les cellules DO1

Fais ce test :

Met les 2 codes dans une même macro
Mets un point d'arrêt en regard de la 1° ligne du 2° code (clique à côté de
la ligne dans le bandeau gris vertical)
Exécutes la macro qui s'arrètera au point d'arrêt
Regardes le résulat du 1° regroupement
Puis retournes dans le script et fait F5 pour continuer l'exécution
Regardes le résultat du 2° regroupement et le précédent

Dis moi !!!!


Re-bonjour FFO,


Je n'ai pas tout à fait compris la solution que tu proposes. Si tu peux me
réexpliquer (sachant que de toute façon il faut que ce soit relativement
simple car la macro doit à terme être utilisée par des gens par forcément
super fort en excel).


Par contre, j'ai encore un petit souci par rapport au pb précédent :

tjs sur le tableau : qd je mets la macro

Range("B65535").End(xlUp).Offset(0, 2).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 3) = "" Then
ActiveCell.Offset(-2, 3).Select
Else
ActiveCell.Offset(-1, 3).End(xlUp).Offset(-1, 0).Select
End If
Loop


ca me groupe bien les DO1


Qd je mets

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop

Ca groupe bien les DO2


Par contre,qd je combine les 2 dans une même macro (les 2 pavés ci-dessus à
la suite), ca ne fonctionne pas : ca groupe les DO2 correctement mais pas les
DO1 (groupement mais de façon incorrect).

je n'arrive pas à comprendre pourquoi.

Peux-tu venir à ma rescousse une fois de plus s'il te plait ?


Merci encore

JF


Rebonjours à toi

Je ne sais pas si la suppression voir d'une manière plus générale
l'intervention sur les macros par code VBA est possible
J'ai moi même fais plusieurs tentatives sans succés
Je laisse les têtes pensantes de ce Forum s'il le souhaite s'exprimer sur ce
sujet

Par contre il est possible d'enregistrer ce code dans un document excel
propre et à partir de ton document de commander cette macro et de supprimer
ce document

Si cette solution te convient je peux t'aider à la mettre en place

Dis moi !!!


Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey












Avatar
FFO
Rebonjours à toi

Une précision :
Quelque soit l'ordre d'execution des 2 macros c'est toujours la colonne DO2
qui est correcte et DO1 qui ne l'est pas ????

Merci de me confirmer


Oui, c'est que j'avais fait et la première étape marche bien et c'est en
faisant la deuixème partie de la macro que ca déconne.

J'ai essayé d'inverser les codes, et c'est identique.

je ne comprends vraiment pas... C'est embêtant car je n'arrive pas au
résultat final escompté...

Si tu as des idées...

Jiffey


Rebonjours à toi

Je me demande si le regroupement de DO1 opéré par le 1° code ne serait pas
mis à mal par le regroupement de DO2 opéré par le 2° code

Il faut savoir que dans ces regroupements l'intégralité des colonnes sont
concernées puisque les lignes entières sont prises dans cette opération

Donc dans le groupement DO1 tu impactes les cellules DO2 et dans le
groupement DO2 tu impactes les cellules DO1

Fais ce test :

Met les 2 codes dans une même macro
Mets un point d'arrêt en regard de la 1° ligne du 2° code (clique à côté de
la ligne dans le bandeau gris vertical)
Exécutes la macro qui s'arrètera au point d'arrêt
Regardes le résulat du 1° regroupement
Puis retournes dans le script et fait F5 pour continuer l'exécution
Regardes le résultat du 2° regroupement et le précédent

Dis moi !!!!


Re-bonjour FFO,


Je n'ai pas tout à fait compris la solution que tu proposes. Si tu peux me
réexpliquer (sachant que de toute façon il faut que ce soit relativement
simple car la macro doit à terme être utilisée par des gens par forcément
super fort en excel).


Par contre, j'ai encore un petit souci par rapport au pb précédent :

tjs sur le tableau : qd je mets la macro

Range("B65535").End(xlUp).Offset(0, 2).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 3) = "" Then
ActiveCell.Offset(-2, 3).Select
Else
ActiveCell.Offset(-1, 3).End(xlUp).Offset(-1, 0).Select
End If
Loop


ca me groupe bien les DO1


Qd je mets

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop

Ca groupe bien les DO2


Par contre,qd je combine les 2 dans une même macro (les 2 pavés ci-dessus à
la suite), ca ne fonctionne pas : ca groupe les DO2 correctement mais pas les
DO1 (groupement mais de façon incorrect).

je n'arrive pas à comprendre pourquoi.

Peux-tu venir à ma rescousse une fois de plus s'il te plait ?


Merci encore

JF


Rebonjours à toi

Je ne sais pas si la suppression voir d'une manière plus générale
l'intervention sur les macros par code VBA est possible
J'ai moi même fais plusieurs tentatives sans succés
Je laisse les têtes pensantes de ce Forum s'il le souhaite s'exprimer sur ce
sujet

Par contre il est possible d'enregistrer ce code dans un document excel
propre et à partir de ton document de commander cette macro et de supprimer
ce document

Si cette solution te convient je peux t'aider à la mettre en place

Dis moi !!!


Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre occasion si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma réponse dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent, le code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2" peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey














Avatar
jps
re jiffrey
le code ci-dessous supprime le code de la feuille 2
à adapter

With ThisWorkbook.VBProject.VBComponents("feuil2").codemodule
.DeleteLines 1, .CountOfLines
End With

et celui-ci, toujours à adapter, va sauvegarder ton classeur à la fermeture
dès l'instant où la proc est installée dans le BeforeClose

ActiveWorkbook.SaveCopyAs "C:Mes documentsSauvegarde Automatique" &
ActiveWorkbook.Name

jps


"jiffey" a écrit dans le message de news:

Merci beaucoup ips !

C'est vrai que l'idéal serait d'enregistrer le fichier final sans la macro
de façon à ce que ce soit un fichier "simple".

L'objectif est d'avoir un "logiciel" qui se lance tout seul (code que j'a
inséré dans le workbook), qui donne un tableau de résultat et qui lance la
sauvegarde tout seul (le code que tu m'as donné) mais sans la macro de
façon
à réutiliser le fichier final simplement.

Je ne sais pas si j'ai été clair...

Si tu as une solution, sans forcément je suis preneur ;-)




bonjour jiffrey
si ta macro se voiture-supprime d'abord, il y a de fortes chances pour
qu'elle ne propose plus rien ensuite.....
avec cette proc, tu fais apparaître la boîte de dialogue "enregistrer
sous"

Application.Dialogs(xlDialogSaveAs).Show

voili voilou
jps
PS au fait, pourquoi veux-tu qu'elle s'auto-supprime?

"jiffey" a écrit dans le message de
news:

Bonjour FFO et encore une fois merci pour ce code !!

Ca marche nickel !!

J'ai une dernière question (enfin dernière pour l'instant ;-D ) :

Je souhaiterais à la fin de la macro que cette dernière s'auto-supprime
et
propose automatiquement une "sauvegarde sous".

Est-ce que cela est possible ?

Slts

Jiffey




Salut jiffey
Tout dabord tu n'es en rien responsable de l'échange engendré par ton
post
précédent je te rassure
Tu n'en as été que le catalyseur
cette mise au point aurais eu lieu trés certainement à une autre
occasion
si
tu n'étais pas passé par là

Ce préambule fait j'ai regardé ton code et je te propose de le
corriger
comme celà :

Range("B65535").End(xlUp).Offset(0, 3).Select
Do While ActiveCell.Row > Range("B6").Row
Range(ActiveCell, ActiveCell.End(xlUp).Offset(1, 0)).EntireRow.Select
Selection.Rows.Group
If ActiveCell.Offset(-2, 4) = "" Then
ActiveCell.Offset(-2, 4).Select
Else
ActiveCell.Offset(-1, 4).End(xlUp).Offset(-1, 0).Select
End If
Loop
Je sais que je fais faire hurler les perfectionnistes de ce forum qui
n'apprécie pas la présence des "Select"

Certes ils alourdissent le fonctionnement de la Macro mais pour ton
utilité
c'est à mon sens négligeable

Je reste ouvert à toute suggestion qui viserai à améliorer cette
écriture
tout en concervant sa structure et notamment en supprimant ce mal aimé
qui
est le "Select"

En tout état de cause ce bout de code s'inspirant de ta composition
répond à
ton attente

Merci de me confirmer


Bonjour à tous,



Je fais suite au post qui a suscité tant de réactions (voir ma
réponse
dans
le post). J'espère n'avoir froissé personne et que quelqu'un pourra
résoudre
mon nouveau problème...



j'ai un tableau http://cjoint.com/?hmjWGoxicV dans lequel je
souhaterais
grouper les lignes limitées par DO2.


J'ai une macro mais elle fonctionne imparfaitement :


En effet, dans la colonne DO2, lorsque les cases pleines se suivent,
le
code
saute ces lignes (logique).
J'ai essayé avec une double condition, mais le pb, c'est que 3 "DO2"
peuvent
se suivre, voire plus.

Bref, je n'y arrive pas. :-(( Mes connaissances sont trop faibles
pour
résoudre ce pb.

En espérant que quelqu'un pourra m'aider

Slts



Jiffey












1 2 3