begin process at 2008 08 29 19:53:20
1 233 870 membres
392 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment séparer les données d"une même feuille en plusieurs onglet [ Divers / Débutants ] (idieordeco)

Comment séparer les données d"une même feuille en plusieurs onglet le 04/07/2008 22:27:34

idieordeco
Bonjour,

Je ne suis pas bien sur d'être dans la bonne section, désolé par avance. (C'est ou VBA Excel ?)
Je suis sur VBA Excel et je souhaite séparer les données d'un même onglet et plusieurs onglets en fonction des critères de la colonne A
Exemple :
J'ai un onglet avec ça comme base :
A              B                  C
CAC40     01/01/08        4019
CAC40     02/01/08        4023
CAC40     03/01/08        4043
SBF120    01/01/08        235
SBF120    02/01/08        238
SBF120    03/01/08        245
(...)          (...)                (...)

Au finale je veux ça (avec cet exemple)
Onglet 2
A              B                  C
CAC40     01/01/08        4019
CAC40     02/01/08        4023
CAC40     03/01/08        4043

Onglet 3
SBF120    01/01/08        235
SBF120    02/01/08        238
SBF120    03/01/08        245

Onglet n
(...)          (...)                (...)

Et l'onglet 1 vide au final !

Je me suis complétement perdu dans le code avec une variable qui teste la colonne A et si cette dernière est différente de A-1 alors tu crée un nouvel onglet sinon tu copies colles sur le dernier onglet crée.
Voila voila, lost in translation idieordeco...
Si quelqu'en peut me rebrancher sur une piste ?

Merci par avance !

Bière qui roule bière qui mousse

Re : Comment séparer les données d"une même feuille en plusieurs onglet le 04/07/2008 23:18:42

us_30
Membre Club
Bonsoir,

Il semble que tu analyses bien ton problème... Maintenant, je pense que l'algo que tu veux faire n'est pas très bon...
En effet, le moindre désordre rendait tout bordelique, avec 2 onglets pour une même rubrique... je ne détaille pas plus, mais personnellement, je suivrais un autre chemin... en prenant un nom d'onglet valant celui de la colonne A.

Schématiquement, voici les étapes :

1er étape :
- Faire une fonction qui repère le nb d'enregistrement dans une feuille (c'est facile, et existe déjà...)

2 étape : l'algo...
- Recherche le nb d'enregistrement => fin
- De la ligne 1 à fin
- Lire l'élément de la colonne A (un enregistrement : CAC40 par exemple)
- Copier la ligne entière (avec les fonctions intégrées d'Excel => selection.copy)
- Rechercher parmi les noms des onglets, si CAC40 existe
- Selon la réponse on va à l'étape 3 ou 5

3 étapes : L'onglet existe !
- Changer la feuille correspondante à l'onglet
- Recherche le nb d'enregistrement => fin
- Se positionner juste une ligne après
- Coller la copie précédente (avec les fonctions d'Excel)

4 étapes : Retour à l'étape 2

5 étapes : L'onglet n'existe pas !
- Créer un onglet (Sheet.add)
- Changer son nom avec la valeur de l'élément de la colonne A précédent.
- Retour à l'étape 3

Amicalement,
Us.

Re : Comment séparer les données d"une même feuille en plusieurs onglet le 04/07/2008 23:50:57

LIBRE_MAX
Salut,
regardes cette discution..si ça peut t' aider.
http://www.vbfrance.com/infomsg_QUESTION-SUBSIDIAIRE-VB6-AJOUTER-FEUILLE-CLASSEUR_1164051.aspx#18

En partant du principe que tu regrouperas tout dans une seule feuille, qui servira selon l' exemple, comme source de données.


... Y'en a même qui disent qu'ils l'ont vu voler.

Re : Comment séparer les données d"une même feuille en plusieurs onglet le 05/07/2008 13:26:00

idieordeco

Bonjour,

Tout d'abord, merci pour vos réponses.
J'ai repensé mon système.
En fait les données que je souhaite mettre en onglet font 170000 lignes pour 600 variables en A. (J'ai excel 2007 donc ça passe sans problème)
Seul souci ça va mettre deux ans à trier.
Dans l'idéal, après le tri des indices, je serai à 200 variables A et 50000 lignes (Là, c'est pour le boulot et Excel 2003 :) )

Maintenant je repense le système et je met les données en colonne.

Avant j'avais ça sur mon onglet indice:
A              B                  C
CAC40     01/01/08        4019
CAC40     02/01/08        4023
CAC40     03/01/08        4043
SBF120    01/01/08        235
SBF120    02/01/08        238
SBF120    03/01/08        245

Je vais faire ça sur un autre onglet VL (et un seul) :
                A             B (...)             J                  K                ETC....
 1                                                   CAC 40       SBF 120
 2              01/01/08                       4019            235
 3              02/01/08                       4023            238
 4              03/01/08                       4043            245

Le principe du début de la moulinette est le suivant :
Le filtre les indices les un après les autres par leur code (Qui une variable nombre) puis je copie/colle la valeur de l'indice sur l'onglet VL et colonne.
ça donne ça :

Sub tri()

Dim j As Long
Dim critere As Long
For critere = 85 To 100000
For j = 12 To 1000

    Sheets("indices").Select
    ActiveSheet.Range("$A:$G").AutoFilter Field:=8, Criteria1:=critere
    Columns("C:C").Select
    Selection.Copy
    Sheets("VL").Select
    Columns(j).Select
    ActiveSheet.Paste
    Next j
    Next critere

Le truc c'est que ma variable critere ne s'implémente pas. (Donc je copie/colle toujours le même indice (hum !)
En pas à pas, la moulinette passe de next j au début (sans passer sur Next critere donc)

Bière qui roule bière qui mousse


Re : Comment séparer les données d"une même feuille en plusieurs onglet le 05/07/2008 13:42:02

LIBRE_MAX
Réponse acceptée !
>>Le truc c'est que ma variable critere ne s'implémente pas. (Donc je copie/colle toujours le même indice (hum !)

Pas fort en VBA, alors Question:
Est-ce que ActiveSheet.Range("$A:$G").AutoFilter Field:=8, Criteria1:=critere
suffit pour éviter que ça copie et colle toujours le même indice.Car à part ça, l' indice critère ne figure nulle part ailleur.Dans ta boucle tu ne te refères qu' à J.
(Columns(j).Select)

A part ça, difficile pour moi de t' aider sur ce coup là !  

... Y'en a même qui disent qu'ils l'ont vu voler.

Re : Comment séparer les données d"une même feuille en plusieurs onglet le 05/07/2008 15:20:50

idieordeco
Dim critere As Long
For critere = 85 To 100000

    Sheets("indices").Select
    ActiveSheet.Range("$A:$G").AutoFilter Field:=8, Criteria1:=critere
    Columns("C:C").Select
    Selection.Copy
    Sheets("VL").Select
    Columns("J:J").Select
    Selection.Insert Shift:=xlToRight
    Sheets("indices").Select
    ActiveSheet.Range("$A:$H").AutoFilter Field:=8

next critere

En fait comme ça, ça marche.

Mais j'arrête là car je ne suis pas bien sur des données sources que je traite.
Merci pour tout

Bière qui roule bière qui mousse



Classé sous : données, feuille, onglet, avance, séparer

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS