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

Excel Discussion :

Remplissage automatique de plusieurs tableaux à partir d'un tableau source


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Remplissage automatique de plusieurs tableaux à partir d'un tableau source
    bonjour,
    je ne suis pas expert en vba.
    je n'ai pas trouvé de discussion se rapportant à mon problème.
    voici mon problème: je souhaiterai que les info écrite dans mon tableau source, ce note automatiquement dans d'autres tableaux.
    a cela, la 1ère colonne du tableau source correspond au nom du client (X) ou (Y), dans lequel la ligne doit être recopié.
    le tableau (x) doit recevoir la ligne entière du tableau source.
    tous les tableaux sont identiques en nombre de colonne, libellés colonnes et autres.
    ils doivent se mettre à jour au fur et à mesure de la saisie du tableau source (ils sont fermés).
    le tableau (X)devant recevoir que les lignes concernant le client X, le tableau (Y) que les lignes concernant le client Y, etc... pour nu nombre de clients définis bien sûr.
    si jamais vous aviez des pistes, cela serai bienvenue

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour recmoon,

    Je vais répéter encore ma phrase habituelle : "un fichier exemple serait le bienvenu"...
    En effet, ton explication semble construite dans ta tête, mais je ne visualise pas du tout ce que tu souhaites.

    Cordialement,
    Kimy

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    bonjour Kimy,
    effectivement je l'avais préparé et oublié de le poser.
    il s'agit de plusieurs fichiers distinctes, que j'ai inséré en onglets.
    la source alimente donc les onglets.
    le nom du client en 1ère colonne source, détermine le fichier de destination.
    la ligne complète doit être recopiée.
    et au fur et à mesure du remplissage de la source, la destination doit se remplir à la suite.
    a ce jour, je le gère en copier-coller. (je passe un temps de fou).
    j'espère que mon explication est un peu plus clair.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    recmoon,

    Tout d'abord, voici quelque chose rapide que je te propose :
    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
    Option Explicit
     
    Sub recmoon()
    Dim rng_in As Range
    Dim rng_out As Range
    Dim wksht As Worksheets
    Dim i As Integer
    'Dim corres(3, 1) As String
     
    'corres(0, 0) = "PARMACOTTO"
    'corres(0, 1) = "parmacotto"
    '
    'corres(1, 0) = "GRANDI PASTA"
    'corres(1, 1) = "grandi"
    '
    'corres(2, 0) = "DELIDESS"
    'corres(2, 1) = "delidess"
    '
    'corres(3, 0) = "CASTELLI"
    'corres(3, 1) = "castelli"
     
     
    With Worksheets("source")
        Set rng_in = .Range("A1")
     
        For i = 1 To .Columns(1).Find("*", , , , , xlPrevious).Row - 1
            With Worksheets(rng_in.Offset(i, 0).Value)
                Set rng_out = .Columns(1).Find("*", , , , , xlPrevious).Offset(1, 0)
     
                rng_in.Offset(i, 0).EntireRow.Copy
                rng_out.PasteSpecial
            End With
        Next i
    End With
     
    End Sub
    En revanche, 3 éléments primordiaux sont nécessaires.

    1) Tout d'abord, tu as des formules du type =SI(E4<>0;SI(ESTERREUR(RECHERCHEV(E4;'T:\Suivi anomalie transport\[litiges transport 2014-2.xlsx]BD'!$G$1:$H$1234;2;FAUX))=VRAI;"client inconnu";RECHERCHEV(E4;'T:\Suivi anomalie transport\[litiges transport 2014-2.xlsx]BD'!$G$1:$H$1234;2;FAUX));"") dans ton tableau source. N'ayant pas les fichiers correspondant, ma macro s’arrête à chaque ligne pour essayer de trouver le fichier.
    Ainsi, j'ai dû enlever ces formules afin de pour la faire passer. Il faudra donc voir, si, sur ton poste, ces formules passent. Autrement, il faudra que tu les insères en texte et non pas de cette manière.
    Je te laisse revenir vers moi pour ce premier point.

    2) Second point, dans ton fichier exemple, tu as un onglet qui n'a pas le même nom que la première colonne du fichier source. Je ne sais pas si cela est compliqué à gérer sur ton fichier final, mais il est préférable que chaque onglet est le même nom que ceux insérés dans la colonne A de l'onglet "source".
    Dans le cas où cela ne serait pas possible, il faut alors soit passer par un tableau de correspondance dans la macro (un exemple est les lignes commentées), mais fastidieux. L'autre astuce serait de faire une validation de données sur la colonne A avec l'ensemble des nom des onglets. Tu serais alors obligé de sélectionner en colonne A un des onglets est le problème serait réglé.

    3) Dernier point : ma macro parcours l'ensemble du fichier source. Ainsi, si tu exécutes deux fois la macro, tu auras deux fois les informations dans chaque onglet. Ne connaissant pas le fonctionnel de ton projet, j'ai procédé ainsi. Cependant, il est facile de faire une suppression d'ensemble avant d'insérer les lignes afin de n'avoir toujours qu'une seule fois l'ensemble des valeurs.

    Voila, autrement, je pense que ça fonctionne.
    N'hésite pas à revenir vers moi pour tout complément !

    Cordialement,
    Kimy

  5. #5
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Kimy tu es un prince !

    depuis 2 ans, je fais des copier - coller, et je commence à voir une lueur d'automatisme pour 2015...
    un grand merci à toi pour ton aide.

    je répond à tes questions:
    1- concernant les formules, apparemment cela fonctionne correctement (car reconnu sur mon poste),
    2- effectivement, la macro stoppe sur un nom pas correct. j'ai écarté le soucis et reviendrai dessus ultérieurement,
    3- sur ce point, je te communique plus d'information.
    le fichier source est alimenté par une personne qui inscrit tous les jours, les informations à le suite de leurs survenances.
    je lance donc ce fichier tous les matin, il ne faut donc pas inscrire en double, les informations du fichier source. cela doit se noter qu'une seule fois.
    il doit transférer ou noté, seulement les informations qui n'ont pas déjà été notées les jours précédents.
    par contre, si je change une cellule saisie le mois dernier, sur la source, elle doit se modifier sur la destination au même endroit (je ne sais pas si j'ai été clair )
    le tableau source est tenue en année civile, donc il y a entre 10.000 et 20.000 lignes...
    d'où mon appel au secours, car je passe un temps de fou.
    4- petit complément d'information, les onglets destination sont en faite des fichiers présent sur le réseau. ils sont donc pas ouvert tout le temps.
    faut-il les ouvrir pour le fonctionnement? ou cela peut se faire fichier fermé?

    encore merci de ton aide

  6. #6
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    2 ans ?!?! Mais tu n'as pas pensé à une automatisation de tâches avant ?!
    Quel courage !!!

    Donc, je reformule pour m'assurer d'avoir compris : quelqu'un alimente le fichier en ne faisant qu'ajouter des lignes. Dans l'hypothèse où une ligne serait supprimée, celle-ci ne devra plus apparaître dans les autres onglets.
    De plus, si une ligne est modifiée, celle-ci doit - forcément - être modifiée dans les onglets.

    C'est ça ? FACIIIILE !!!
    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
    Option Explicit
     
    Sub recmoon()
    Dim rng_in As Range
    Dim rng_out As Range
    Dim wksht As Worksheet
    Dim i As Integer
     
    Application.Visible = False
    Application.Calculation = xlCalculationManual
     
    For Each wksht In Worksheets
        If wksht.Name <> "source" Then
            With wksht
                If .Columns(1).Find("*", , , , , xlPrevious).Row <> 1 Then
                    .Rows("2:" & .Columns(1).Find("*", , , , , xlPrevious).Row).Delete
                End If
            End With
        End If
    Next wksht
     
     
    With Worksheets("source")
        Set rng_in = .Range("A1")
     
        For i = 1 To .Columns(1).Find("*", , , , , xlPrevious).Row - 1
            With Worksheets(rng_in.Offset(i, 0).Value)
                Set rng_out = .Columns(1).Find("*", , , , , xlPrevious).Offset(1, 0)
     
                rng_in.Offset(i, 0).EntireRow.Copy
                rng_out.PasteSpecial
            End With
        Next i
    End With
     
    Application.Calculation = xlCalculationAutomatic
    Application.Visible = True
     
    End Sub


    Alors, concernant le dernier point, en fait, je pense que s'ils ne sont pas ouvert, Excel va te demander d'aller les chercher. C'est aussi possible de le faire par macro, mais il faut les liens, etc...
    De plus, puisque ton fichier possède *beaucoup* de lignes, j'ai accéléré la macro afin qu'elle s’exécute plus rapidement.

    Je crois n'être pas trop mal avec ça. ^^

    N'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

  7. #7
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    un grand merci pour ton aide.
    je test et reviens vers toi rapidement.
    a+

    cdt
    recmoon

Discussions similaires

  1. Remplir plusieurs tableaux à partir d'un fichier XML
    Par MarsVolta dans le forum VBA Word
    Réponses: 2
    Dernier message: 15/05/2016, 20h52
  2. Réponses: 0
    Dernier message: 10/11/2009, 08h58
  3. [AJAX] Remplissage automatique d'un champ à partir d'un évênement
    Par joss91 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/01/2008, 18h10
  4. Remplissage automatique de cellules Excel à partir d'une liste
    Par Gullivert dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2006, 17h48

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