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 :

Importer des données


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut Importer des données
    Bonjour à tous,
    Pourriez-vous m'apporter une aide?

    contexte :
    J'ai deux onglets dans le même classeur,

    Dans le premier tableau
    en colonne A: classe PT (10car)
    en colonne B: Classe PT Père
    en colonne C: Classes PT
    en colonne D: Classes
    en colonne E: Domaine technique

    Dans le second tableau
    en colonne A: classe PT (10car)
    en colonne B: Classe PT Père
    en colonne C: Classes PT
    en colonne D: Classes
    en colonne E: Domaine technique

    J'aimerais en VBA importer le domaine technique dans le 2sd tableau en fonction des 4 Colonnes (A,B,C,D)

    Je souhaiterai que le code se répète pour toute la colonne

    Les deux tableaux n'ont pas le même nombre de lignes

    une sorte d'INDEX(D,EQUIV(A&B&C&Dpremier tableau,A&B&C&D2sd tableau),0) mais en code VBA

    En vous remerciant d'avance

  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,

    INDEX en VBA c'est Application.Index et EQUIV c'est Application.Match …


  3. #3
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut Application.index/Application.match
    Bonjour à tous !!!


    Je reviens vers vous car mon code ne fonctionne pas....

    Voici mon problème :

    contexte :

    J'ai deux onglets avec un tableau dans chaque qui sont dans le même classeur,

    Dans la premiere feuille "ZPMQ"
    en colonne A: classe PT (10car)
    en colonne B: Classe PT Père
    en colonne C: Classes PT
    en colonne D: Classes
    en colonne E: Domaine technique (colonne à remplir)

    Dans la deuxième feuille "Périmètre"
    en colonne A: classe PT (10car)
    en colonne B: Classe PT Père
    en colonne C: Classes PT
    en colonne D: Classes
    en colonne E: Domaine technique


    J'aimerais en VBA importer le domaine technique dans le 2sd tableau en fonction des 4 Colonnes (A,B,C,D)

    Je souhaiterai que le code se répète pour toute la colonne

    Les deux tableaux n'ont pas le même nombre de lignes

    Pourriez vous y jeter un oeil

    En vous remerciant d'avance


    mon 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
    Sub ZPMQ5()
     
    Dim oRng As Excel.Range
    Dim v As Variant, lng As Long, ligFin As Variant
     
    ligFin = Sheets("ZPMQ").Cells(Rows.Count, 1).End(xlUp).Row
     
    Set oRng = ThisWorkbook.Worksheets("ZPMQ").UsedRange
     
    v = oRng.Value
    For lng = 2 To UBound(v, 1)
    If v(lng, 16) = "" Then v(lng, 16) = Application.Index(Sheets("Périmètre").Range("E2:E" & ligFin), Application.Match(v(lng, 7) & v(lng, 8) & v(lng, 9) & v(lng, 11), Sheets("Périmètre").Range("A2:A" & ligFin) & Sheets("Périmètre").Range("B2:B" & ligFin) & Sheets("Périmètre").Range("C2:C" & ligFin) & Sheets("Périmètre").Range("D2:D" & ligFin)), 0)
        Next lng
     
    oRng.Value = v
    Set oRng = Nothing
    v = Empty
    End Sub

  4. #4
    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


    Avant d'attaquer un code, commencer par vérifier dans une feuille si les formules de calculs fonctionnent !
    Une fois le cas, facile alors de les traduire en VBA …

    Différentes manières de coder selon les données source et destination, s'il y a des doublons, …

    Regarde les posts #12 & #16 dans cette discussion. Sinon joindre un classeur exemple …

  5. #5
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Bonjour Marc L,


    J'ai été jeter un oeil sur les discuissions que tu à joint à ton post précédent,

    bon mais comme je n'ai pas tout saisi....

    je joint un fichier exemple (sachant que le nbre de lignes est beaucoups plus important en réalité et que celui-ci n'est pas figé...)

    Merci encore!!!
    Fichiers attachés Fichiers attachés

  6. #6
    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

    Démonstration utilisant des variables tableau :
    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
    Sub Demo()
        With Feuil1.Cells(1).CurrentRegion.Rows
            ReDim TK$(2 To .Count)
                  TD = Application.Index(.Offset(1).Resize(.Count - 1), , 5)
            For R& = 2 To .Count
                TK(R) = Join$(Application.Index(.Columns("A:D").Value, R), "¤")
            Next
        End With
     
        With Feuil2.Cells(1).CurrentRegion.Rows
            ReDim TP$(2 To .Count, 0)
                  TS = .Columns("G:K").Value
            For R = 2 To .Count
                V = Application.Match(Join$(Array(TS(R, 1), TS(R, 2), TS(R, 3), TS(R, 5)), "¤"), TK, 0)
                If Not IsError(V) Then TP(R, 0) = TD(V, 1)
            Next
                  .Cells(2, 16).Resize(.Count - 1).Value = TP
        End With
    End Sub
    Et ne pas oublier :
    _________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  7. #7
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Marc-L

    Je tiens à vous remercier pour votre contribution

    ET grâce à votre savoir faire j'ai pu résoudre mon petit soucis!!!


    Encore Merci d'avoir pris du temps pour moi!!!!


    Bien cordialement et à bientôt

  8. #8
    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



    Merci du retour !


    Sinon cela aurait été plus simple en inversant les colonnes J & K de la feuille ZPMQ :

    TS = .Columns("G:J").Value en ligne n°12.

    • Simplification de la ligne n°14 : V = Application.Match(Join$(Application.Index(TS, R), "¤"), TK, 0)

  9. #9
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Oui effectivement Marc-L c'est ce que j'ai fait

    et du coups c'est vrai que c'est plus simple


    Merci encore

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

Discussions similaires

  1. Importer des données XML
    Par Oberown dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/07/2005, 12h59
  2. Importer des données grace a des *.cvs dans MySQL
    Par Mic0001 dans le forum Installation
    Réponses: 3
    Dernier message: 05/01/2005, 19h26
  3. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32
  4. Réponses: 3
    Dernier message: 13/12/2004, 13h54
  5. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22

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