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 :

Compléter un tableau à partir d'un autre tableau [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Compléter un tableau à partir d'un autre tableau
    Bonjour,

    Je voudrais compléter le tableau TB à partir du tableau TD. TB est en feuille BD et TD en feuille donnees.

    correspondances des données:

    TB------------colB-----------colC-----------colD------------colE-----------colF-----------colG
    TD------------colA-----------colB-----------colC------------colD-----------colE-----------colF

    suivant la correspondance de colonne les données sont identiques.

    Sur la feuille donnees (TD), en colF figure des noms que je voudrais inscrire en colG de la feuille BD (TB).

    En vous remerciant beaucoup pour votre précieuse aide.

    Cordialement,
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    c'est quoi la question ? Quelle est la difficulté rencontrée ? Où est le code ? (entre balises, merci !)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    La question est comment reporter les données de la colonne F de la feuille "donnees" dans la colonne G de la feuille "BD".

    Les critères sont l'égalité des données entre les colonnes des 2 feuilles:

    feuille "donnees".........colA..............colB............colC...........colD
    feuille "BD".................colB..............colC............colD...........colE

    la colonne D feuille "donnees" contient des décimaux nous prendrons l'entier. c'est identique pour la colonne E de la feuille "BD".
    Je ne maitrise pas bien (pour ne pas dire pas du tout) les tableaux, je n'arrive pas à traduire ce que je faire en code.

    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
    Option Explicit
     
    Sub completer_bd()
    Dim LastLig As Long, i As Long, j As Long
    Dim Tb, Td
     
    With Worksheets("donnees")
    LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
    Td = .Range("A2:F" & LastLig)
    End With
     
    With Worksheets("bd")
        LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
        Tb = .Range("B2:G" & LastLig)
        For i = 1 To LastLig - 1
        'comment utiliser les tableaux, pour faire comparaison et inscrire appareil en colonne G
          If Td(i, 1) = Tb(j, 1) And Td(i, 2) = Tb(j, 2) And Td(i, 3) = Tb(j, 3) And Int(Td(i, 4)) = Int(Tb(j, 4)) Then
          Tb(j, 6) = Td(i, 6)
     
        Next i
        .Range("C2:G" & LastLig) = Tb
    End With
    End Sub
    En vous remerciant par avance.

    Cordialement,

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Option Explicit
     
    Sub Completer_Bd()
    Dim LastLigD As Long, LastLigB As Long, i As Long, j As Long
    Dim Tb, Td
     
    With Worksheets("DONNEES")
        LastLigD = .Cells(.Rows.Count, "A").End(xlUp).Row
        Td = .Range("A2:F" & LastLigD)
    End With
     
    With Worksheets("BD")
        LastLigB = .Cells(.Rows.Count, "B").End(xlUp).Row
        Tb = .Range("B2:G" & LastLigB)
        For i = 1 To LastLigD - 1
            For j = 1 To LastLigB - 1
                If Td(i, 1) = Tb(j, 1) And Td(i, 2) = Tb(j, 2) And Td(i, 3) = Tb(j, 3) And Int(Td(i, 4)) = Int(Tb(j, 4)) Then Tb(j, 6) = Td(i, 6)
            Next j
        Next i
        .Range("B2:G" & LastLigB) = Tb
    End With
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour Mercatog,

    Je te remercie beaucoup. Comme à l'accoutumée, tes codes sont parfaits.

    je t'avoue que j'ai fait un effort pour comprendre le fonctionnement des tableaux. J'ai étudié quelques les tutoriaux sur le sujet, effectué quelques exercices simples proposés. Mais comme tout se passe en mémoire et que je n'arrive pas à les conceptualiser dans ma petite, ça me déroute complétement.

    Encore merci. Joyeuses fêtes de Pâques.

    Cordialement,

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Il suffit de faire une analogie entre Cellules d'une plage sur une feuille et les cases d'une variable tableau.

    En effet quant tu écris Tb=Feuil1.Range("B4:E25").Value -
    Tb(3,2) correspond à Feuil1.Range("B4:E25").Cells(3,2) càd Feuil1.Cells(6, 3) ou Feuil1.Range("C6") -

    Tb(1,1) correspond à Feuil1.Range("B4:E25").Cells(1,1) càd Feuil1.Cells(4, 2) ou Feuil1.Range("B4")Fais une petite illustration.

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

Discussions similaires

  1. création d'un tableau à partir d'un autre tableau
    Par ferhat.adel dans le forum Langage
    Réponses: 6
    Dernier message: 10/03/2011, 17h02
  2. [XL-2007] Mise à jour d'un tableau à partir d'un autre tableau générique
    Par NoxfromParis dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/01/2011, 20h40
  3. Initialiser un tableau à partir d'un autre tableau
    Par Zhangdar dans le forum Débuter
    Réponses: 5
    Dernier message: 27/08/2010, 22h40
  4. trié un tableau à partir d'un autre tableau
    Par somatino dans le forum C++
    Réponses: 5
    Dernier message: 27/06/2006, 13h19
  5. Créer un tableau à partir d'un autre tableau
    Par mariemor64 dans le forum ASP
    Réponses: 5
    Dernier message: 20/06/2006, 14h50

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