begin process at 2010 03 19 21:35:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Comment séparer les données d"une même feuille en plusieurs onglet


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment séparer les données d"une même feuille en plusieurs onglet

vendredi 4 juillet 2008 à 22:27:34 | Comment séparer les données d"une même feuille en plusieurs onglet

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
vendredi 4 juillet 2008 à 23:18:42 | Re : Comment séparer les données d"une même feuille en plusieurs onglet

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.
vendredi 4 juillet 2008 à 23:50:57 | Re : Comment séparer les données d"une même feuille en plusieurs onglet

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.
samedi 5 juillet 2008 à 13:26:00 | Re : Comment séparer les données d"une même feuille en plusieurs onglet

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

samedi 5 juillet 2008 à 13:42:02 | Re : Comment séparer les données d"une même feuille en plusieurs onglet

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.
samedi 5 juillet 2008 à 15:20:50 | Re : Comment séparer les données d"une même feuille en plusieurs onglet

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



Cette discussion est classée dans : données, feuille, onglet, avance, séparer


Répondre à ce message

Sujets en rapport avec ce message

Ajouter des données à un doc [ par fseb ] Bonjour, J'ai un intranet en ASP, sur lequel les utilisateur entrent divers données telles que : nom, prénom, service d'origine, et destinataire, et l'assistant feuille de données de vb6 a disparu! [ par Mary ] mon assistant feuille de données, qui devrait se trouver dans le menu compléments, et dans le sous menu gestionnaire de compléments de visual basic 6. VB6 et base de données [ par Webman ] Salut,Je suis en train de faire un petit petit traitement de texte et plus je progresse et plus c'est difficile....La difficulté actuelle est de lier Validation des données [ par Philg42 ] Bonjour.Je souhaite savoir si un utilisateur à modifié un controle de cette feuille et dans ce cas lui proposer d'enregistrer ou d'annuler ses changem Accéder aux données d'une feuille excel dans VB sans ouvrir excel. [ par Amarande ] Bonjour, Je cherche désespérément un moyen pour résoudre ce problème:j'ai un programme sous VB (6.0), et je dois y insérer une feuille Excel. J'ai vu Couleur onglet feuille Excel [ par Baboune1 ] Salut,comment peut on modifier la couleur de l'onglet d'une feuille Excell avec VBA ou VB6 ?(je sais le faire via Excel) recoupement de données sur deux feuilles [ par okin ] Bonjour, je voudrais vous soumettre mon pb?Voila, je dispose de deux feuilles, dans chacune d'elles j'ai en colonne A un grand nombre de valeurs qui d Base de données [ par noz ] Bonjour, Je débute en VB et j'ai une petite appli sur laquelle je buche depuis qq temps sans résultat: j'ai une petite base de données sur une feuill comment Récup des données ds une feuille .xls sans l'ouvrir [ par zujam ] tout est dans le titre...Merci d'avance


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales