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

  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 sénior
    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
    Points : 18 674
    Points
    18 674
    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 sénior 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
    Points : 31 877
    Points
    31 877
    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 sénior 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
    Points : 31 877
    Points
    31 877
    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.

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

    Je te remercie beaucoup pour tout. Je viens de copier tes explications sur un classeur et pour faire des exercices pour essayer de comprendre le truc. Et il y a tellement de choses à apprendre rien que pour les tableaux. J'en ai pas mal découvert, certaines choses je les ai comprises, d'autres moins et certaines pas du tout. Mais bon, je n'aspire pas à devenir développeur, mais plutôt à m'occuper, me faire plaisir et pourquoi pas aider les autres.

    Mon cher Mercatog, j'ai ouvert cette discussion suite à la précédent http://www.developpez.net/forums/d14...riable-public/, mon idée initiale était mauvaise.

    Donc j'ai voulu pour corriger le tir. J'ai essayé une autre approche (cette discussion), mais je n'y suis pas arrivé jusqu'à ce que tu viennes encore une fois à mon secours. j'espérais trouver une solution en combinant les codes de cette discussion et de la précédente.

    Donc depuis très tôt ce matin, je me suis dis Mercatog m'a aidé avec 2 codes, je peux parvenir sans trop d'encombre à trouver une solution. Mais la réalité est tout autre, je patauge.

    Ton idée d'une était superbe, car comme tu me l'avais dit j'ai rajouté un appareil et le code a parfaitement fonctionné.

    Pour moi ce n'est pas simple du tout, cliquer sur case à cocher l'inscrire le caption au bon endroit (coordonnées sur une autre feuille) et décocher l'effacer.

    Je ne te remercierai jamais assez. Car vois-tu malgré que bien souvent, je m'expose pas clairement mes problèmes, tu as une capacité exceptionnelle de déduire mes attentes.

    Bonne fin de journée.

    Cordialement,

+ 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