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 :

Mise en forme tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Par défaut Mise en forme tableau
    Salut a toutes et a tous

    J'ai encore un probleme de mise en forme.
    J'ai un tableau (fichier joint).

    Voila les modif a y apporter.
    Je doit inserer autant de ligne que de mois.
    Puis copier les materiel et les description materiel.
    Inserer 2 colonnes a la suite M
    1ere Colonne insere :
    Reprendre 1 a 1 les references qui sont repretorier par mois dans chacune des colonnes crées.
    2eme colonne insere :
    Creer une date au 1er de cahque mois en fonction des mois sous ce format 01jan2008.



    Je vous met le debut de mon code (tres lourd)



    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Sub Reorganisation()
     
        Dim f As Long
        Dim Cellule As Range
     
    'copie des 9 lignes pour reorganisation du tableau
    '9 ligne pour une ligne exisante...
        For f = Range("a" & Rows.Count).Row To 2 Step -1
            Set Cellule = Range("a" & f)
            If Cellule(0).Value <> Cellule Then Cellule.EntireRow.Insert Shift:=xlDown
        Next f
     
     
            For f = Range("a" & Rows.Count).Row To 2 Step -1
                Set Cellule = Range("a" & f)
                If Cellule(0).Value <> Cellule Then Cellule.EntireRow.Insert Shift:=xlDown
            Next f
     
     
                For f = Range("a" & Rows.Count).Row To 2 Step -1
                    Set Cellule = Range("a" & f)
                    If Cellule(0).Value <> Cellule Then Cellule.EntireRow.Insert Shift:=xlDown
                Next f
     
     
                    For f = Range("a" & Rows.Count).Row To 2 Step -1
                        Set Cellule = Range("a" & f)
                        If Cellule(0).Value <> Cellule Then Cellule.EntireRow.Insert Shift:=xlDown
                    Next f
     
     
                        For f = Range("a" & Rows.Count).Row To 2 Step -1
                            Set Cellule = Range("a" & f)
                            If Cellule(0).Value <> Cellule Then Cellule.EntireRow.Insert Shift:=xlDown
                        Next f
     
     
    'Suppression des ligne non utiles dans le haut du tableau.
        Rows("1:6").Select
        Selection.Delete Shift:=xlUp
        Rows("2:10").Select
        Selection.Delete Shift:=xlUp
        Rows("3:7").Select
        Selection.Delete Shift:=xlUp
        Rows("4:8").Select
        Selection.Delete Shift:=xlUp
        Rows("5:9").Select
        Selection.Delete Shift:=xlUp
        Rows("6:10").Select
        Selection.Delete Shift:=xlUp
        Rows("7:15").Select
        Selection.Delete Shift:=xlUp
     
     
    'Ajout de colones pour traitement des données
        Columns("D:D").Select
        Selection.Insert Shift:=xlToRight
        Selection.Insert Shift:=xlToRight
     
     
     
     
    End Sub

    J'aurais besoin d'un serieux coup de main je bloque.
    Je vois que ca ne fonctionne pas comme je le voulais
    Mais ca vous donne une idee de ma manipe
    N'hesiter pas a laisser des com pour + l'explication.
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    Je n'ai pas regardre ton fichier mais j'ai 2 remarque sur ton code
    Pourquoi a tu repeter 5 fois la meme boucle for sans rien changer a l'interieur?
    Si tu dois repeter x fois cette boucle place la dans une boucle for ... 1 to x, ca sera deja moins lourd.
    La 2eme remarque est au sujet de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     f = Range("a" & Rows.Count).Row
    Le row qu'elle te retourne est le row de la derniere cellule de ta colonne, mais pas la derniere vide, la derniere 65540.. peut etre est ce que tu souhaite mais j'en doute, ca alourdi enormement la routine. Prefert peut etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = Range("a" & Rows.Count).End(xlUp).Row
    Qui te pointera la derniere cellule non vide de ta colonne.

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Par défaut
    Deja a alourdi moin la macro

    Le soucis en fait c de copier 9 lignes blanches a la suite d'une ligne remplie.
    Et c la que je trouve pas la bonne manip.

    Apres il faut recopier sur ces 9 ligne la ligne qui precede.

    Ou + simple (peut etre) se serai de copier 9 x la ligne puis recommancer...

    Deja c mieux
    A peluche

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    Ben au hazard je dirais qu'il faut utilsé Range(...).copy et range(...).Insert avec un si ces 2 fonctions pour plus amples informations

    Tu peux enregistrer egalement une macro et faire les action copier inserer puis aller voir le code qu'a generé Excel.


    Bon courrage
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Par défaut
    Je bloque severe sur ce tableau de m....

    J'arrive pas a definir les bon parametres pour permettre 9 ligne entre chaque ligne existante.
    Puis copier les references qui sont dessus.

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAlut
    Je ne sais pas ce que tu cherche a faire exactement mais une simple boucle qui copi/insert 9 fois est simple a realiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Application.CutCopyMode = False
        For I = 1 To 9
            Rows("6:6").Copy
            Rows("8:8").Insert Shift:=xlDown
        Next I
    Celle ci copie la ligne 6 et l'insert avant la ligne 8, as toi de modifier ca pour avoir le resultat escompté

    [Edit] En reprenant ton post du debut j'ai vu que tu avais joint un fichier, j'ai regarder un peu plus en avant ton fichier mais je ne comprend pas, avec les infos que tu fourni dans ton 1er post ce que tu veux faire exactement, tu parles de créer des ligne apres tu parle de crée des colonnes en fonction des colonne créés... je trouve pas ca tres claire.
    Tu delmande a inserer des colonne a la suite de la colonne M, hors apres la colonne M il n'y a plus rien donc autant utiliser les colonne N et O qui sont vide, non?
    Dans ta boucle While, qui se trouve dans ton module, tu cherche a incrementer i visiblement, mais tu met celui ci en dehors de la boucle.
    Encore une fois, sans explication claire et detailé il est tres dur de repondre aux demandes.
    En attendant plus de detail
    ++[/Edit]

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en forme tableau croisé dynamique
    Par opus06 dans le forum IHM
    Réponses: 0
    Dernier message: 13/05/2008, 11h40
  2. mise en forme tableau html et php
    Par rgdu86 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/03/2008, 18h49
  3. mise en forme tableau word depuis excel
    Par cobol80 dans le forum VBA Word
    Réponses: 2
    Dernier message: 26/02/2008, 12h02
  4. Problème de mise en forme (tableau)
    Par Mat67 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 04/06/2007, 16h55
  5. Mise en forme tableau word avec VB6
    Par alexxx69 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/04/2007, 12h50

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