J'ai une feuille contenant environ 7 à 10 000 lignes de données
extraites d'une base SQL
J'ai une colonne équipe qui me donne le code de l'agent (style
1AR,1D00,2B00,3000...) soit environ 25 codes differents.
De cette feuille je voudrais "eclater" toutes les données lignes
afférantes à ce meme code agent dans un onglet spécifique ou portant le
meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme
je veux), en faisant un tableau croisé dynamique mais cela me demande
des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne !
John
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré. Cependant, tu vas devoir répéter 20 fois la même procédure pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules Exemple :
En G1 l'étiquette de colonne où sont les codes "agent" En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter que tu dois appeler la commande "Filtre élaboré". Il ne te reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré.
Cependant, tu vas devoir répéter 20 fois la même procédure
pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules
Exemple :
En G1 l'étiquette de colonne où sont les codes "agent"
En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter
que tu dois appeler la commande "Filtre élaboré". Il ne te
reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Oui c'est possible en utilisant un filtre élaboré. Cependant, tu vas devoir répéter 20 fois la même procédure pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules Exemple :
En G1 l'étiquette de colonne où sont les codes "agent" En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter que tu dois appeler la commande "Filtre élaboré". Il ne te reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
John
michdenis a écrit :
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré. Cependant, tu vas devoir répéter 20 fois la même procédure pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules Exemple :
En G1 l'étiquette de colonne où sont les codes "agent" En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter que tu dois appeler la commande "Filtre élaboré". Il ne te reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Déjà un grand merci à toi MichDenis !
Je vais essayer... Question, cela peut-il etre automatisé? Je veux dire que je n'ai plus qu'à ecraser les données de la feuille principale chaque semaine ?
michdenis a écrit :
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré.
Cependant, tu vas devoir répéter 20 fois la même procédure
pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules
Exemple :
En G1 l'étiquette de colonne où sont les codes "agent"
En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter
que tu dois appeler la commande "Filtre élaboré". Il ne te
reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Déjà un grand merci à toi MichDenis !
Je vais essayer...
Question, cela peut-il etre automatisé?
Je veux dire que je n'ai plus qu'à ecraser les données de la feuille
principale chaque semaine ?
Oui c'est possible en utilisant un filtre élaboré. Cependant, tu vas devoir répéter 20 fois la même procédure pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules Exemple :
En G1 l'étiquette de colonne où sont les codes "agent" En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter que tu dois appeler la commande "Filtre élaboré". Il ne te reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Déjà un grand merci à toi MichDenis !
Je vais essayer... Question, cela peut-il etre automatisé? Je veux dire que je n'ai plus qu'à ecraser les données de la feuille principale chaque semaine ?
michdenis
Un fichier exemple ici : http://cjoint.com/?ebbGGRdHfO
Le contenu de la procédure :
'-------------------------------------------------------- Sub test() Dim Arr(), Rg As Range, C As Range, A As Integer Dim DerCol As Integer, DerLig As Long, Elt As Variant Dim Sh As Worksheet, NomFeuille As String
With Worksheets("Sheet1") ' Nom à adapter 'adresse de la colonne où sont les agents -> à adapter With .Range("B1:B" & .Range("B65536").End(xlUp).Row) .AdvancedFilter xlFilterInPlace, , , True For Each C In .Offset(1).Resize(.Rows.Count - 1). _ SpecialCells(xlCellTypeVisible) A = A + 1 ReDim Preserve Arr(1 To A) Arr(A) = C.Value Next End With .ShowAllData DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row
'Il est pris pour acquis que ton tableau débute en A1 Set Rg = .Range("A1", .Cells(DerLig, DerCol)) End With
On Error Resume Next For Each Elt In Arr Err = 0 Set Sh = Worksheets(Elt) If Err = 0 Then Sh.Cells.Clear Else Err = 0 Set Sh = Worksheets.Add(after:=Sheets(Sheets.Count)) Sh.Name = Elt End If With Rg .AutoFilter field:=2, Criteria1:=Elt .SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1") End With Next Rg.AutoFilter Worksheets(NomFeuille).Select Application.EnableEvents = True Application.ScreenUpdating = True
End Sub '--------------------------------------------------------
"John" a écrit dans le message de groupe de discussion :
michdenis a écrit :
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré. Cependant, tu vas devoir répéter 20 fois la même procédure pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules Exemple :
En G1 l'étiquette de colonne où sont les codes "agent" En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter que tu dois appeler la commande "Filtre élaboré". Il ne te reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Déjà un grand merci à toi MichDenis !
Je vais essayer... Question, cela peut-il etre automatisé? Je veux dire que je n'ai plus qu'à ecraser les données de la feuille principale chaque semaine ?
Un fichier exemple ici : http://cjoint.com/?ebbGGRdHfO
Le contenu de la procédure :
'--------------------------------------------------------
Sub test()
Dim Arr(), Rg As Range, C As Range, A As Integer
Dim DerCol As Integer, DerLig As Long, Elt As Variant
Dim Sh As Worksheet, NomFeuille As String
With Worksheets("Sheet1") ' Nom à adapter
'adresse de la colonne où sont les agents -> à adapter
With .Range("B1:B" & .Range("B65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
For Each C In .Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible)
A = A + 1
ReDim Preserve Arr(1 To A)
Arr(A) = C.Value
Next
End With
.ShowAllData
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Il est pris pour acquis que ton tableau débute en A1
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With
On Error Resume Next
For Each Elt In Arr
Err = 0
Set Sh = Worksheets(Elt)
If Err = 0 Then
Sh.Cells.Clear
Else
Err = 0
Set Sh = Worksheets.Add(after:=Sheets(Sheets.Count))
Sh.Name = Elt
End If
With Rg
.AutoFilter field:=2, Criteria1:=Elt
.SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1")
End With
Next
Rg.AutoFilter
Worksheets(NomFeuille).Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------
"John" <mclain@live.fr> a écrit dans le message de groupe de discussion :
OoXcY0R0KHA.3708@TK2MSFTNGP02.phx.gbl...
michdenis a écrit :
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré.
Cependant, tu vas devoir répéter 20 fois la même procédure
pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules
Exemple :
En G1 l'étiquette de colonne où sont les codes "agent"
En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter
que tu dois appeler la commande "Filtre élaboré". Il ne te
reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Déjà un grand merci à toi MichDenis !
Je vais essayer...
Question, cela peut-il etre automatisé?
Je veux dire que je n'ai plus qu'à ecraser les données de la feuille
principale chaque semaine ?
Un fichier exemple ici : http://cjoint.com/?ebbGGRdHfO
Le contenu de la procédure :
'-------------------------------------------------------- Sub test() Dim Arr(), Rg As Range, C As Range, A As Integer Dim DerCol As Integer, DerLig As Long, Elt As Variant Dim Sh As Worksheet, NomFeuille As String
With Worksheets("Sheet1") ' Nom à adapter 'adresse de la colonne où sont les agents -> à adapter With .Range("B1:B" & .Range("B65536").End(xlUp).Row) .AdvancedFilter xlFilterInPlace, , , True For Each C In .Offset(1).Resize(.Rows.Count - 1). _ SpecialCells(xlCellTypeVisible) A = A + 1 ReDim Preserve Arr(1 To A) Arr(A) = C.Value Next End With .ShowAllData DerCol = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious).Column DerLig = .Cells.Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row
'Il est pris pour acquis que ton tableau débute en A1 Set Rg = .Range("A1", .Cells(DerLig, DerCol)) End With
On Error Resume Next For Each Elt In Arr Err = 0 Set Sh = Worksheets(Elt) If Err = 0 Then Sh.Cells.Clear Else Err = 0 Set Sh = Worksheets.Add(after:=Sheets(Sheets.Count)) Sh.Name = Elt End If With Rg .AutoFilter field:=2, Criteria1:=Elt .SpecialCells(xlCellTypeVisible).Copy Sh.Range("A1") End With Next Rg.AutoFilter Worksheets(NomFeuille).Select Application.EnableEvents = True Application.ScreenUpdating = True
End Sub '--------------------------------------------------------
"John" a écrit dans le message de groupe de discussion :
michdenis a écrit :
Bonjour,
| Cela est-il possible sans faire du VB?
Oui c'est possible en utilisant un filtre élaboré. Cependant, tu vas devoir répéter 20 fois la même procédure pour chacun de tes groupes.
Pour ce faire, tu définis une zone de critère ayant 2 cellules Exemple :
En G1 l'étiquette de colonne où sont les codes "agent" En G2 tu écris le code d'un premier agent
Tu crées la feuille que tu baptises au nom du premier agent
IMPORTANT : C'est à partir de la feuille (feuille active) que tu viens d'ajouter que tu dois appeler la commande "Filtre élaboré". Il ne te reste plus qu'à renseigner les différentes cases de la fenêtre du filtre élaboré.
Tu répètes ce processus pour tous les codes agents que tu as.
Déjà un grand merci à toi MichDenis !
Je vais essayer... Question, cela peut-il etre automatisé? Je veux dire que je n'ai plus qu'à ecraser les données de la feuille principale chaque semaine ?
Thierry
Bonjour, Si vous avez Access, il y a cette procédure que j'utilise très souvent : http://www.datapigtechnologies.com/flashfiles/accessexplosion.html
Vous pourrez télécharger le fichier tout en bas de cette page http://www.datapigtechnologies.com/AccessMain.htm
Bon courage.
"John" a écrit dans le message de news:%
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites d'une base SQL J'ai une colonne équipe qui me donne le code de l'agent (style 1AR,1D00,2B00,3000...) soit environ 25 codes differents. De cette feuille je voudrais "eclater" toutes les données lignes afférantes à ce meme code agent dans un onglet spécifique ou portant le meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je veux), en faisant un tableau croisé dynamique mais cela me demande des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne ! John
Bonjour,
Si vous avez Access, il y a cette procédure que j'utilise très souvent :
http://www.datapigtechnologies.com/flashfiles/accessexplosion.html
Vous pourrez télécharger le fichier tout en bas de cette page
http://www.datapigtechnologies.com/AccessMain.htm
Bon courage.
"John" <mclain@live.fr> a écrit dans le message de
news:%23rVWYkR0KHA.4420@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites
d'une base SQL
J'ai une colonne équipe qui me donne le code de l'agent (style
1AR,1D00,2B00,3000...) soit environ 25 codes differents.
De cette feuille je voudrais "eclater" toutes les données lignes
afférantes à ce meme code agent dans un onglet spécifique ou portant le
meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je
veux), en faisant un tableau croisé dynamique mais cela me demande des
manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne !
John
Bonjour, Si vous avez Access, il y a cette procédure que j'utilise très souvent : http://www.datapigtechnologies.com/flashfiles/accessexplosion.html
Vous pourrez télécharger le fichier tout en bas de cette page http://www.datapigtechnologies.com/AccessMain.htm
Bon courage.
"John" a écrit dans le message de news:%
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites d'une base SQL J'ai une colonne équipe qui me donne le code de l'agent (style 1AR,1D00,2B00,3000...) soit environ 25 codes differents. De cette feuille je voudrais "eclater" toutes les données lignes afférantes à ce meme code agent dans un onglet spécifique ou portant le meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je veux), en faisant un tableau croisé dynamique mais cela me demande des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne ! John
mugrec75
bonjour John,
créer le tableau croisé dynamique en mettant le code agent en zone page et cliquer sur le bouton "afficher les pages " de la barre TCD, ça générera un onglet par code agent
cordialement
"John" wrote:
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites d'une base SQL J'ai une colonne équipe qui me donne le code de l'agent (style 1AR,1D00,2B00,3000...) soit environ 25 codes differents. De cette feuille je voudrais "eclater" toutes les données lignes afférantes à ce meme code agent dans un onglet spécifique ou portant le meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je veux), en faisant un tableau croisé dynamique mais cela me demande des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne ! John .
bonjour John,
créer le tableau croisé dynamique en mettant le code agent en zone page
et cliquer sur le bouton "afficher les pages " de la barre TCD, ça générera
un onglet par code agent
cordialement
"John" wrote:
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données
extraites d'une base SQL
J'ai une colonne équipe qui me donne le code de l'agent (style
1AR,1D00,2B00,3000...) soit environ 25 codes differents.
De cette feuille je voudrais "eclater" toutes les données lignes
afférantes à ce meme code agent dans un onglet spécifique ou portant le
meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme
je veux), en faisant un tableau croisé dynamique mais cela me demande
des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne !
John
.
créer le tableau croisé dynamique en mettant le code agent en zone page et cliquer sur le bouton "afficher les pages " de la barre TCD, ça générera un onglet par code agent
cordialement
"John" wrote:
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites d'une base SQL J'ai une colonne équipe qui me donne le code de l'agent (style 1AR,1D00,2B00,3000...) soit environ 25 codes differents. De cette feuille je voudrais "eclater" toutes les données lignes afférantes à ce meme code agent dans un onglet spécifique ou portant le meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je veux), en faisant un tableau croisé dynamique mais cela me demande des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne ! John .
John
mugrec75 a écrit :
bonjour John,
créer le tableau croisé dynamique en mettant le code agent en zone page et cliquer sur le bouton "afficher les pages " de la barre TCD, ça générera un onglet par code agent
cordialement
"John" wrote:
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites d'une base SQL J'ai une colonne équipe qui me donne le code de l'agent (style 1AR,1D00,2B00,3000...) soit environ 25 codes differents. De cette feuille je voudrais "eclater" toutes les données lignes afférantes à ce meme code agent dans un onglet spécifique ou portant le meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je veux), en faisant un tableau croisé dynamique mais cela me demande des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne ! John .
UN GRAND MERCI 0 VOUS TOUS !!! JE VAIS TESTER TOUT CELA ! JE VOUS TIENS AU COURANT
mugrec75 a écrit :
bonjour John,
créer le tableau croisé dynamique en mettant le code agent en zone page
et cliquer sur le bouton "afficher les pages " de la barre TCD, ça générera
un onglet par code agent
cordialement
"John" wrote:
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données
extraites d'une base SQL
J'ai une colonne équipe qui me donne le code de l'agent (style
1AR,1D00,2B00,3000...) soit environ 25 codes differents.
De cette feuille je voudrais "eclater" toutes les données lignes
afférantes à ce meme code agent dans un onglet spécifique ou portant le
meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme
je veux), en faisant un tableau croisé dynamique mais cela me demande
des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne !
John
.
UN GRAND MERCI 0 VOUS TOUS !!!
JE VAIS TESTER TOUT CELA ! JE VOUS TIENS AU COURANT
créer le tableau croisé dynamique en mettant le code agent en zone page et cliquer sur le bouton "afficher les pages " de la barre TCD, ça générera un onglet par code agent
cordialement
"John" wrote:
Bonsoir,
Je vous remercie par avance de votre aide.
J'ai une feuille contenant environ 7 à 10 000 lignes de données extraites d'une base SQL J'ai une colonne équipe qui me donne le code de l'agent (style 1AR,1D00,2B00,3000...) soit environ 25 codes differents. De cette feuille je voudrais "eclater" toutes les données lignes afférantes à ce meme code agent dans un onglet spécifique ou portant le meme nom.
J'ai essayé avec les fonctions recherchev (qui ne fonctionne pas comme je veux), en faisant un tableau croisé dynamique mais cela me demande des manips...
Cela est-il possible sans faire du VB?
Vraiment merci à vous d'éclairer ma lanterne ! John .
UN GRAND MERCI 0 VOUS TOUS !!! JE VAIS TESTER TOUT CELA ! JE VOUS TIENS AU COURANT