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 :

Insertion colonnes - Décalage données VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut Insertion colonnes - Décalage données VBA
    Bonjour le forum.

    Je souhaite insérer 2 colonnes supplémentaires dans mes onglets "Mois", le problème c'est que cette insertion ne me donne plus les données dans mon onglet "SYNTHESE".
    je joins mon fichier... comme on le constate mes données de l'onglet "SYNTHESE" de janvier ne sont plus renseignés du fait de l'insertion des 2 colonnes "C et D" dans l'onglet de "Janvier"

    Je sais que c'est pas grand chose mais je n'y connais rien en VBA et au risque tout détraquer... je m'adresse à vous.

    Merci par avance
    Cdlt
    Lego
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Je sais que c'est pas grand chose mais je n'y connais rien en VBA et au risque tout détraquer... je m'adresse à vous.
    Vu le code, j'en déduis que tu as récupérer ce classeur quelque part ? Il faut un bon moment pour décortiquer ce code et savoir avec précision ce qu'il fait donc, je pense qu'il serait plus judicieux que tu te tourne vers la personne qui a conçu ce classeur afin qu'elle te renseigne plus rapidement.

    Hervé.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bon, je me suis penché sur le code et fais quelques modifications dans ce dernier afin de prendre en compte les deux colonnes insérées. Mets en commentaire le code situé dans le module de la feuille "SYNTHESE" et colle celui-ci et teste :
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    Private Sub Worksheet_Activate()
     
        Dim M As Long, Plg As Range, Te(), Le&, Ts(), Ls&, _
        Données As Collection, Nom As SsGroup, Prénom As SsGroup, _
        Mois As SsGroup, TotJ As Double, Détail
     
        ReDim Ts(1 To 2000, 1 To 4)
     
        For M = 1 To 12
     
           Set Plg = ColUti(Worksheets(M).[A4:H4]) '<-- modifié ici !
     
           If Not Plg Is Nothing Then
     
                Te = Plg.Value
     
                For Le = 1 To UBound(Te)
     
                    If Te(Le, 5) = 9 Or Te(Le, 5) = 10 Then
     
                        Ls = Ls + 1
     
                        Ts(Ls, 1) = Te(Le, 1)
                        Ts(Ls, 2) = Te(Le, 2)
                        Ts(Ls, 3) = Te(Le, 8) '<-- midifié ici !
     
                        Ts(Ls, 4) = M
     
                    End If
     
                Next Le
     
            End If
     
        Next M
     
        If Ls = 0 Then Exit Sub
     
        MClassement.DernièreLigneIdx = Ls
     
        Set Données = GroupOrg(Ts, 1, 2, 4)
     
        Ls = 0
     
        For Each Nom In Données: Ls = Ls + Nom.Count: Next Nom
     
        ReDim Ts(1 To Ls, 1 To 18)
     
        Ls = 0
        For Each Nom In Données
     
            For Each Prénom In Nom.Contenu
     
                Ls = Ls + 1
     
                Ts(Ls, 1) = Nom.Id
                Ts(Ls, 2) = Prénom.Id
     
                For Each Mois In Prénom.Contenu
     
                    TotJ = 0
     
                    For Each Détail In Mois.Contenu
     
                        TotJ = TotJ + Détail(3)
     
                    If TotJ > 0 Then Ts(Ls, Mois.Id + 2) = TotJ
     
        Next Détail, Mois, Prénom, Nom
     
        ValPlgAju(Me.[Résultat]) = Ts
     
        Me.[Résultat].RowHeight = 24
     
    End Sub

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut
    Merci Theze,

    Effectivement 4 petites modifs et le tour est joué... mais il fallait le faire.

    Merci encore.

    Cdlt
    Lego

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

Discussions similaires

  1. [XL-2007] Insertion image dans base de données - VBA
    Par manuelbrunet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2014, 15h53
  2. [XL-2000] Insertion de colonne impossible en VBA
    Par Tydher dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/06/2011, 11h34
  3. [DBExpress] Formulaire d'insertion (Base de donnée)
    Par Nadd dans le forum C++Builder
    Réponses: 14
    Dernier message: 12/07/2007, 10h22
  4. Réponses: 4
    Dernier message: 03/03/2006, 10h39
  5. Rafraichir dbgrid apres insertion d'une donnée ds une table
    Par gizmorambo dans le forum Bases de données
    Réponses: 7
    Dernier message: 11/01/2005, 16h03

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