IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modification présentation fichier excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 78
    Points : 86
    Points
    86
    Par défaut Modification présentation fichier excel
    Bonjour,
    J'ai un soucis : je souhaiterais modifier la présentation d'un fichier excel,
    Voici un exmple

    Au départ le fichier est comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Groupe 1	VBA
    Groupe 1	Langage C
    Groupe 1	Java
    Groupe 2	Langage C
    Groupe 2	Java
    Groupe 3	Pascal
    Groupe 3	Java
    Groupe 3	Langage C
    Au final le fichier serait de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Groupe 1	| VBA	    |  Langage C  | Java
    Groupe 2	| Langage C |  Java       |	          
    Groupe 3	| Pascal    |  Java	  | Langage C
    Pour info mon fichier fait 1500 lignes.
    Si quelqu'un a une solution automatisée, merci.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Je peux vous proposer une solution semi-automatique

    Soit A la colonne avec les groupes
    Soit B la colonne avec les type de langage
    On suppose qu'elles ont un titre.

    Sélectionnez toutes les valeurs de la colonne A (y compris de titre), faites données/filtre élaboré/copier vers un autre emplacement
    Pour la plage : il s'agit des valeurs de la colonne A
    Pour copier dans : choisir D2
    Cochez sans doublons

    idem pour le type de langage et mettre en F1

    Sélectionnez les valeurs dans la colonne F sans le titre (donc a partir de F2) et faites copier/Collage spécial/transposé en E2

    Supprimez tous ce qui est inutile en colonne F pour se retrouver au final avec un tableau avec les groupes en ligne et les langages en colonne.

    Insérez une colonne avant A et en formule dans A2 mettez "=B2&C2"
    Maintenant dans la cellule F3 mettez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=SI(ESTERREUR(RECHERCHEV($E3&F$2;$A:$C;3;FAUX))=VRAI;"";RECHERCHEV($E3&F$2;$A:$C;3;FAUX))"
    Ensuite élargir cette formule à tout l'intérieur du tableau.
    Si besoin fait un copier du tableau dans une autre feuille en collant uniquement les valeur et supprimez ce qui ne sert pas (le titre des colonnes).

    Ça à l'air compliqué à l'écrit mais ça se fait bien en pratique :p

    Cordialement,

  3. #3
    Membre habitué
    Profil pro
    Business Analyst
    Inscrit en
    Juin 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Business Analyst

    Informations forums :
    Inscription : Juin 2009
    Messages : 93
    Points : 152
    Points
    152
    Par défaut
    Bonjour,

    Une sorte de dénormalisation, quoi...
    Essaie via un TCD, ça fait bricolo mais ça devrait marcher.

    Etapes :
    - tu places le champ "groupe" en zone de lignes, le champ "langage" en zone de colonnes, et l'un des deux (peu importe lequel) en zone de données.
    - tu auras un tableau à double entrée avec un comptage d'occurences (normalement que des valeurs "1").
    - tu supprimes les totaux (lignes et colonnes), puis tu copies-colles le tout en valeur.
    - nettoyage : tu vires la ligne supérieure de l'ex-TCD, tu cales le reste en haut à gauche de la feuille.

    Arrivé ici, c'est peut-être déjà une réponse à la demande, non ?

    Pour continuer :
    - en dessous, tu copies-colles le tableau à l'identique, tu y vides les "1" de ce qui était jadis la zone de données.
    - et à la place tu entres une formule qui dit :
    N'oublie pas le "$", remplis vers la droite et vers le bas, copie-colle en valeur, supprime le tableau du haut, et hop.

    Benoît

  4. #4
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Données en colonnes A et B.
    Résultats en colonne D, E, etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub t()
     
    Dim c As New Collection
    Dim deux As New Collection
    Dim i As Long, j As Long, k As Long
    Dim derlig As Long
    derlig = 9
     
    For i = 1 To derlig
      On Error Resume Next
      c.Add Cells(i, 1).Value, Cells(i, 1).Value  'élimine doublons
    Next
     
    For j = 1 To c.Count
     Cells(j, 4).Value = c.Item(j)
     
     Set deux = Nothing
       For i = 1 To derlig
        If Cells(i, 1) = c.Item(j) Then
          On Error Resume Next
          'deux.Add Cells(i, 2) 'affiche les doublons
          deux.Add Cells(i, 2), Cells(i, 2)  'élimine les doublons
        End If
       Next
       For k = 1 To deux.Count
         Cells(j, 4 + k).Value = deux.Item(k)
       Next
    Next
     
    End Sub
    Cordialement

    Docmarti.

Discussions similaires

  1. [WD-2007] modification de fichier excel via VBA Word
    Par astroflo dans le forum VBA Word
    Réponses: 1
    Dernier message: 21/03/2012, 10h57
  2. Réponses: 5
    Dernier message: 13/02/2012, 19h37
  3. problème de modification du fichier Excel
    Par akharraz dans le forum Général Java
    Réponses: 3
    Dernier message: 02/02/2012, 19h19
  4. Importer et garder présentation fichier Excel
    Par guiguilive dans le forum Access
    Réponses: 3
    Dernier message: 31/05/2007, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo